Files
correx/RETRO.md
T
kami 3302930b00 docs(backlog): record B§4 activation (4e08510) in RETRO
Architect contradiction-check is now live (server subscribes to the architect design
artifact and emits the display-only flag). All cleanly unit-verifiable deterministic
backlog tracks are now landed; what remains is model-dependent activations (live-QA
gated) and deep session-lifecycle work (§H) better done with live testing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-21 08:08:14 +00:00

7.0 KiB

CORREX — RETRO (archive of resolved BACKLOG items)

Counterpart to BACKLOG.md (the live outstanding list). Items here are built and unit-verified (Gradle green). Where a live-QA gate applies, that's called out as a follow-up — this sandbox has no local model / SearXNG / GPU / network, so live-QA could not be run here.


2026-06-20 — backlog burndown (branch feat/backlog-burndown)

Nine tracks, each compiled + unit-tested green before commit.

Commit Track BACKLOG ref
f783eed CritiqueFinding/CritiqueSeverity/CritiqueRole type + CritiqueOutcomeCorrelatedEvent + core/critique calibration projection (state/reducer/projector) B §6 + C-A3
784accb repomap: turnId namespace requires trailing : (no /repo/repo2 collision; L3RepoKnowledgeRetriever filter + ProjectMemoryService write) + WorkspaceStateProbe newline fingerprint G
266bbf0 EventStoreLatencyProbe (wired) + LlamaServerHealthProbe (+ injectable LlamaLivenessClient) + HealthConfig.eventStoreWarnLatencyMs A §4
f715ffa .cs / Godot-Mono type symbols in RepoMapIndexer.SYMBOL_PATTERNS I
0e251d6 SceneValidator — structural .tscn/.tres (header well-formedness, ExtResource/SubResource id resolution, node parent integrity) I
1df7af5 Brief echo-back gate: BriefEchoMismatchEvent + BriefEchoComparator/BriefEchoExtractor + checkBriefEcho orchestrator gate C-A1
1a1b5cc Stage-level plan checkpointing: StageCheckpointPassed/FailedEvent + StageCheckpointReconciler + emitStageCheckpoint (gated on a locked plan) C-A2
eae0a0c Architect contradiction-check (display-only): PossibleContradictionFlaggedEvent + L3-backed ArchitectContradictionChecker B §4
b098d87 Dedicated SourceFetchedEvent / LowQualityExtractionEvent (promoted from ToolExecutionCompletedEvent metadata; additive), emitted from SandboxedToolExecutor D
027ff1f Dynamic per-session egress allowlist: EgressHostsGrantedEvent + EgressAllowlist union helper + EgressAllowlistProjection; NetworkHostRule delegates to the union D
447fc7a Reviewer static-first: StaticFindingsRecordedEvent + StaticAnalysisRunner (injectable CommandRunner; compiler/ktlint/detekt parsers) + excludeStaticFindingsFromReview filter, live-wired into reviewer context assembly B §5
eff8f8d Narration-lane lag: stale pause narrations dropped per-approval-request on resolve / per-session on resume (replay-safe) G
1e6699a tui-go go.mod go 1.261.24.2 (1.26 toolchain unreleased/unfetchable) — unblocks Go build/test on released toolchains E (enabler)
da72ee5 tui-go: markdown rendering for chat turns via glamour (dark, per-width memoized), plain-text fallback; other roles/UI untouched E
1f7a5d9 tui-go session list / resume view: R overlay over GET /sessions, resume via POST /sessions/{id}/resume onto the existing global stream E
2a99e15 tui-go per-event render-matrix golden tests (37 cases) + a coverage guard that parses protocol.go so any new event type without a golden fails E §2
d5afcd3 tui-go approval ergonomics: navigable pending-approval queue (no modal stacking) + y/n/e keys + tier-gated T3+ arm/confirm E §3
641051b Plan-derived diff manifest: PlanStage.writes + PlanDerivedManifest.deriveAllowedWrites/combine, unioned into StageConfig.writeManifest at compile, enforced by the existing containment matcher B §2
ab7e4be Egress allowlist activation: resolveSessionEgressHosts threads the session's EgressAllowlistProjection state into ToolCallAssessmentInput at runPlane2Assessment, so NetworkHostRule now consults the live per-session union (was fed emptySet()) D (activation)
4b0024f Batch source-list fetch-approval: POST /sessions/{id}/approve-sourcesSourceListHosts.extract (java.net.URI, lower-cased, ports stripped, dossier-line tolerant) → one EgressHostsGrantedEvent; live allowlist then auto-clears those web_fetches (no per-URL T2) D
f107ff5 Idea-board → project-profile promotion: IdeaPromotedEvent (board tombstone, like discard) + ProjectProfileWriter (escape-aware TOML serialize/write) + ProjectProfile.withConvention (deduped) + server PromoteIdea handler (loads profile, appends idea text, writes .correx/project.toml); also made SimpleToml's reader unescape \\/\" symmetrically with the writers (fixes pre-existing read/write asymmetry) E
4e08510 Architect contradiction-check activation: ServerModule.start() subscribes to the architect stage's design ArtifactCreatedEvent, resolves decision text (design-schema approach field, capped fallback), runs ArchitectContradictionChecker.check, appends the non-null PossibleContradictionFlaggedEvent. Live-only, never halts. Checker built in Main.kt (gated on project.enabled) and threaded into ServerModule. Replaces the Main.kt TODO(wiring) B §4 (activation)

Follow-ups created this pass (refiled into BACKLOG)

  • C-A1 activationplanner.md must emit a brief_echo block and role_pipeline.toml must set briefEcho="true" / briefEchoSource for the gate to fire live (model-dependent → live-QA).
  • C-A3 producer — nothing emits CritiqueOutcomeCorrelatedEvent yet; the calibration projection has no live feed until a reviewer-loop producer records finding outcomes.
  • B §4 wiring DONE (4e08510): ServerModule.start() now subscribes to the architect design artifact and emits the flag. (In-session L3 embedding is NOT needed — the checker filters to PRIOR sessions by design, so it works against prior runs' distilled decisions.)
  • A §4 llama wiringLlamaServerHealthProbe is unregistered: an HttpClient + tokens/sec telemetry aren't exposed to the health-monitor scope yet (// TODO(wiring) in Main.kt).
  • D egress wiring DONE (ab7e4be): session egress state is now threaded into ToolCallAssessmentInput at runPlane2Assessment, so NetworkHostRule consults the live union. Batch fetch-approval DONE (4b0024f): POST /sessions/{id}/approve-sources emits one EgressHostsGrantedEvent for the whole source list.
  • B §5 static_check stage — runner/event/filter complete and the filter is live, but no workflow stage emits StaticFindingsRecordedEvent yet (// TODO(wiring) in StaticAnalysisRunner.kt); needs an event-emitting deterministic stage-type seam.
  • E toolchain — tui-go now builds via auto-downloaded go1.24.2 (GOTOOLCHAIN=auto). The committed directive fix assumes 1.26 was unintended; bump if a specific newer release is actually wanted.

Environment note

  • A ~/.gradle/gradle.properties machine-local override was added on this box (-Xmx768m, parallel=false, kotlin daemon -Xmx640m) because the repo's -Xmx4G OOM-killed the foreground process on a 1.9 GB machine. Not committed — repo defaults intact for higher-RAM machines.