Complete map refresh guards and fix the dashboard job embed
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# More panoramas and player contributions
|
||||
|
||||
Maps hold 5–24 captured locations. Each game chooses five distinct locations in random order. The server plugin now picks random safe surface positions, with `viewpoints: 24` as the default for new installations; existing config files keep their value until edited and reloaded. The Fabric mod captures where the player is standing and permits up to 24 local captures for a new map.
|
||||
Maps hold 5–24 captured locations. Each game chooses five distinct locations in random order. The server plugin now picks random safe surface positions, with `viewpoints: 24` as the default for new installations; existing config files keep their value until edited and reloaded. The Fabric mod captures where the player is standing and permits up to 24 local captures; the uploader sends as many as the map and player limits allow.
|
||||
|
||||
## Owner workflow
|
||||
|
||||
@@ -12,6 +12,10 @@ In **Player submissions**, inspect the submitted locations in 360°. Accept them
|
||||
|
||||
For an already published map, its approved name, description, panorama count, and revision stay live until a moderator approves the update. Rejecting an update leaves that version playable. Existing games continue using the revision they started with. Editing and accepting further submissions are locked while the update is under review.
|
||||
|
||||
## Refresh guessing map
|
||||
|
||||
**Map tools → Refresh guessing map** rebuilds only the overhead map through the worker. It consumes no panorama slots and leaves every panorama image unchanged. Choose the original capture, another processed capture you own, or an accepted contribution whose bounds and expected server address match the map exactly. To show new buildings, export and upload fresh terrain first. The published map and ongoing games keep their current image until a moderator approves the update.
|
||||
|
||||
## Player workflow
|
||||
|
||||
Install the updated capture tool and link your own MineGeo account. A new map needs at least five panoramas; a contribution may contain just one.
|
||||
@@ -19,7 +23,7 @@ Install the updated capture tool and link your own MineGeo account. A new map ne
|
||||
- **Fabric:** Press G, paste the owner's map ID into **Add to map ID**, capture within the original bounds, and upload. Leave the field blank to upload a new map.
|
||||
- **Plugin:** Set the website and your own contributor token, select an explored area within the map bounds, export it, then run `/minegeo contribute <map ID>`. Server permission `minegeo.admin` is still required for server exports. Players without that permission can use the Fabric mod.
|
||||
|
||||
The uploader keeps up to 12 in-bounds locations, or fewer when the map/player has fewer slots available. Its saved selection and upload ledger make retries idempotent. After processing, open **Open contribution** in the dashboard, inspect/select locations, and **Submit to map owner**. You may withdraw a pending submission to release its reserved quota. A completed accepted submission cannot be edited or overwritten; use a fresh capture to add more.
|
||||
The uploader keeps up to the available slots (24 for the map owner, 12 per guest), or fewer when the map has less room. Its saved selection and upload ledger make retries idempotent. After processing, open **Open contribution** in the dashboard, inspect/select locations, and **Submit to map owner**. You may withdraw a pending submission to release its reserved quota. A completed accepted submission cannot be edited or overwritten; use a fresh capture to add more.
|
||||
|
||||
Both tools can contribute to either kind of map. The original surface map and bounds remain the basis for guessing; contributions append panoramas. Owners and moderators must check that submissions show the correct world, useful views, and acceptable visual quality.
|
||||
|
||||
@@ -37,6 +41,6 @@ This prevents accidental submissions from another server. Capture addresses are
|
||||
|
||||
## Deployment
|
||||
|
||||
The configured MineGeo Supabase project has all three October 5 migrations applied. For another database, apply `20261005063646_panorama_contributions.sql`, `20261005065029_withdraw_contribution.sql`, and `20261005073253_contribution_server_check.sql` after the existing migrations. Deploy the website and worker together. Replace both Minecraft JARs from `public/tools` and restart Minecraft/the server. An installed older tool does not acquire the new contribution controls when the website changes.
|
||||
The configured MineGeo Supabase project has the first four October 5 migrations applied. Apply `20261005200000_map_refresh_fixes.sql` before deploying this website/worker pair. For another database, apply `20261005063646_panorama_contributions.sql`, `20261005065029_withdraw_contribution.sql`, `20261005073253_contribution_server_check.sql`, `20261005141142_map_refresh.sql`, and `20261005200000_map_refresh_fixes.sql` after the existing migrations. Deploy the website and worker together. Replace both Minecraft JARs from `public/tools` and restart Minecraft/the server. An installed older tool does not acquire the new contribution controls when the website changes.
|
||||
|
||||
The new transactional functions are callable only by the server's service role. They verify map ownership, opt-in, bounds, processing validation and review state, and serialize uploads/edits/approvals using a map row lock. Media provenance is assigned by the server after acceptance; uploaders cannot choose another dataset's private media paths. Published revisions remain immutable.
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# Verification of the export/upload fixes
|
||||
|
||||
## Map refresh completion (October 5, 2026)
|
||||
|
||||
The unfinished "map refresh" commit was completed. A follow-up migration (`20261005200000_map_refresh_fixes.sql`) restores the contribution server-address check in `submit_draft` that the map-refresh migration had accidentally dropped, and rejects map-refresh jobs both when queued (`refresh_map`) and completed (`complete_job`) for contribution datasets. The map page now receives the job `kind`, so refresh progress, the refreshing notice and the failure alert render; refresh controls and the Map tools anchor are hidden on contributions; map-only worker downloads report progress against the filtered asset list; the plugin help text describes the owner/guest limits.
|
||||
|
||||
The 743 MiB `minecraft/java_pid42664.hprof` heap dump, tracked since the first commit, was purged from all Git history with `git filter-branch`, expired reflogs and `git gc`; `*.hprof` is now ignored. The local repository's `.git` directory shrank from about 170 MiB to 1.2 MiB. The rewritten history has not been pushed; because every commit hash changed, the remote needs a force-push before further work is pulled elsewhere.
|
||||
|
||||
Verification at the user's request was limited to local checks: all 65 Node tests and TypeScript checking passed under Node 22, and both Minecraft JARs were rebuilt with the updated help text. `tests/sql/map-refresh.sql` now includes contribution-refresh guard cases. The new migration has not been applied to the configured Supabase project, and the SQL, plugin, renderer and browser regressions were not rerun in this pass. The user had already run the plugin regression with Codex before these fixes.
|
||||
|
||||
---
|
||||
|
||||
## Panorama contributions (October 5, 2026)
|
||||
|
||||
Maps now retain up to 24 captures. Server exports pick random safe positions, and games retain five distinct random rounds. Owners opt into contributions by map ID; non-owners have a cumulative 12-panorama quota. Contributions need owner acceptance and a subsequent moderator review of the combined map/update.
|
||||
|
||||
Reference in New Issue
Block a user