Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 0 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ dependencies {
}
test {
useJUnitPlatform()
systemProperty 'mtrmap.howtogoJar', file('.cache/howtogo-0.2.1-neoforge.jar').absolutePath
systemProperty 'mtrmap.generateTestWorld', project.findProperty('mtrmapGenerateTestWorld') ?: 'false'
systemProperty 'mtrmap.testWorldMtrPath', project.findProperty('mtrmapTestWorldMtrPath') ?: 'run/saves/TestWorld/mtr'
}
Expand Down
12 changes: 12 additions & 0 deletions docs/agents/MESSAGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# MESSAGES.md — Agent 交流墙(只追加,不改不删)

- 2026-11-11T16:48:02+08:00, Codex: User clarified provider-owned Navigate adapters. Development source removes built-in HowToGo registration/discovery while preserving the generic API and disabled-state behavior. Published v1.6.0 assets remain unchanged and contain the earlier adapter.

- 2026-11-11T13:40:41+08:00, Codex: Published [v1.6.0](https://github.com/teamCreating/MTR-Map-Overlay/releases/tag/v1.6.0) as formal Latest under the user’s immediate-publication instruction. Protected Publish42967128625 succeeded; all ten public assets were downloaded and exactly match Candidate42953810741 and remote digests; both tags match sealed source SHAs. Forge47 quick-play limitation is disclosed; experimental EventLoop changes are excluded. No further game investigation.

- 2026-11-11T13:38:47+08:00, Codex: User explicitly instructed immediate publication and stopped further investigation, superseding the previous Forge47 quick-play repair prerequisite. Publish unchanged sealed Candidate42953810741 through the protected workflow; disclose the native Forge47.4.0 quick-play timeout and working multiplayer-list path. Experimental EventLoop fix remains unmerged and excluded.

- 2026-11-11T12:17:53+08:00, Codex: User explicitly chose to fix Forge47.4.0 quick-play multiplayer before publishing. Candidate42953810741 has 72 passing normal-entry cases but is not approved for release. Investigate the native handshake without modifying dependencies or fabricating state; Forge1.20.4 remains verified.

- 2026-11-11T12:11:04+08:00, Codex: Final Candidate42953810741 passed 48 singleplayer and 24 dedicated native map cases across six targets; 12 full-server train hovers reviewed. Native Forge47 quick-play base-control limitation remains explicit. Both Overlay corrections are present. Normal-entry matrix passed; publication held pending scope choice unless explicitly accepted. No tags/release written. See [final acceptance](../validation/release-1.6.0.md).

- 2026-11-11T11:36:44+08:00, Codex: Both fixes merged. New Candidate42953810741 is building main0e65abde / compat5e758c8. Forge1.20.1 full/fallback local production checks pass; quick-play handshake timeout also reproduces without Overlay/QA, while native multiplayer-list entry passes. Retain this base-control observation; publication remains pending exact new-candidate checks.

- 2026-11-11T11:25:43+08:00, Codex: Candidate42946243079 is held after a real Forge1.20.1 MTR-only server failure. NetworkRegistry.ABSENT is ChannelData; object/String equality rejects all three optional channels. Compat source now uses native acceptMissingOr; local build/tests passed and native fallback verification is running. Forge1.20.4 server full-sync/fallback already passed; a fresh candidate is required.

- 2026-11-11T11:10:36+08:00, Codex: Repaired sealed Candidate42946243079 passed six production singleplayer targets (48 native cases, including Forge1.20.4 quick-play and real NeoForge HowToGo handoff). Dedicated sync/fallback remains in progress; no release yet. See [current acceptance](../validation/release-1.6.0-fixed-candidate.md).
Expand Down
12 changes: 12 additions & 0 deletions docs/agents/STATE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# STATE.md — MC 1.20 兼容分支权威状态

- 2026-11-11T16:48:02+08:00, Codex: User clarified provider-owned Navigate adapters. Development source removes built-in HowToGo registration/discovery while preserving the generic API and disabled-state behavior. Published v1.6.0 assets remain unchanged and contain the earlier adapter.

- 2026-11-11T13:40:41+08:00, Codex: Published [v1.6.0](https://github.com/teamCreating/MTR-Map-Overlay/releases/tag/v1.6.0) as formal Latest under the user’s immediate-publication instruction. Protected Publish42967128625 succeeded; all ten public assets were downloaded and exactly match Candidate42953810741 and remote digests; both tags match sealed source SHAs. Forge47 quick-play limitation is disclosed; experimental EventLoop changes are excluded. No further game investigation.

- 2026-11-11T13:38:47+08:00, Codex: User explicitly instructed immediate publication and stopped further investigation, superseding the previous Forge47 quick-play repair prerequisite. Publish unchanged sealed Candidate42953810741 through the protected workflow; disclose the native Forge47.4.0 quick-play timeout and working multiplayer-list path. Experimental EventLoop fix remains unmerged and excluded.

- 2026-11-11T12:17:53+08:00, Codex: User explicitly chose to fix Forge47.4.0 quick-play multiplayer before publishing. Candidate42953810741 has 72 passing normal-entry cases but is not approved for release. Investigate the native handshake without modifying dependencies or fabricating state; Forge1.20.4 remains verified.

- 2026-11-11T12:11:04+08:00, Codex: Final Candidate42953810741 passed 48 singleplayer and 24 dedicated native map cases across six targets; 12 full-server train hovers reviewed. Native Forge47 quick-play base-control limitation remains explicit. Both Overlay corrections are present. Normal-entry matrix passed; publication held pending scope choice unless explicitly accepted. No tags/release written. See [final acceptance](../validation/release-1.6.0.md).

- 2026-11-11T11:36:44+08:00, Codex: Both fixes merged. New Candidate42953810741 is building main0e65abde / compat5e758c8. Forge1.20.1 full/fallback local production checks pass; quick-play handshake timeout also reproduces without Overlay/QA, while native multiplayer-list entry passes. Retain this base-control observation; publication remains pending exact new-candidate checks.

- 2026-11-11T11:25:43+08:00, Codex: Candidate42946243079 is held after a real Forge1.20.1 MTR-only server failure. NetworkRegistry.ABSENT is ChannelData; object/String equality rejects all three optional channels. Compat source now uses native acceptMissingOr; local build/tests passed and native fallback verification is running. Forge1.20.4 server full-sync/fallback already passed; a fresh candidate is required.

- 2026-11-11T11:10:36+08:00, Codex: Repaired sealed Candidate42946243079 passed six production singleplayer targets (48 native cases, including Forge1.20.4 quick-play and real NeoForge HowToGo handoff). Dedicated sync/fallback remains in progress; no release yet. See [current acceptance](../validation/release-1.6.0-fixed-candidate.md).
Expand Down
10 changes: 9 additions & 1 deletion docs/agents/TASKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,19 @@

## 进行中

### [完成] Provider-owned navigation boundary
- Codex, 2026-11-11T16:47:01+08:00: User clarified Overlay provides the generic Navigate API; external mods own adapters. Remove production HowToGo discovery/registration, preserve generic availability and chooser, and document the already published binary boundary.


### [完成] Forge 1.20.4 quick-play startup repair
- Codex, 2026-11-11T10:21:59+08:00: final boundary in ca3858b passes 48 native cases and four diagnostic guards on both Forge49 versions; final CI patch class matches runtime bytecode. Evidence: `docs/validation/forge1204-startup-fix.md`. Release gate is separate and requires a fresh candidate.
- Owner: Codex; claimed 2026-11-11T09:43:56+08:00. User explicitly asks to fix 1.20.4. Trace and correct the native initial-resource/Forge-completion ordering, preserve error/warning behavior, isolate from the other five targets, then test production JARs on Forge49.2.0/49.2.13 plus normal startup. No automatic version increment or publication.

### [进行中] Release 1.6.0 six-platform acceptance and publication
### [完成] Release 1.6.0 six-platform acceptance and publication
- 2026-11-11T13:40:41+08:00, Codex: Published [v1.6.0](https://github.com/teamCreating/MTR-Map-Overlay/releases/tag/v1.6.0) as formal Latest under the user’s immediate-publication instruction. Protected Publish42967128625 succeeded; all ten public assets were downloaded and exactly match Candidate42953810741 and remote digests; both tags match sealed source SHAs. Forge47 quick-play limitation is disclosed; experimental EventLoop changes are excluded. No further game investigation.
- 2026-11-11T13:38:47+08:00, Codex: User explicitly instructed immediate publication and stopped further investigation, superseding the previous Forge47 quick-play repair prerequisite. Publish unchanged sealed Candidate42953810741 through the protected workflow; disclose the native Forge47.4.0 quick-play timeout and working multiplayer-list path. Experimental EventLoop fix remains unmerged and excluded.
- Codex, 2026-11-11T12:17:53+08:00: User explicitly requires Forge1.20.1 quick-play multiplayer repaired before release. Claim its native handshake diagnosis/fix; keep the verified Forge1.20.4 repair and the 72-case normal-entry evidence. No limitation exception is approved; do not publish Candidate42953810741.
- Codex, 2026-11-11T12:11:59+08:00: Candidate42953810741 passed 72 normal-entry native cases, six-target CI and Publish dry-run42956402233. Forge1.20.4 is fixed and Forge1.20.1 optional-channel negotiation is fixed. Formal release remains held pending the user’s scope choice for the independently reproduced Forge47 quick-play handshake failure; no v1.6.0 tags exist. Final evidence: docs/validation/release-1.6.0.md.
- Codex, 2026-11-11T10:21:59+08:00: startup blocker repaired and verified. Resume fresh-candidate acceptance; do not publish the old candidate. Dedicated/client-only fallback checks remain pending.
- Codex, 2026-11-11T03:28:46+08:00: six builds and 48 normal-flow native cases passed; Candidate 42879095868 / dry-run 42883569831 retained. Publication is blocked by the reproduced Forge 1.20.4 quick-play failure (also without Overlay), plus incomplete remaining candidate checklist items. Resume after a proper loader-startup fix or an explicit revised acceptance scope; do not dispatch real Publish under the current condition. Evidence: `docs/validation/release-1.6.0.md`.
- Owner: Codex; claimed 2026-11-11T01:53:55+08:00. User authorizes version 1.6.0 and publication only after Forge/Fabric 1.20.1/1.20.4 and NeoForge/Fabric 1.21.1 pass. Port current integration/localization, fix failures, seal and test exact candidate JARs, then publish through the existing protected release workflow.
Expand Down
12 changes: 12 additions & 0 deletions docs/api/overlay-api-v1.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,15 @@ Both map hosts use the same classic station tooltip, original route metadata, de
- `/mtrmap config pidsStyle european` selects white text, a blue-gray header, subtle alternating rows and amber countdowns.

The preference persists in the loader's existing local config. It changes presentation only, with identical native arrival data.


### Optional per-target navigation availability

New Overlay builds provide `registerNavigation(owner, displayName, Predicate<NavigationTarget> available, Consumer<NavigationTarget> handler)`. The predicate runs on the client thread and must be cheap and side-effect free. It is checked for the selected station while rendering and again on click. No available provider means the Navigate action is disabled. The existing three-argument overload remains supported. An implementation using the new interface but not implementing this extension throws `UnsupportedOperationException`. Published older Overlay JARs also carry an older interface, so linking the new overload there can throw `NoSuchMethodError`. Consumers supporting both generations should guard this optional call and retain their three-argument registration path. The existing three-argument ABI is unchanged.


### Provider-owned adapters

Overlay exposes a generic Navigate registration API. Navigation mods or separate compatibility mods register their own availability predicate and target handler; Overlay does not discover their classes or register providers on their behalf. Without an available registered provider, Navigate remains disabled. HowToGo was used as an interoperability test reference, not an API dependency.

The published v1.6.0 binaries included an Overlay-owned HowToGo adapter. That adapter has been removed from development sources after the scope correction; the published assets and tags have not been replaced.
4 changes: 4 additions & 0 deletions docs/releases/v1.6.0.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
> **Scope correction / 定位更正:** Overlay provides a generic Navigate API (provider registration, per-target availability, chooser and disabled state) for navigation mods to adapt to. HowToGo was intended as an interoperability test reference. The published 1.6.0 binaries do contain the earlier built-in HowToGo adapter; it has now been removed from development sources. These release assets and tags remain unchanged.
>
> Overlay 的定位是完善通用 Navigate 接口,供其它导航模组自行适配。HowToGo 原本仅用于互操作测试。已发布 1.6.0 二进制确实含有此前加入的主动适配器,现已从开发源码移除;本次没有替换附件或移动标签。

Compared with v1.5.3, this release adds optional HowToGo destination handoff, per-station Navigate availability, and complete four-language interface resources.

### Added
Expand Down
Loading
Loading