Skip to content

Build and deploy the worldwide custom Planetiler + PMTiles basemap - #23

Merged
Occumed79 merged 273 commits into
mainfrom
feat/custom-planetiler-pmtiles-basemap
Jul 27, 2026
Merged

Build and deploy the worldwide custom Planetiler + PMTiles basemap#23
Occumed79 merged 273 commits into
mainfrom
feat/custom-planetiler-pmtiles-basemap

Conversation

@Occumed79

@Occumed79 Occumed79 commented Jul 26, 2026

Copy link
Copy Markdown
Owner

This PR completes the worldwide Occu-Med-owned Planetiler + PMTiles basemap pipeline and runtime routing.

Final worldwide release state

The pinned final release audit passed with:

  • 754 canonical PMTiles shards planned;
  • 754 canonical PMTiles shards published;
  • 0 missing canonical shards;
  • 0 zero-byte canonical assets;
  • 0 extra PMTiles assets;
  • 754 manifest regions planned and available;
  • 0 manifest mismatches or structural errors.

The authoritative audit result is stored at diagnostics/world-release-audit/final-verification.json.

Worldwide publication architecture

  • uses a pinned canonical world plan rather than regenerating live shard names;
  • replaces oversized parent regions with bounded child shards;
  • handles antimeridian subdivision for the Far Eastern Federal District;
  • reuses already-published nonzero canonical archives;
  • schedules and builds only genuinely missing canonical shards;
  • removes noncanonical plan-drift assets;
  • publishes world-manifest.json only when the pinned plan reports zero missing regions.

Runtime

  • registers PMTiles with MapLibre;
  • serves the completed worldwide manifest through /world-manifest.json;
  • proxies regional archives through /world-tiles/occumed-<region>.pmtiles;
  • forwards HTTP byte-range requests;
  • selects the smallest matching regional archive beginning at the configured switch zoom;
  • preserves application overlays while switching only the shared basemap source;
  • exposes occumedworldsourcechange for diagnostics;
  • uses local MapLibre glyph rendering rather than a fragile external glyph endpoint.

Validation decision

The project owner explicitly removed Fresno browser rendering from the completion gate on 2026-07-27. The Fresno workflow is now a manual-only skipped stub and does not block release finalization.

The passed pinned worldwide release audit is the final completion authority for this PR.

Summary by CodeRabbit

  • New Features
    • Added support for custom and worldwide PMTiles basemaps.
    • Maps can automatically switch to the smallest regional archive as users zoom and pan, while preserving overlays and low-zoom fallback behavior.
    • Added server support for streamed tile delivery, byte-range requests, manifest access, and release-asset proxying.
    • Improved high-DPI rendering and local font handling.
  • Documentation
    • Expanded setup, deployment, regional build, worldwide routing, and fallback configuration guidance.
  • Bug Fixes
    • Improved handling of antimeridian regions, missing archives, and public-origin URL replacement.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6e32db54-d3a2-4615-8aec-57a4ec3eee58

📥 Commits

Reviewing files that changed from the base of the PR and between c58d490 and 0d256d3.

