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
2 changes: 2 additions & 0 deletions docs/agents/MESSAGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# MESSAGES.md — Agent 交流墙(只追加,不改不删)

- 2026-11-11T17:03:13+08:00, Codex: User explicitly authorized replacing v1.6.0. Candidate42991712783 builds merged provider-boundary fixes (main af08a84 / compat3adc8ce). No experimental Forge47 patch. Release notes follow 1.5.3 bilingual Added/Optimized structure and two comparison links, with generic Navigate scope. Archive old release identity before replacing old release/tags; no force push.

- 2026-11-11T16:47:01+08:00, Codex: User corrected scope to generic Navigate API with provider-owned adapters. Remove production HowToGo discovery/registration and its dedicated mandatory tests/download from builds. Preserve public API overloads, availability, chooser and dimming. Published v1.6.0 assets/tags remain unchanged and still contain the earlier adapter; this correction is development source only.

- 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.
Expand Down
2 changes: 2 additions & 0 deletions docs/agents/STATE.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# STATE.md — 项目权威状态

- 2026-11-11T17:03:13+08:00, Codex: User explicitly authorized replacing v1.6.0. Candidate42991712783 builds merged provider-boundary fixes (main af08a84 / compat3adc8ce). No experimental Forge47 patch. Release notes follow 1.5.3 bilingual Added/Optimized structure and two comparison links, with generic Navigate scope. Archive old release identity before replacing old release/tags; no force push.

- 2026-11-11T16:47:01+08:00, Codex: User corrected scope to generic Navigate API with provider-owned adapters. Remove production HowToGo discovery/registration and its dedicated mandatory tests/download from builds. Preserve public API overloads, availability, chooser and dimming. Published v1.6.0 assets/tags remain unchanged and still contain the earlier adapter; this correction is development source only.

- 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.
Expand Down
4 changes: 4 additions & 0 deletions docs/agents/TASKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

## 进行中

### [进行中] Replace release 1.6.0 with provider-owned Navigate builds
- Codex, 2026-11-11T17:03:13+08:00: User explicitly requests replacing release1.6.0 and matching the 1.5.3 note format. Build the merged provider-boundary correction on all six targets, retain the old publication metadata/downloads locally, replace release assets and version tags through normal protected publication, and verify public bytes.


### [完成] 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.

Expand Down
56 changes: 20 additions & 36 deletions docs/releases/v1.6.0.md
Original file line number Diff line number Diff line change
@@ -1,54 +1,38 @@
> **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.
Compared with v1.5.3, this release improves the Navigate API for third-party navigation mods, adds per-station availability checks, and completes four-language interface support across all six supported builds.

### Added

- **HowToGo integration.** With a compatible HowToGo build installed, select it from a station's Navigate action to hand off the station's actual name and block coordinates. HowToGo owns route search, travel preferences and guidance; it remains optional.
- **Availability-aware Navigate.** The action is dimmed when no provider can handle the selected station. Available providers appear in the chooser, with availability checked again on click. Existing three-argument provider registrations remain compatible; a new optional predicate overload supports per-target readiness.
- **A more complete Navigate API.** Third-party navigation mods can register a provider with a per-target availability predicate and handle the selected station through the public API. The existing registration overload remains compatible; navigation integration is supplied by external mods.
- **Availability-aware navigation.** Navigate is dimmed when no registered provider can handle the selected station. Multiple available providers appear in a chooser, and availability is checked again on click.
- **Four interface languages.** English, Simplified Chinese, Traditional Chinese and Japanese cover map controls, station arrival boards, tooltips, commands and diagnostic feedback, following the game language. Player-defined station and route names remain unchanged.
- **The same features on all six platforms.** NeoForge/Fabric MC 1.21.1 builds target MTR 4.1.0-beta.2 and Java 21; Forge/Fabric MC 1.20.1 and 1.20.4 builds target MTR 4.0.5 and Java 17. Native station arrivals and full-network data require matching client and server Overlay support.

### Fixed and improved

- Forge1.20.4 quick-play now completes native loading before connecting a world, preventing missed server lifecycle initialization and Xaero disconnects while preserving loading warnings and errors.

- Translated Xaero controls render text separately from their icons. JourneyMap toolbar labels, PIDS style names and older tooltip/command messages are localized.
- Closed, stale or failing navigation providers cannot be invoked; provider errors do not disable other providers or flood the log.
- Diagnostic marker results use explicit success values rather than parsing English text, including failures while JourneyMap is not ready.
- Native arrival boards, independent map focus/dimming, whole-map trains and pure 2D rendering remain available on all supported builds.

- Fix Forge 1.20.1 optional channel negotiation so clients can join MTR servers without Overlay and use nearby-data fallback.
### Optimized and fixed

### Supported builds

- Minecraft **1.21.1**: **NeoForge / Fabric**, **MTR 4.1.0-beta.2**, Java 21.
- Minecraft **1.20.1 / 1.20.4**: **Forge / Fabric**, **MTR 4.0.5**, Java 17.
- Choose the exact Minecraft/loader attachment. Station arrivals and full-network data require server-side Overlay support; install matching builds on both sides.
- Improved provider lifecycle handling: closed, stale or failing providers cannot be invoked, and one provider's failure does not disable others or repeatedly flood the log.
- Separated Xaero control text from icons and localized JourneyMap toolbar labels, PIDS style names and remaining tooltip and command messages.
- Fixed Forge 1.20.4 quick-play loading order, preserving native loading warnings and errors while preventing missed server lifecycle initialization and Xaero disconnects.
- Fixed Forge 1.20.1 optional channel negotiation so clients can join MTR servers without Overlay and use nearby-data fallback. If launcher quick-play times out, use the in-game multiplayer server list.
- Retained native arrival boards, independent map focus and dimming, whole-map trains and pure 2D rendering. Diagnostic markers now use explicit success values instead of parsing English messages.

