Roadmap
AI / AGENT ROADMAP GATE - READ BEFORE ACTING
Mandatory: read AI Start Here before implementing any roadmap item.
When Architect says “read the GitHub”, “read the roadmap”, “get caught up”, “resume XCSV”, or equivalent, enter
READ_ONLY_BOOTSTRAPfirst.Roadmap status is intent, not implementation proof. Reconcile the target against the authoritative desktop roadmap, RAG/history, local working trees, local commits, GitHub remote/submodule pointers and relevant live/runtime evidence. Classify it as
VERIFIED_DONE,PRESENT_UNVERIFIED,PARTIAL,PLANNED_ONLY,STALE_OR_CONFLICTED, orBLOCKED. Then identify the smallest remaining delta.Never build substantially equivalent functionality twice. If implementation already exists, verify/extend/repair/document that path instead of creating a parallel subsystem unless Architect explicitly authorizes replacement.
The authoritative, full-length roadmap is
ARMA3_EXILE_CODEX\ROADMAP.md in the Obsidian vault - it carries the reasoning,
the struck-through wrong turns and the measurements. This page is the summary
you can link to.
2026-08-07 planning sync - RECONCILED. The GUARD / Gauntlet planning backlog originated here and has now been absorbed into the authoritative desktop roadmap as Phase 15 (work ID
XCSV-AI-001). The desktop/ObsidianROADMAP.mdremains authoritative for priority, evidence and refuted hypotheses; this page remains the durable summary. Documentation state isSYNCED.
Guiding rule: performance before content, always.
Done
| phase | outcome |
|---|---|
| 0 - Stabilise | restart-loop/PBO corruption class repaired; runaway RPT/extDB architecture corrected; credentials/reboot survival addressed |
| 1.5 - Lootbox deadlock | LB_WaitSysBusy 40 -> 15; map population completed; major settled-FPS improvement |
| 2.3 - FuMS on HC | FuMS live on server/HC; first Tanoa mission slice active; A3XAI/FuMS handoff observed on HC owner 4 |
| 2.4 - x64/extDB3 production | production migrated to arma3server_x64.exe + extDB3 with -maxMem=12288 |
| 2.5 - Memory/RAG first slice | vault/wiki memory index generated |
| 2.6 - RAG pulse in GUARD | GUARD exposes local RAG status/pulse |
| 2.7 - GUARD database views | grouped read-only DB presets for overview, players, territories, vehicles and economy |
| 2.8 - GUARD release/capture subsystem | build numbering, current-release manifests, controlled Desktop deployment and capture tooling |
| 4.7 - Out-of-band alerts & noise filter | disconnect/restart notifications and centralized benign RPT filtering |
| 10.1.2 - Player Inspector (App20) | admin XM8 account/territory inspector plus extended extra-app grid source |
| 7.5 - Stack orchestration | dependency-ordered start/stop for database, server, HC and local model |
| 8 - Mistake prevention | project AI rules, executable doctor assertions, wiki and Lessons discipline |
In flight / retained
- richer GUARD AI/mission drilldowns and alerts
- richer structured GUARD database browser
- HC hardening and real-load ownership observation
- BattlEye staged enforcement
- infiSTAR cloud 403 diagnosis while local logs remain authoritative
- GUARD-PERF-001 is closed in build
guard-0.7.1+16: notification flood was mitigated earlier, supervision moved off the egui/render callback, and minimized real-process recovery was independently accepted. - AI continuity lane: Hermes/OpenClaw/Ollama are available for manual baton and
read-only critic workflows. OpenClaw
xcsvcontinuityprofile config now validates, plugins load, and unavailable optional skills are pruned, but automatic failover authority remainsPARTIALuntil Hermes runtime invocation and stronger OpenClaw profile collision tests are proven. XCSV-ORCH-001(2026-08-09) closes the Gauntlet Loop asPASS_VERIFIED. One bounded claim was routed across four distinct providers — OpenAIcodex-cli, Anthropicclaude-cli, OpenCodeopencode-cliand localollama-qwen3-4b-instruct— with critic separation enforced by provider, a repair loop that changed the planned reconciliation, and a transcript-free worker handoff. Nine failure/ exhaustion tests all preserved the baton. Two real isolation defects were found and repaired: a shared OpenClaw approval token, andcmd.exeAutoRun re-injecting SOVRAN state into every worker. OpenClaw auto-routing is deliberatelyMANUAL_ONLY(failed closed rather than copy provider auth across the boundary);gemini-cliisUNAVAILABLEpending re-auth. See AI Continuity and receiptXCSV-ORCH-001-gauntlet-20260809.XCSV-ORCH-002(2026-08-09) canonicalizes the orchestration subsystem. Source is now the private repox-cessive/XCSV_ORCHatD:\XCSV_ORCH, with the runtime as a hash-verified deployment target rather than a second master;deploy.ps1refuses any destination that would mint a second continuity state root or cross the project boundary. Hermes isRUNNABLE_VERIFIEDunder its ownHERMES_HOME— the profile flag alone was writing XCSV sessions into the sharedstate.db. OpenClaw now genuinely routes a worker over a local Ollama provider configured per its official docs, with no credential copied from the default agentDir; full unattended auto-routing is still not claimed. Qwen Code installed butAUTH_REQUIRED; Gemini reclassifiedAUTH_REQUIRED(provider tier rejection, not a missing login). An independent critic caught a-dirtyunreproducible deploy, which drove three repairs: provenance reporting, extra/deleted-file drift detection, and a run gate that refuses to route claims against a drifted runtime. See receiptXCSV-ORCH-002-canonicalization-20260809.XCSV-ORCH-003(2026-08-09) closes the runtime source-integrity gap. Orchestration code runs from content-addressed releases underD:\CAGE\xcsv-ai-continuity\releases\<commit>\, selected by aCURRENT.jsonpointer that pins the manifest hash. Every dispatch path — Gauntlet controller, Hermes launcher, andInvoke-XcsvWorkeritself — verifies the chain before executing, and fails closed withINTEGRITY_BLOCKED. Time-of-check/time-of-use is closed for loaded modules: the loader hashes bytes in memory and executes those same bytes. The live baton stays atstate\CURRENT_HANDOFF.jsonand is never duplicated per release. 19 adversarial integrity tests prove code mutation blocks while baton and log mutation are allowed, plus rollback, no-second-state-root, mid-run pointer-swap resistance, and baton-not-executable scanning. Runtime release8cb52165912fverifies at manifest SHA25698FF21064F382F8FE370334D7369BAC3C11B70A0D47865897CCABAD0987E05E6. OpenClaw is verified only as a gated local lane; full Work-ID routing remains unproven. Root of trust terminates at the pointer plus the integrity module — no code signing is in place. See receiptXCSV-ORCH-003-runtime-integrity-20260809.- GUARD-RCON-001: GUARD RCon credential drift was proven and the live encrypted config was repaired hash-only against the active BattlEye config. Shutdown semantics remain separate and unproven.
- GUARD-PERF-001: build
guard-0.7.1+14adds a guarded--diagnostic-stop-managed-serverCLI path that validates exact PID, single-server count and configured executable path before termination. It proved correct target selection for PID 7956 but still hit WindowsAccess is denied; elevated scheduled-task creation/change isBLOCKED_PERMISSION, so minimized real-process recovery remains unclosed. - GUARD-PERF-001: builds
guard-0.7.1+15andguard-0.7.1+16repaired the diagnostic fail-open, replaced thetaskkillPID handoff with validated process-handle termination, refused broad image-name kills when GUARD has no owned child handle, and fixed duplicate HC launch detection with a CIM fallback. Build 16 proved the critical runtime path: GUARD minimized, real server PID37804terminated, replacement server PID41016launched by GUARD without GUI restoration, ports returned, mission/extDB/server-up markers appeared, and exactly one HC PID5788connected. A separate independent review returnedPASS_VERIFIED; GitHub issue #9 is closed with project stateVERIFIED_DONE/PASS. - GUARD-ADOPT-001: follow-up issue #13 tracks the separate, safer-than-before
but still operationally important gap where a restarted GUARD can observe an
already-running configured
arma3server_x64.exebut lacks an owned child handle and therefore refuses manual stop/restart control rather than broad killing by image name. Required direction is an explicitOBSERVED/OWNED_CHILD/ADOPTEDauthority model with executable identity, ambiguity and PID-reuse protections. Source implementation is nowPASS_SOURCE_VERIFIEDinD:\XCSV_GUARD: GUARD distinguishes observed, adopted and owned-child control, adoption is gated on exactly one configured server executable, stop/relaunch revalidates before adopted control, and UI displays the authority. Runtime deployment is nowPASS_WITH_CAVEAT: buildguard-0.7.1+17visibly adopted external server PID21424, a deployed diagnostic stop terminated that validated adopted process by handle, and GUARD recovered to replacement server PID41508without a duplicate dedicated server. Buildguard-0.7.1+19also makes AI launches deterministic by placing GUARD on the right half of the primary work area; Orca verified geometry960,0 960x1032and visibleadopted controlover PID41508. Remaining caveat: Orca synthetic clicks did not activate the visible Stop Everything button, so the exact adopted StopStack GUI click path is stillNOT_OBSERVED. See receiptGUARD-ADOPT-001-issue-20260809. - EXILE-DB-001 remains closed for the SQL/extDB3 repair, but 2026-08-09
reconciliation found no proof yet of real player-driven construction,
container and territory persistence through restart/reload after the repair.
Live read-only counts were
construction=0,container=0,territory=0. Treat the remaining delta as bounded verification, not as evidence of SQL regression. - artifact versioning beyond GUARD itself
2026-08-07 development programme
Detailed design: XCSV GUARD Development Plan.
A. XCSV Gauntlet
Create one canonical versioned protocol for Claude Code, OpenCode, Antigravity and development-local LLMs:
TARGET LOCK -> RECON -> DECOMPOSE -> WORKERS -> ADVERSARIAL CRITICS -> INTEGRATION -> MEASUREMENT -> EVIDENCE -> VERDICT
Depth scales G0-G4 by risk. Workers do not self-certify. Keep EVIDENCED / INFERRED / UNKNOWN separate. Refuted hypotheses become durable knowledge. Deterministic rules should become executable checks.
B. GUARD restart-safe state model
Primary invariant:
Closing XCSV GUARD must never erase operational truth. Reopening it must reconstruct the same server state from authoritative sources and continue supervising it without duplicates, reset schedules, fabricated health or false incidents.
Classify state as:
- Durable — settings, UI context, restart deadline/warning state, saved DB views/history, incident acknowledgements, action journal, artifact/experiment metadata
- Reconstructable — process/PID/memory, RCon/players, current logs, integrity, missions/AI ownership, DB contents, RAG/model state
- Ephemeral — transient UI mechanics
C. Config/state durability
- separate
xcsv_guard.jsonconfiguration from operational durable state - prefer a small GUARD-local SQLite store for history/state
add config/state schema versions and explicit migrations— done for configuration,GUARD-STATE-001(2026-08-07)write critical config/state atomically with known-good fallback— done for configuration,GUARD-STATE-001never silently default a corrupt state into apparently healthy operation— done for configuration,GUARD-STATE-001
GUARD-STATE-001 covered the configuration half: config_schema_version
read from raw JSON before deserialization, ordered v(n) -> v(n+1) migrations
over the document, atomic save (validate → temp → sync_all → promote
known-good → rename), and distinguishable load outcomes with an interlock that
refuses automatic saves over a corrupt or newer-schema file. See
XCSV_GUARD/src/config_store.rs.
Still open in C: the operational-state store itself. It was deliberately not built — GUARD persists no operational state today, so nothing yet forces SQLite. Build it when the first real consumer arrives (restart deadlines are the likely first, from section B).
D. Startup reconciliation + desired/observed state
Before READY, rediscover database, server, HC, model, RPTs, integrity, missions, RCon, players, restart state, infiSTAR/BattlEye and RAG/docs.
Model desired state vs observed state so GUARD knows the difference between intentionally disabled and unexpectedly missing components.
Closing GUARD is not Stop Everything.
E. Restart survival and Safe Mode
Persist wall-clock restart deadlines, warnings already sent and relaunch intent.
Add Safe Mode for corrupt config/state or untrusted startup conditions: read-mostly diagnostics/logs/integrity/docs available; no automatic production mutation.
F. Backend backplane + tab contracts
Move toward:
Collectors -> Evidence/Observations -> Derived Services -> UI
Create stable process/stack, RCon/player, telemetry, mission/AI, database, integrity/artifact, notification and docs/RAG services.
Every tab defines sources, freshness, states, actions and delivery proof. Standard states: LOADING / HEALTHY / DEGRADED / STALE / OFFLINE / ERROR. UNKNOWN must never be rendered as zero.
G. Test harness, Replay Mode and failure fixtures
- mocked tab contract tests plus live integration checks
- GUARD self-diagnostics screen
- offline Replay Mode using captured RPT/log/RCon/process/metrics/PBO/DB/artifact evidence
- convert serious failures into permanent regression fixtures where practical
Rule: a production failure should be allowed to surprise XCSV once.
H. Operator Action Journal
Record consequential GUARD actions with timestamp, target, GUARD build, result and evidence reference. Feed these records into Incident Mode and Replay Mode.
I. UI/UX refoundation
Task-oriented groups:
- OPERATE: Overview, Players, Restarts
- INTELLIGENCE: AI/Missions, Metrics, future map
- DIAGNOSTICS: Integrity, Server Log, Consoles, infiSTAR
- ADMIN/DATA: Database, RCon
- KNOWLEDGE: Docs/RAG
- SYSTEM: Settings, Diagnostics
Consider two information-density modes:
- Operations Mode — health, players, incidents, missions, restarts
- Engineering Mode — integrity, artifacts, profiling, experiments, deployment diff, logs, DB and RAG/docs
Overview should emphasize attention rather than green noise. Add navigable status chips, consistent consequence-based confirmations, optional command palette, and a universal entity inspector for Player/Territory/Vehicle/Mission/Process/Artifact/Incident.
J. Evidence/history, SLOs and headroom
Add GUARD-local historical telemetry separate from the gameplay DB.
Track operating phases such as BOOTING / POPULATING / SETTLING / STEADY STATE / DEGRADED / RESTARTING.
Define practical XCSV health objectives: settled FPS/floor, boot-to-joinable, HC handoff time, RCon recovery, GUARD reconciliation, RPT growth and integrity expectations.
Add a capacity/headroom view for FPS, CPU, RAM, disk, RPT growth, world objects, AI ownership and DB latency.
K. Experiment-driven server optimization
Hypothesis -> Baseline -> Bounded Change -> Gauntlet -> Runtime Observation -> Result -> Durable Memory
Use profiler/slow-frame capture when ordinary metrics stop converging. Maintain budgets for AI, world objects, scheduler work, network activity and database load. Do not add HC2 without evidence.
L. Database/operator objects
Evolve Database toward structured sortable/filterable tables, saved views/history and useful comparisons.
Build GUARD-side Player, Territory and Vehicle entities. Player Inspector should become a central operator concept, not only an XM8 app.
M. Incident Mode + Tanoa operations map
Incident Mode correlates metrics, RPT/HC RPT, ownership, process state, operator actions and deployment identity chronologically.
Build a read-only Tanoa operations map for source-backed missions, AI ownership/concentration, crashes, events, trader/territory information and other known markers.
N. Artifact Registry, deployment diff and rollback
Extend release identity across mission/server PBOs, addons, scripts, BattlEye filters, extDB query files and bundles.
Track artifact ID, version/build, source commit, timestamp, SHA256, deployed SHA256 and status.
Before deployment show production-vs-candidate diff, affected surfaces, validation/BattlEye/DB/network implications and exact rollback artifact. Surface CURRENT and PREVIOUS VERIFIED identities.
O. State drift, provenance and compatibility
Build deterministic drift checks for roadmap/backlog state, README counts, submodules, release manifests and deployed hashes.
Create addon/script provenance metadata: original author/source/license, upstream status, XCSV modifications, maintainer, compatibility, dependencies, performance/security exposure, deployed state and replacement candidate.
Maintain a compatibility matrix for x64, extDB3, Tanoa, HC, BattlEye and XCSV verification.
P. Change Impact Graph
Map shared override/network/database/deployment dependencies so the Gauntlet can answer what could this change break? before mutation. Prioritize CfgExileCustomCode, client/server network paths, DB queries, BattlEye surfaces and GUARD observation dependencies.
Q. Staging path for G3/G4 work
Support a temporary isolated integration instance with alternate ports/profiles and copied/synthetic DB where feasible. Use it for network changes, DB mutations, BattlEye rules, write-capable XM8 flows and major upgrades before production evidence.
R. Curated player development
Prioritize coherence over raw addon count:
- Territory Manager
- Contract / Job Board
- Bounty system
- meaningful faction-standing integration
- Server Chronicle
- asynchronous community/message system
- choreographed rotating events
- investigate ZCP/Capture Points before another heavy AI framework
Keep Zombies/Vcom parked until measured headroom changes the decision.
S. AI evidence boundary
Development AI may consume exported GUARD evidence, replays, metrics, manifests and tests.
Preferred direction:
GUARD -> evidence -> development AI
not unrestricted production authority through GUARD controls. Runtime local model remains tool-less and non-load-bearing.
Recommended sequence
- Gauntlet architecture
- canonical AI rule distribution/drift detection
- config/state schema versioning + atomic persistence
- durable/reconstructable/ephemeral state model
- startup reconciliation + desired/observed state
- restart persistence + RCon auto-reconnect
- backend backplane/health registry
- tab contracts + self-diagnostics
- Replay Mode + failure fixtures
- Operator Action Journal + Safe Mode
- shell/navigation + Operations/Engineering UX
- Overview + universal entity inspector
- structured DB/operator objects
- telemetry/history + SLO/headroom + experiments
- Incident Mode
- operations map
- Artifact Registry + deployment diff + rollback
- provenance/compatibility + Change Impact Graph
- staging path
- curated player progression/content
Later / deliberately parked
- second HC only after measured need
- player chat with AI only under strict isolation/non-load-bearing rules
- deeper RAG/search and CI
- Zombies/Vcom only if performance evidence changes the decision
Governing principles
GUARD should never need to remember that the server is healthy. It should be able to prove the server is healthy again every time it starts.
Green is quiet. Problems are loud. UNKNOWN is never zero.
A production failure should surprise XCSV once; afterward it becomes evidence, a fixture or an executable check.
Never begin from what the roadmap says needs building. Begin by proving what remains to be built.