Changelog
The latest public-facing changes. The full development log (every hotfix, every audit-followup, every internal fix) lives in the administrator section's version development history and is gated behind Cloudflare Access.
Live version
This manual was stamped against v2.31.0.26 released 2026-04-28 (commit 38d3eec). If the app footer at pmsplanner.com shows a different version, the manual will be re-stamped on the next deploy.
v2.31.x — Source-of-truth grounding
- CL Skeleton wizard — Windows-installer-style 12-step build for vessel component lists. Six mandatory blockers (Particulars · Capacity Plan · GA Plan · Form E/SER · GMDSS · ECDIS) gate the build.
- Class & Flag Documents wizard — formerly "Source Documents Wizard". Single named A/B/D source-document register, with a "Base named A/B/D" / "Helpful" register-section split.
- GLOBAL UCS Manifest Master bridge — CL Skeleton consumes the active foundation Master directly via
ucs_foundation_versions(is_active=1); no separate Master upload needed. - Component breadcrumbs & missing-component picker — Atlas-driven (L1 → L2 → L3 → component).
- UCS Foundation cascade — preview-then-apply two-step UX. Preview classifies each code as
kept | renamed | moved | split | merged | deleted | newand shows per-table impact counts before apply. - AI architecture — five-provider swarm with router (Workers AI · Claude · Gemini · Perplexity · Kimi). RAG retrieval (dense Vectorize + sparse FTS5). KB orphan heal (Jaccard ≥ 0.72). Self-learning hook from non-rejected corrections.
- In-app messenger with Postmark email mirror, quiet hours 23:00–08:00 Europe/Sofia,
ai-statuschannel for automatic AI-pipeline events.
v2.30 — System audit batch
Closed 4 critical and 8 high/medium findings. Added daily $ budget guard for AI providers, atomic-swap for the maker/model dictionary rebuild, KB orphan quarantine.
v2.29 — 3-tier role model
Introduced supervisor tier between superintendent and administrator. Capability gates moved into src/role-helpers.js. /api/staff/* routes admit supervisor + admin (Teach Model, KB rebuild, RAG graph, draft approve/reject).
v2.28 — Admin menu overhaul
Replaced the flat strip of 18 sibling tab buttons with 5 grouped dropdowns (Drafts & Approvals · Components · Fleet · Knowledge · System).
v2.27 — RAG Knowledge Graph
New admin page /admin/rag-graph renders a force-directed graph of components, makers, models, source documents, and UCS codes.
v2.26 — Documents Missing badges
Components without backing source documents show a blue DM badge. Proof-bearing fields (maker / model / serial / location / install_date) blink orange when missing.
v2.25 — KB component ingestion
Synthetic RAG chunks for every active component, plus a fleet-wide maker/model dictionary that boosts retrieval recall.
v2.24 — Hardened component import
Row-level schema validation, structured rejected[] reasons, partial-success 207 Multi-Status. New /api/health public probe.
v2.23 — Particulars priority + Ship's Documents in RAG
IMO + DWT propagate from Particulars on approval. Knowledge-base library doc-type taxonomy expanded 7 → 22.
v2.21 — Bundle-size lazy-load
Admin and Components pages lazy-loaded so the main bundle shrinks.
v2.20 — In-app messenger + email mirror
Replaced WhatsApp with migrations/0069_messages.sql thread model and Postmark email mirror.
v2.15 — WhatsApp removal
All Z-API / Meta WhatsApp Cloud API code dropped. Notifications now go through the in-app messenger only.
v2.12 — Login gate (temporary)
Only the admin account can log in until the system is "dumb-proof on inputs and procedures." Anti-misuse hardening: Workers AI filename classifier + magic-byte sniff (catches .jpeg→.pdf spoof and CERT→GA rename).
For the full per-version log, including hotfixes (vX.Y.Z.N) and audit-followups, see Version development history (administrator-only).