### 中文更新说明

相较 v1.5.3,本版新增可选 HowToGo 目的地转交、逐站 Navigate 可用性检查及完整四语言界面。
相较 v1.5.3,本版完善供第三方导航模组接入的 Navigate 接口,新增逐站可用性检查,并补全四语言界面,六个平台同步提供。

**新增功能**

- **HowToGo 对接**:安装兼容版本后,可从车站 Navigate 入口选择 HowToGo,转交真实站名与方块坐标。路径搜索、出行偏好及引导由 HowToGo 负责,仍为可选依赖。
- **导航可用性检查**:没有可用于当前车站的服务时按钮淡显;多个可用服务显示选择器,点击时再次验证。保留原有三参数注册接口,并新增逐目标可用性判定。
- **四语言界面**:英文、简体中文、繁体中文与日语覆盖地图控件、站点到发板、提示、命令与诊断反馈,跟随游戏语言。玩家自定义站名、线路名保持原样。
- **完善 Navigate 接口**:第三方导航模组可注册逐目标可用性判定,并通过公共接口处理所选车站;保留原有注册重载,具体导航适配由外部模组提供。
- **导航可用性检查**:没有可处理当前车站的已注册服务时,Navigate 按钮淡显;多个可用服务显示选择器,点击时再次验证可用性。
- **四语言界面**:英文、简体中文、繁体中文与日语覆盖地图控件、站点到站板、提示、命令与诊断反馈,跟随游戏语言。玩家自定义站名、线路名保持原样。
- **六平台功能同步**:MC 1.21.1 的 NeoForge/Fabric 包对应 MTR 4.1.0-beta.2 与 Java 21;MC 1.20.1/1.20.4 的 Forge/Fabric 包对应 MTR 4.0.5 与 Java 17。原生站点预测与全网数据需客户端和服务端安装匹配版本。

**优化与修复**

- 修复 Forge 1.20.1 可选通道判断,允许客户端连接未安装 Overlay 的 MTR 服务器并使用附近数据降级。

- 修复Forge1.20.4快速进入存档时的加载顺序,保留原生警告与错误页面,避免漏发服务端生命周期事件导致Xaero初始化失败和断线。

- Xaero 控件将文字与图标分离绘制,补全 JourneyMap 工具栏、PIDS 样式名及旧提示、命令的翻译。
- 关闭、过期或异常的导航服务不会被调用,也不会影响其他服务或反复刷日志。
- 测试标记改用明确的成功状态,不再解析英文消息;JourneyMap 尚未就绪时正确反馈失败。
- 保留六平台的原生到站板、独立聚焦与淡化、全图列车及纯二维绘制。

MC 1.21.1 对应 NeoForge/Fabric、MTR 4.1.0-beta.2 与 Java 21;MC 1.20.1/1.20.4 对应 Forge/Fabric、MTR 4.0.5 与 Java 17。请按精确 MC/加载器选择附件;全网与站点预测需服务端支持。
- 完善导航服务生命周期处理:关闭、过期或异常服务不会被调用,单个服务出错不会影响其它服务或反复刷日志。
- 分离 Xaero 控件文字与图标,补全 JourneyMap 工具栏、PIDS 样式名及其余提示、命令的翻译。
- 修复 Forge 1.20.4 快速进入存档时的加载顺序,保留原生警告与错误页面,避免漏发服务端生命周期事件导致 Xaero 初始化失败和断线。
- 修复 Forge 1.20.1 可选通道判断,允许客户端连接未安装 Overlay 的 MTR 服务器并使用附近数据降级。启动器自动直连超时时,可通过游戏内多人服务器列表连接。
- 保留原生到站板、独立地图聚焦与淡化、全图列车及纯 2D 绘制;诊断标记使用明确的成功状态,不再解析英文消息。

**MC 1.20 Changelog**: [v1.5.3-mc1.20...v1.6.0-mc1.20](https://github.com/teamCreating/MTR-Map-Overlay/compare/v1.5.3-mc1.20...v1.6.0-mc1.20)

Expand Down
4 changes: 4 additions & 0 deletions walkthrough.md
Original file line number Diff line number Diff line change
Expand Up @@ -430,3 +430,7 @@ Protected Publish42967128625 completed successfully. Download all ten public ass
The user clarified that Overlay should improve the generic Navigate API so external mods can adapt to it. Remove the built-in HowToGo reflection bridge and automatic registration, together with its dedicated tests and mandatory build-time download. Preserve the generic provider predicate overload, chooser, stale-provider handling and disabled-state behavior. Keep original QA observations as historical evidence. Published 1.6.0 binaries/tags are unchanged; they still contain the earlier adapter, so document this boundary explicitly instead of rewriting release history.

Validation 2026-11-11T16:48:32+08:00: Gradle test successful: {'tests': 105, 'failures': 0, 'errors': 0, 'skipped': 1}. Production Java has no HowToGo discovery, bridge or registration. Generic Navigate implementation and API signatures are preserved. Public release scope correction was read back; all ten asset IDs and digests remain unchanged.

### 2026-11-11T17:03:13+08:00 — Replace 1.6.0 on explicit user request

Build the already merged generic Navigate correction for six targets; external mods own adapters. Rewrite public notes using 1.5.3 structure: bilingual Added/Optimized sections, MC/MTR compatibility and two final diff links. Preserve original publication metadata and downloaded assets locally before replacement. The user explicitly authorized replacing this version; recreate its release/tags on new sealed sources rather than force-pushing or silently retaining obsolete source tags. Use protected Publish and verify all ten replacement downloads. The old 72-case runtime record is historical, not a new binary runtime claim.
Loading