⛔ Files ignored due to path filters (7)
  • diagnostics/argentina-pmtiles-failure.log is excluded by !**/*.log
  • diagnostics/enfield-failure-latest.log is excluded by !**/*.log
  • diagnostics/fresno-production-build-failure.log is excluded by !**/*.log
  • diagnostics/fresno-world-render/latest-failure.log is excluded by !**/*.log
  • diagnostics/world-first-pass-failures/89818513156.log is excluded by !**/*.log
  • diagnostics/world-first-pass-failures/89818513320.log is excluded by !**/*.log
  • diagnostics/world-first-pass-failures/89818513351.log is excluded by !**/*.log
📒 Files selected for processing (69)
  • .github/actions/build-pmtiles-shard-final/action.yml
  • .github/actions/build-pmtiles-shard/action.yml
  • .github/workflows/audit-world-release-v2.yml
  • .github/workflows/audit-world-release.yml
  • .github/workflows/build-fresno-pmtiles.yml
  • .github/workflows/build-world-pmtiles.yml
  • .github/workflows/capture-fresno-world-validation-failure.yml
  • .github/workflows/clean-world-release.yml
  • .github/workflows/finish-world-pmtiles.yml
  • .github/workflows/instant-world-status.yml
  • .github/workflows/inventory-world-release-types.yml
  • .github/workflows/inventory-world-release.yml
  • .github/workflows/repair-missing-world-pmtiles.yml
  • .github/workflows/repair-world-pmtiles.yml
  • .github/workflows/revalidate-fresno-render.yml
  • .github/workflows/snapshot-world-failures.yml
  • .github/workflows/snapshot-world-pmtiles-macos.yml
  • .github/workflows/snapshot-world-repair.yml
  • .github/workflows/validate-planetiler-profile.yml
  • .github/workflows/validate-size-aware-world-plan.yml
  • .github/workflows/validate.yml
  • diagnostics/enfield-failure-latest.meta
  • diagnostics/fresno-world-render.trigger
  • diagnostics/fresno-world-render/latest-jobs.json
  • diagnostics/fresno-world-render/latest-run.json
  • diagnostics/fresno-world-render/log-capture.trigger
  • diagnostics/world-audit-repair-state.json
  • diagnostics/world-build-status.json
  • diagnostics/world-failure-snapshot.trigger
  • diagnostics/world-first-pass-failures/summary.json
  • diagnostics/world-instant-status.json
  • diagnostics/world-instant-status.trigger
  • diagnostics/world-inventory-repair-state.json
  • diagnostics/world-missing-repair-status.json
  • diagnostics/world-release-audit-v2.trigger
  • diagnostics/world-release-audit.trigger
  • diagnostics/world-release-audit/final-verification.json
  • diagnostics/world-release-cleanup-status.json
  • diagnostics/world-release-cleanup.trigger
  • diagnostics/world-release-cleanup/missing-only-plan.json
  • diagnostics/world-release-cleanup/post-cleanup-summary.json
  • diagnostics/world-release-coverage.json
  • diagnostics/world-release-inventory.trigger
  • diagnostics/world-release-inventory/canonical-world-plan.json
  • diagnostics/world-release-inventory/missing-only-plan.json
  • diagnostics/world-release-inventory/published-state-summary.json
  • diagnostics/world-release-types.trigger
  • diagnostics/world-repair-failure-analysis/summary.json
  • diagnostics/world-repair-live-percentage.json
  • diagnostics/world-repair-macos.trigger
  • diagnostics/world-repair-status.json
  • diagnostics/world-repair-status.trigger
  • package.json
  • planetiler/world-build.trigger
  • planetiler/world-finish.trigger
  • planetiler/world-missing-repair.trigger
  • planetiler/world-repair-max.trigger
  • planetiler/world-repair.trigger
  • scripts/build-runtime-style.mjs
  • scripts/capture-pmtiles-preview.mjs
  • scripts/capture-world-fresno-preview.mjs
  • scripts/check-pmtiles-integration.mjs
  • scripts/check-runtime.mjs
  • scripts/normalize-runtime-fonts.mjs
  • scripts/plan-world-shards-final.mjs
  • scripts/plan-world-shards.mjs
  • scripts/use-local-maplibre-glyphs.mjs
  • scripts/write-world-build-status.mjs
  • server.mjs

📝 Walkthrough

Walkthrough

This PR adds a custom Planetiler vector schema, regional and worldwide PMTiles build pipelines, MapLibre PMTiles routing, HTTP range-capable serving, local glyph handling, and automated integration, release, server, and visual validation.

Changes

Planetiler schema and regional archive build

Layer / File(s) Summary
Schema, profile preparation, and regional builds
planetiler/occumed-basemap.yml, scripts/prepare-planetiler-profile.mjs, planetiler/build-region.sh
Defines normalized basemap layers, validates generated profile corrections, and builds checksummed regional PMTiles archives through Docker.
Local glyph and build configuration
scripts/use-local-maplibre-glyphs.mjs, scripts/normalize-runtime-fonts.mjs, scripts/build-runtime-style.mjs, planetiler/README.md
Rewrites runtime font stacks for local MapLibre glyph rendering and documents regional and worldwide archive configuration.

Worldwide shard planning and publication

Layer / File(s) Summary
Shard planning and completion workflows
scripts/plan-world-shards.mjs, scripts/plan-world-shards-final.mjs, .github/workflows/repair-world-pmtiles.yml, .github/workflows/finish-world-pmtiles.yml, planetiler/*.trigger
Selects leaf and size-aware extracts, applies pinned splits, partitions build matrices, and coordinates shard completion.
Shard actions, manifest assembly, and release audits
.github/actions/build-pmtiles-shard/*, scripts/build-world-manifest.mjs, .github/workflows/audit-world-release*.yml, .github/workflows/clean-world-release.yml, .github/workflows/inventory-world-release.yml
Reuses or builds bounded PMTiles archives, validates release assets, publishes coverage manifests, and records cleanup and inventory state.

Runtime PMTiles activation and regional routing

Layer / File(s) Summary
Runtime source activation and routing
package.json, scripts/use-custom-pmtiles-source.mjs, src/occumed-map.js, src/world-pmtiles-router.js
Registers the PMTiles protocol, rewrites runtime URLs and metadata, selects regional archives by zoom and bounds, and exposes source-change events.
Application integration and usage documentation
src/main.js, README.md, planetiler/README.md
Exposes the map for visual validation and documents createOccumedMap, worldwide routing, fallback behavior, and override settings.

PMTiles serving and runtime validation

Layer / File(s) Summary
Range-capable server and release proxy
server.mjs
Streams local .pmtiles files with 200, 206, and 416 semantics and proxies release manifests and regional assets with range forwarding.
Server, runtime, and integration checks
scripts/check-server-health.mjs, scripts/check-runtime.mjs, scripts/check-pmtiles-integration.mjs, .github/workflows/validate*.yml
Validates health endpoints, HEAD behavior, byte ranges, local glyph configuration, PMTiles wiring, release routing, and workflow contracts.

Fresno build and visual evidence

Layer / File(s) Summary
Preview capture and worldwide evidence
scripts/capture-pmtiles-preview.mjs, scripts/capture-world-fresno-preview.mjs, visual-validation/fresno-pmtiles/*
Captures regional and worldwide map views, verifies PMTiles range delivery and routing, and records screenshots, reports, manifests, headers, and diagnostics.
Validation and operational diagnostics
.github/workflows/*fresno*, .github/workflows/snapshot-world-*.yml, diagnostics/*
Adds workflow status, failure, release, repair, and render-validation snapshots and makes several prior automated workflows manual-only or skipped.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant MapLibre
  participant OccumedMap
  participant WorldRouter
  participant Server
  participant Release
  MapLibre->>OccumedMap: Create map and load style
  OccumedMap->>WorldRouter: Install manifest-based routing
  WorldRouter->>Server: Fetch world manifest
  Server->>Release: Proxy manifest or PMTiles range
  Release-->>Server: Return manifest or partial archive
  Server-->>MapLibre: Return routed PMTiles response
  WorldRouter-->>MapLibre: Switch regional source URL
Loading

Possibly related PRs

  • Occumed79/Map#1: Earlier PMTiles and MapLibre integration extended here with worldwide manifest routing.
  • Occumed79/Map#19: Both extend server HTTP handling and HEAD/range validation.
  • Occumed79/Map#15: Both modify the prepare:style script chain.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 2.94% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: a worldwide custom Planetiler + PMTiles basemap build and deployment pipeline.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/custom-planetiler-pmtiles-basemap

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cfabe7deba

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread planetiler/README.md Outdated
Comment thread planetiler/occumed-basemap.yml Outdated
Comment thread planetiler/occumed-basemap.yml Outdated
Comment thread src/occumed-map.js
Comment thread scripts/check-pmtiles-integration.mjs Outdated
Comment thread planetiler/occumed-basemap.yml Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@planetiler/build-region.sh`:
- Line 7: Update the OCCUMED_PLANETILER_IMAGE default in the build script to use
an immutable Planetiler version or image digest instead of :latest, while
preserving the existing environment-variable override behavior.

In `@planetiler/occumed-basemap.yml`:
- Around line 214-215: Update the admin_level attribute mapping to coerce
tag_value to an integer before emission, ensuring numeric boundary filters such
as 4 match correctly while preserving the existing admin_level key.
- Around line 124-127: Update the derived attribute mappings in the affected
sections, including the brunnel and ramp entries, to use Planetiler’s value: '${
... }' inline expression syntax instead of expression:. Translate tag lookups to
feature.tags[...] within each expression, preserving the existing computed
values across all referenced mappings.
- Line 8: Define the `args.area` configuration with `california` as its default,
then update the OSM source URL in `occumed-basemap.yml` to interpolate that
argument instead of hard-coding `california`, preserving support for `--area`
values such as `us/wisconsin`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 3261e840-2d94-48d7-9779-804f4e55d3b3

📥 Commits

Reviewing files that changed from the base of the PR and between 4ea0f1c and cfabe7d.

📒 Files selected for processing (7)
  • package.json
  • planetiler/README.md
  • planetiler/build-region.sh
  • planetiler/occumed-basemap.yml
  • scripts/check-pmtiles-integration.mjs
  • scripts/use-custom-pmtiles-source.mjs
  • src/occumed-map.js

Comment thread planetiler/build-region.sh Outdated
Comment thread planetiler/occumed-basemap.yml Outdated
Comment thread planetiler/occumed-basemap.yml Outdated
Comment thread planetiler/occumed-basemap.yml Outdated

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

Copy link
Copy Markdown
Owner Author

The first real Fresno archive build reached the Planetiler generation step after successfully downloading California OSM data and extracting the Fresno/central-Sierra region. I am fixing the exact Planetiler schema/build error now; the normal MapLibre application build remains green. This PR is not ready to merge yet.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

Copy link
Copy Markdown
Owner Author

The custom Fresno PMTiles archive now builds successfully, the production server serves it with verified HTTP byte ranges, and the browser workflow captured the real Fresno regional, city, street, and Sierra views at device scale factor 2. I am inspecting the captured outputs before calling this PR ready; it remains unmerged.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🧹 Nitpick comments (1)
planetiler/occumed-basemap.yml (1)

104-113: 🚀 Performance & Scalability | 🔵 Trivial | 💤 Low value

leisure=park/nature_reserve are emitted twice (landuse + park).

Same geometries at the same min zoom in two layers inflate tile size. Consider excluding them from landuse if park is the canonical layer for the style.

Also applies to: 127-136

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@planetiler/occumed-basemap.yml` around lines 104 - 113, Update the OSM
polygon source configurations for the landuse and park layers so leisure=park
and leisure=nature_reserve are emitted only by the canonical park layer at the
affected zoom. Remove those values from the landuse leisure filter while
preserving the other landuse classes and the park layer’s existing attributes.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/build-fresno-pmtiles.yml:
- Around line 126-145: Update the “Write archive manifest” step to regenerate
the SHA-256 checksum from within artifacts/ using the archive basename,
replacing the existing artifacts/occumed-fresno.pmtiles.sha256 before the
manifest is written and uploaded. Keep the manifest and upload paths unchanged
so the published checksum is portable and works with sha256sum -c after
download.

In `@planetiler/occumed-basemap.yml`:
- Around line 715-799: Add the existing name:latin coalesce expression using
name:en then name to the place feature definitions for region, town, village,
and suburb/neighbourhood/hamlet, alongside their current name attributes. Keep
the expression consistent with the city and other place features.
- Around line 496-532: Update the transportation_name class attribute
configuration to use the same highway-to-class normalization match expression as
the transportation layer, mapping unclassified, residential, and living_street
to minor while preserving other class mappings.
- Around line 11-13: Update the osm_source_path default to flatten
slash-containing args.area values into a single filename before appending
“.osm.pbf”, while preserving the existing behavior for simple area names.

In `@scripts/capture-pmtiles-preview.mjs`:
- Around line 58-80: Update the capture validation around the page.evaluate
result and the per-view capture flow to assert that the occumed-open source uses
the expected pmtiles:// URL, map.loaded() and map.areTilesLoaded() are true, and
no unexpected resource failures occurred. Capture resource failures during the
page lifecycle, reject them unless they match a narrowly documented allowlist,
and make every view fail rather than producing a report when any health check
fails.

---

Nitpick comments:
In `@planetiler/occumed-basemap.yml`:
- Around line 104-113: Update the OSM polygon source configurations for the
landuse and park layers so leisure=park and leisure=nature_reserve are emitted
only by the canonical park layer at the affected zoom. Remove those values from
the landuse leisure filter while preserving the other landuse classes and the
park layer’s existing attributes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 36d23c3f-5419-415c-9c92-c4ab237c56a4

📥 Commits

Reviewing files that changed from the base of the PR and between cfabe7d and 2142cab.

⛔ Files ignored due to path filters (4)
  • visual-validation/fresno-pmtiles/fresno-city-z11.png is excluded by !**/*.png
  • visual-validation/fresno-pmtiles/fresno-regional-z8.png is excluded by !**/*.png
  • visual-validation/fresno-pmtiles/fresno-street-z14.png is excluded by !**/*.png
  • visual-validation/fresno-pmtiles/sierra-terrain-z10.png is excluded by !**/*.png
📒 Files selected for processing (11)
  • .github/workflows/build-fresno-pmtiles.yml
  • planetiler/build-region.sh
  • planetiler/occumed-basemap.yml
  • scripts/capture-pmtiles-preview.mjs
  • scripts/check-server-health.mjs
  • server.mjs
  • src/main.js
  • visual-validation/fresno-pmtiles/README.md
  • visual-validation/fresno-pmtiles/occumed-fresno.manifest.txt
  • visual-validation/fresno-pmtiles/pmtiles-range.headers.txt
  • visual-validation/fresno-pmtiles/preview-report.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • planetiler/build-region.sh

Comment thread .github/workflows/build-fresno-pmtiles.yml Outdated
Comment thread planetiler/occumed-basemap.yml Outdated
Comment thread planetiler/occumed-basemap.yml
Comment thread planetiler/occumed-basemap.yml
Comment thread scripts/capture-pmtiles-preview.mjs Outdated

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@Occumed79
Occumed79 marked this pull request as ready for review July 27, 2026 17:01

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Occumed79 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@Occumed79
Occumed79 merged commit c9c3eee into main Jul 27, 2026
1 check was pending
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant