Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
32cd016
Bootstrap custom flat map from preserved globe tiles
Occumed79 Jul 30, 2026
8e27e30
Trigger custom PMTiles replay from draft PR
Occumed79 Jul 30, 2026
6f14573
Allow custom PMTiles replay to push non-workflow changes
Occumed79 Jul 30, 2026
9f6b0c6
Restore custom flat map from existing globe PMTiles [custom-flat-repl…
github-actions[bot] Jul 30, 2026
9abeaf3
Validate custom flat map from existing globe PMTiles
Occumed79 Jul 30, 2026
4a87cad
Restore immutable MapLibre request cancellation contract
Occumed79 Jul 30, 2026
0f7e5f2
Infrastructure: patch flat antimeridian validation
Occumed79 Jul 30, 2026
b166e29
Support flat-map antimeridian validation [flat-wrap-fix]
github-actions[bot] Jul 30, 2026
573c146
Document flat antimeridian handling
Occumed79 Jul 30, 2026
242b976
Infrastructure: harden representative motion coverage
Occumed79 Jul 30, 2026
66d0390
Infrastructure: enforce owner-complete motion fixture before validation
Occumed79 Jul 30, 2026
ec43461
Fix owner-complete fixture patch matcher
Occumed79 Jul 30, 2026
7ba86d4
Require owner-complete flat-map motion fixtures [motion-owner-lock]
github-actions[bot] Jul 30, 2026
3a4fad7
Document owner-complete motion validation
Occumed79 Jul 30, 2026
0867914
Include every owner touched by representative views
Occumed79 Jul 30, 2026
d0e3d7d
Distinguish physical-only tiles from regional owners
Occumed79 Jul 30, 2026
94f193b
Unclamp Fresno flat-map motion validation
Occumed79 Jul 30, 2026
2389366
Start Fresno zoom motion above flat-map camera clamp
github-actions[bot] Jul 30, 2026
07b5208
Trigger unclamped custom flat-map validation
Occumed79 Jul 30, 2026
01244b1
Support remote SHA-locked PMTiles inputs for production batches
Occumed79 Jul 30, 2026
f1b4bf2
Compile production batches directly from remote PMTiles inputs
Occumed79 Jul 30, 2026
f62d12c
Plan 768 deterministic production PMTiles batches
Occumed79 Jul 30, 2026
ad157a1
Enumerate exact tiles for each production batch
Occumed79 Jul 30, 2026
ced53b3
Build immutable production PMTiles batch archives
Occumed79 Jul 30, 2026
9d83172
Build the production foundation from remote globe inputs
Occumed79 Jul 30, 2026
1707309
Finalize the complete published production manifest
Occumed79 Jul 30, 2026
be7ee3c
Partition production archives into non-overlapping spatial batches
Occumed79 Jul 30, 2026
1ddbf35
Finalize one manifest owner per spatial production batch
Occumed79 Jul 30, 2026
97a15b9
Wire complete production batch build commands
Occumed79 Jul 30, 2026
22512ee
Point production server at the immutable release manifest by default
Occumed79 Jul 30, 2026
c278d10
Launch the complete worldwide immutable flat-map build
Occumed79 Jul 30, 2026
40b1dff
Handle empty production owners and authoritative surface targets
Occumed79 Jul 30, 2026
23141e3
Build production batches from active source owners only
Occumed79 Jul 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/bootstrap-custom-flat-pmtiles.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Harden Custom Flat Motion Fixture

on:
push:
branches:
- build/custom-flat-from-globe-tiles

permissions:
contents: write

concurrency:
group: harden-custom-flat-motion-fixture
cancel-in-progress: false

jobs:
patch:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
ref: build/custom-flat-from-globe-tiles
fetch-depth: 0

- name: Check whether the motion fixture is already owner-complete
id: guard
run: |
if grep -q 'const fresnoGlobal =' scripts/offline-tileset/generate-representative-targets.mjs; then
echo "run=false" >> "$GITHUB_OUTPUT"
echo "Owner-complete motion fixture is already installed."
else
echo "run=true" >> "$GITHUB_OUTPUT"
fi

- name: Keep world-to-street motion inside the Fresno owner
if: steps.guard.outputs.run == 'true'
run: |
python - <<'PY'
from pathlib import Path

path = Path('scripts/offline-tileset/generate-representative-targets.mjs')
source = path.read_text()

old_setup = '''const global = { center: [-20, 18], zoom: 2.2 };
const fresnoStreet = { center: [-119.7871, 36.7378], zoom: 16 };
const antimeridianEast = { center: [179.65, 8], zoom: 8 };'''
new_setup = '''const global = { center: [-20, 18], zoom: 2.2 };
const fresnoStreet = { center: [-119.7871, 36.7378], zoom: 16 };
const fresnoGlobal = { center: fresnoStreet.center, zoom: global.zoom };
const antimeridianEast = { center: [179.65, 8], zoom: 8 };'''
if old_setup not in source:
raise SystemExit('Could not find representative camera setup.')
source = source.replace(old_setup, new_setup, 1)

old_motions = '''const motions = [
{ name: 'global-to-street', start: global, end: fresnoStreet },
{ name: 'street-to-global', start: fresnoStreet, end: global },
{ name: 'antimeridian-crossing', start: antimeridianEast, end: antimeridianWest }
];'''
new_motions = '''const motions = [
{ name: 'global-to-street', start: fresnoGlobal, end: fresnoStreet },
{ name: 'street-to-global', start: fresnoStreet, end: fresnoGlobal },
{ name: 'antimeridian-crossing', start: antimeridianEast, end: antimeridianWest }
];'''
if old_motions not in source:
raise SystemExit('Could not find representative motion definitions.')
source = source.replace(old_motions, new_motions, 1)

old_owner = ''' const owner = [...ownerById.values()].find((candidate) =>
prefixContains(candidate.prefix, tile)
);
const target = owner ? targetMaps[owner.id] : targetMaps.foundation;
target.set(tileKey(tile), tile);'''
new_owner = ''' const owner = [...ownerById.values()].find((candidate) =>
prefixContains(candidate.prefix, tile)
);
if (!owner) {
throw new Error(
`Representative high-zoom tile ${tileKey(tile)} is outside every selected owner.`
);
}
targetMaps[owner.id].set(tileKey(tile), tile);'''
if old_owner not in source:
raise SystemExit('Could not find representative owner fallback.')
source = source.replace(old_owner, new_owner, 1)

path.write_text(source)
PY

- name: Commit owner-complete motion fixture
if: steps.guard.outputs.run == 'true'
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
git add scripts/offline-tileset/generate-representative-targets.mjs
git commit -m 'Require owner-complete flat-map motion fixtures [motion-owner-lock]'
git push origin HEAD:build/custom-flat-from-globe-tiles
Loading
Loading