diff --git a/ROADMAP.md b/ROADMAP.md index 9914e47a..517f6987 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,7 +4,7 @@ This file tracks the current state and future direction of IDApTIK. -## Current State (2026-03-29) +## Current State (2026-06-01) - 2,011+ tests across 211 modules (shared + VM + Deno + sync server + Zig FFI) - WASM VM backend at 41M ops/sec (Zig), in-browser benchmark harness built @@ -14,23 +14,34 @@ This file tracks the current state and future direction of IDApTIK. - Multiplayer fully wired — VM relay, covert links, alerts, co-op requests dispatch to QView + Observer - polyglot-i18n across 5 languages (EN, ES, FR, DE, JA) - Escape hatch TUI (Rust/ratatui) for emergency state inspection -- Balance analyser (Julia Monte Carlo) — 7 recommendations, report regenerated +- Balance analyser (Julia Monte Carlo) — 7 recommendations available in `balance-report.json` (not yet applied) - Containerised deployment (Chainguard images) with CI lint + build + push pipeline -- Character system: Jessica subclasses, Q certifications, Moletaire coprocessors +- Character system: Jessica subclasses (`JessicaBackground.res`), Q certifications, Moletaire coprocessors +- Jessica gameplay loop fully wired: attributes from background bonuses → loadout (3-slot, 20 items) → critical-roll outcomes → dual-alert HUD +- Q gameplay loop fully wired: program deck (`QPrograms.res`), certifications gate program tracks, critical-roll bridge into deck synergy +- Editor surface area in `idaptik-ums/src/editor/`: 9 corrupted dead `.res` files deleted (#116 → #120); rewrite blocked on AffineScript user-module codegen landing +- E2E suite operational: Playwright (root) `webServer.cwd` corrected (#118 → #121); 12/18 chromium tests pass, 6 residual a11y/perf/console gaps tracked in #122 - OpenSSF Silver ~97% — fuzz harnesses, security tests, only bestpractices.dev registration remains ## Near-Term (code ready to build) -- [ ] Apply balance analyser recommendations (guard density: security/scada/backbone) -- [ ] Wire `QPrograms.res` — 13 programs, 4-slot deck (designed, not coded) -- [ ] Wire `JessicaClass` bonuses into `PlayerAttributes.res` -- [ ] Wire `MoletaireHunger.res` gravity system into `Moletaire.res` update loop -- [ ] Wire `MoletaireCoprocessors` multipliers into `Moletaire.res` tuning -- [ ] `JessicaLoadout.res` — 3-slot system (Weapon/Tool/Consumable), 20 items -- [ ] Dual alert HUD — Physical (Jessica) + Cyber (Q), Invisible Inc style -- [ ] Jessica customisation — hair up/down, colour, clothing (simple/realistic) -- [ ] Critical success/failure system for Jessica skills and Q certs -- [ ] Register on bestpractices.dev for OpenSSF Silver badge +- [ ] Apply balance analyser recommendations to per-level configs (`balance-report.json` → `LevelConfig.res` / per-level Tuning data). 7 recommendations across `city`, `dmz`, `security`, `scada`, `backbone` — guard patrol radius, defence density, alert threshold, guard spawn rate +- [ ] Register on bestpractices.dev for OpenSSF Silver badge (external action — repository qualifies) +- [ ] Resolve 6 residual Playwright failures (a11y, perf threshold, console errors) — see #122 +- [ ] Rewrite editor surface in `idaptik-ums/src/editor/` once AffineScript user-module codegen lands. AS stdlib extern → Deno-ESM codegen has landed (affinescript#522, #504, #463, #421); user-module codegen is the remaining gap. Tracked in idaptik#116 (deletion landed) and across-estate parent affinescript#228 + +## Completed (2026-06-01 audit) + +All items in this section were marked as Near-Term in the 2026-03-29 ROADMAP but found wired during the 2026-06-01 truthfulness audit. Each item is followed by the source file where the wiring lives. + +- [x] ~~Wire `QPrograms.res` — 13 programs, 4-slot deck~~ — wired into `GameLoop.res:27,94` (deck state) + `PlayerState.res:57,83,145-149` (load/unload + availability) + `LoadoutScreen.res:191-192` (UI) + `QViewScreen.res:431-438` (status). All 12 programs (PortScanner, NetworkMapper, VulnerabilityProbe, CredentialHarvester, CameraLoop, FirewallBypass, Rootkit, LogScrubber, PacketSniffer, DNSRedirect, DroneOverride, SignalJam) exist and have track requirements +- [x] ~~Wire `JessicaClass` bonuses into `PlayerAttributes.res`~~ — done; the type was renamed from `JessicaClass` to `JessicaBackground.background`. Wired via `PlayerAttributes.makeWithClass` (`PlayerAttributes.res:41-51`) +- [x] ~~Wire `MoletaireHunger.res` gravity system into `Moletaire.res` update loop~~ — wired at `Moletaire.res:1052-1092` (hunger rate calculation + total pull computation each `update` tick) +- [x] ~~Wire `MoletaireCoprocessors` multipliers into `Moletaire.res` tuning~~ — wired throughout `Moletaire.res:229,276,441,457,467,476,485,520,555,1034,1051` (audio sound count, voice mimicry, sensor range, vault weak-point detection, vibration reading, path efficiency, eat-chance multiplier) +- [x] ~~`JessicaLoadout.res` — 3-slot system (Weapon/Tool/Consumable), 20 items~~ — wired at `GameLoop.res:35,100` (loadout state) + `PlayerState.res:56,82,117-138` (default + persistence) + `LoadoutScreen.res:153,161` (selection UI). 6 weapons + 8 tools + 6 consumables = 20 items confirmed +- [x] ~~Dual alert HUD — Physical (Jessica) + Cyber (Q), Invisible Inc style~~ — wired via `DualAlertBridge.res` (full bridge) + `HUD.res:76,86` (HUD rendering) + `GameLoop.res:25,93,886-894` (state + per-tick update + anti-hacker guard dispatch) +- [x] ~~Jessica customisation — hair up/down, colour, clothing (simple/realistic)~~ — implemented in `JessicaCustomiseScreen.res` (hair style, colour, options container, preview rendering). Reachable from `CharacterSelectScreen.res:343` +- [x] ~~Critical success/failure system for Jessica skills and Q certs~~ — wired in `CriticalRoll.res` + applied at `WorldBuilder.res:1453+` (Jessica skill rolls via `jessicaRollWithAttrs`) and `QPrograms.res:376-379` (Q rolls via `qRollForTrack`) ## Completed (2026-03-29 session) @@ -59,6 +70,7 @@ This file tracks the current state and future direction of IDApTIK. ## Long-Term - [ ] ReScript 13 migration (validated in `idaptik-rescript13-staging`) +- [ ] ReScript → AffineScript migration (estate-wide STEP 8; gated on AS user-module codegen; tracked in idaptik#116 + affinescript#228) - [ ] Competitive multiplayer mode (attack vs defend) - [ ] MMO expansion — multiple Q-class players (Q-1, Q-2, Q-specializations) - [ ] Steam release with workshop mod support