docs: reconcile BACKLOG against shipped work + gitignore tui preview binary
Backlog hygiene per the file's own maintenance rule — resolved items get
moved out, not left ticked-in-place.
- Cut resolved body bullets from BACKLOG §A/B/C/D/E/G/I (health probes,
static-first infra, CritiqueFinding, architect contradiction-check, A1/A2
gates, batch fetch-approval, source/egress events, render matrix, markdown,
session list, idea promotion, turnId/probe/narration, .cs symbols, scene
validator). All already archived in RETRO's burndown table.
- Narrow partially-done items to their live follow-up rather than delete:
B5 -> static_check stage emitter only; B6/C-A3 -> CritiqueOutcomeCorrelated
producer only; C-A1 -> planner-prompt activation only.
- Drop the stale "§E UNBLOCKED" index line (plan-comparison is BLOCKED, no
PlanCandidate event; idea-promotion shipped f107ff5).
- Archive the operator-requested TUI wave (palette, @ picker, CLAUDE.md L0
injection, inline action rows, free-scroll/help/filter) in RETRO 2026-06-22
— never BACKLOG items, would otherwise be orphaned in neither file.
- gitignore apps/tui-go/preview (cmd/preview build artifact).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+41
-57
@@ -23,8 +23,10 @@ against current code before acting (memory is point-in-time).
|
|||||||
|
|
||||||
## ✅ RESOLVED 2026-06-20 → see `RETRO.md` (branch `feat/backlog-burndown`)
|
## ✅ RESOLVED 2026-06-20 → see `RETRO.md` (branch `feat/backlog-burndown`)
|
||||||
|
|
||||||
Built + unit-verified this pass (full detail + commit table in `RETRO.md`). The
|
Built + unit-verified this pass (full detail + commit table in `RETRO.md`). **The matching
|
||||||
matching bullets below are superseded; only the noted follow-ups remain live:
|
body bullets below have been cut** (hygiene reconcile 2026-06-22) — what remains in each
|
||||||
|
section is only the genuinely-live work and the narrowed follow-ups. This index stays as a
|
||||||
|
quick commit map:
|
||||||
|
|
||||||
- **G** turnId `/repo`↔`/repo2` collision + WorkspaceStateProbe newline fingerprint — `784accb`
|
- **G** turnId `/repo`↔`/repo2` collision + WorkspaceStateProbe newline fingerprint — `784accb`
|
||||||
- **I** `.cs`/Godot-Mono symbols — `f715ffa`; structural `.tscn`/`.tres` validator — `0e251d6`
|
- **I** `.cs`/Godot-Mono symbols — `f715ffa`; structural `.tscn`/`.tres` validator — `0e251d6`
|
||||||
@@ -41,7 +43,6 @@ matching bullets below are superseded; only the noted follow-ups remain live:
|
|||||||
- **B §2** plan-derived diff manifest — `641051b`
|
- **B §2** plan-derived diff manifest — `641051b`
|
||||||
|
|
||||||
**Remaining (deeper / lower-verifiability):** H freestyle follow-ups (graph re-route, child-session runner — deep session-lifecycle, want live testing); the dormant model-dependent activations (A1 planner prompt, A3 producer, B§5 static_check stage — live-QA-gated, deprioritized to last). §E plan-comparison view is BLOCKED (no plan-candidate event; see §E). All cleanly unit-verifiable deterministic tracks are now landed.
|
**Remaining (deeper / lower-verifiability):** H freestyle follow-ups (graph re-route, child-session runner — deep session-lifecycle, want live testing); the dormant model-dependent activations (A1 planner prompt, A3 producer, B§5 static_check stage — live-QA-gated, deprioritized to last). §E plan-comparison view is BLOCKED (no plan-candidate event; see §E). All cleanly unit-verifiable deterministic tracks are now landed.
|
||||||
**§E tui-go remaining (UNBLOCKED — Go via `GOTOOLCHAIN=auto` go1.24.2):** plan comparison view; idea-board→profile promotion.
|
|
||||||
**Still blocked in this sandbox:** F live-QA gates + D §6 web approval client (need local model / SearXNG / GPU).
|
**Still blocked in this sandbox:** F live-QA gates + D §6 web approval client (need local model / SearXNG / GPU).
|
||||||
|
|
||||||
**📋 Live-QA plans drafted** (`docs/qa/QA-*.md`, index `docs/qa/README.md`, env `docs/qa/ENV.md` + `scripts/qa/`):
|
**📋 Live-QA plans drafted** (`docs/qa/QA-*.md`, index `docs/qa/README.md`, env `docs/qa/ENV.md` + `scripts/qa/`):
|
||||||
@@ -55,14 +56,9 @@ see RETRO 2026-06-21). These features stay listed until their plan **passes live
|
|||||||
## A. Observability spec — `docs/plans/2026-06-13-observability-spec.md`
|
## A. Observability spec — `docs/plans/2026-06-13-observability-spec.md`
|
||||||
|
|
||||||
Metrics + CLI + TUI pane and the health backbone are shipped (fe94140, 4f6bfa8,
|
Metrics + CLI + TUI pane and the health backbone are shipped (fe94140, 4f6bfa8,
|
||||||
f8fd260) — those are RETRO candidates once live-QA'd. Remaining:
|
f8fd260) — those are RETRO candidates once live-QA'd. The §4 LLAMA_SERVER + EVENT_STORE
|
||||||
|
health probes shipped (`266bbf0`, `64a90e7`) → see RETRO. Remaining:
|
||||||
|
|
||||||
- [x] **§4 LLAMA_SERVER health probe** — `266bbf0` (probe) + `64a90e7` (registered in the health
|
|
||||||
monitor, gated on a `llamacpp` provider URL, via `HttpLlamaLivenessClient`). Liveness is live;
|
|
||||||
tokens/sec degradation needs a throughput feed (the `/health` endpoint is reachability-only) —
|
|
||||||
that remainder noted in RETRO. → RETRO.
|
|
||||||
- [x] **§4 EVENT_STORE health probe** — append + fsync latency heartbeat. `266bbf0`
|
|
||||||
(`EventStoreLatencyProbe.forStore`, wired into the health monitor). → RETRO.
|
|
||||||
- [ ] **§4/§3 live health TUI pane** — deferred to follow the metrics cadence
|
- [ ] **§4/§3 live health TUI pane** — deferred to follow the metrics cadence
|
||||||
(projection + CLI first, then pane). `correx health` CLI already exists.
|
(projection + CLI first, then pane). `correx health` CLI already exists.
|
||||||
- [ ] **§3 tier-2 stats** — full session-completion summary pane polish (basic pane shipped).
|
- [ ] **§3 tier-2 stats** — full session-completion summary pane polish (basic pane shipped).
|
||||||
@@ -71,18 +67,17 @@ f8fd260) — those are RETRO candidates once live-QA'd. Remaining:
|
|||||||
## B. Role reliability spec — `docs/plans/2026-06-13-role-reliability-spec.md`
|
## B. Role reliability spec — `docs/plans/2026-06-13-role-reliability-spec.md`
|
||||||
|
|
||||||
§3 analyst keystone (894969d), entity grounding (b050dc4), §2 write-manifest (4e5e4e5),
|
§3 analyst keystone (894969d), entity grounding (b050dc4), §2 write-manifest (4e5e4e5),
|
||||||
and §5 reviewer prompt/needs wiring (3467826) are shipped — RETRO candidates. Remaining:
|
§5 reviewer prompt/needs wiring (3467826), §5 static-first infra (`447fc7a`), §6
|
||||||
|
`CritiqueFinding` type + calibration projection (`f783eed`), and §4 architect
|
||||||
|
contradiction-check (`eae0a0c`/`4e08510`) are shipped — see RETRO. Remaining:
|
||||||
|
|
||||||
- [ ] **§5 reviewer static-first INFRA** — run compiler/detekt/formatters as a pipeline
|
- [ ] **§5 static_check stage (emitter)** — the runner/event/filter are built and live-wired
|
||||||
step and *mechanically exclude their findings* from reviewer context. Needs a
|
(`447fc7a`); what's missing is a deterministic workflow stage that actually runs
|
||||||
static-findings event representation. (Prompt half is done; infra half is unbuilt.)
|
compiler/ktlint/detekt and emits `StaticFindingsRecordedEvent` (`// TODO(wiring)` in
|
||||||
- [ ] **§6 `CritiqueFinding` schema in code** — only test expectations exist today; no
|
`StaticAnalysisRunner.kt`). Needs an event-emitting stage-type seam.
|
||||||
structured type. Shared by plan critic + code reviewer.
|
- [ ] **§6 `CritiqueOutcomeCorrelatedEvent` producer** (= pipeline-addenda A3) — the
|
||||||
- [ ] **§6 `CriticCalibrationProjection`** (keyed by modelHash, role) — needs runtime
|
`CritiqueFinding` type + `CriticCalibrationProjection` exist (`f783eed`) but nothing feeds
|
||||||
history to exist first (spec ordering #5). Same projection as pipeline-addenda A3.
|
them; needs a reviewer-loop producer that records finding outcomes. Build once, two consumers.
|
||||||
- [x] **§4 architect contradiction-check** — `eae0a0c` (checker) + `4e08510` (live server hook:
|
|
||||||
subscribe to architect `design` artifact → `check` → emit `PossibleContradictionFlaggedEvent`,
|
|
||||||
display-only). → RETRO.
|
|
||||||
- [ ] **§3 symbol grounding** — deferred; needs a real symbol index (file-path grounding done).
|
- [ ] **§3 symbol grounding** — deferred; needs a real symbol index (file-path grounding done).
|
||||||
- [ ] **§2 dynamic plan-derived diff manifest** — allowed files from the `impl_plan`
|
- [ ] **§2 dynamic plan-derived diff manifest** — allowed files from the `impl_plan`
|
||||||
artifact. Future refinement; static per-stage `writes = [globs]` form is shipped.
|
artifact. Future refinement; static per-stage `writes = [globs]` form is shipped.
|
||||||
@@ -93,16 +88,15 @@ and §5 reviewer prompt/needs wiring (3467826) are shipped — RETRO candidates.
|
|||||||
|
|
||||||
## C. Plan pipeline addenda — `docs/plans/2026-06-13-plan-pipeline-addenda.md`
|
## C. Plan pipeline addenda — `docs/plans/2026-06-13-plan-pipeline-addenda.md`
|
||||||
|
|
||||||
Entire spec is **unbuilt**.
|
Gate code is shipped: **A1** brief echo-back gate (`1df7af5`) and **A2** stage-level plan
|
||||||
|
checkpointing (`1a1b5cc`) → see RETRO. Remaining:
|
||||||
|
|
||||||
- [ ] **A1 brief echo-back gate** — planner restates brief as `BriefEcho`; harness diffs
|
- [ ] **A1 activation** (model-dependent → live-QA) — `planner.md` must emit a `brief_echo`
|
||||||
referencedFiles/symbols/acceptanceCriteria vs original; divergence → `BriefEchoMismatchEvent`,
|
block and `role_pipeline.toml` must set `briefEcho="true"` / `briefEchoSource` for the gate
|
||||||
halt before any plan generation. (Cheapest failure point.)
|
to fire live. The gate (`BriefEchoMismatchEvent` + comparator/extractor) is already built.
|
||||||
- [ ] **A2 stage-level plan checkpointing** — reconciliation compares produced artifacts vs
|
- [ ] **A3 critique calibration tracking** — the `CriticCalibrationProjection` exists
|
||||||
the confirmed plan's produces-slots per stage; `StageCheckpointPassedEvent` /
|
(`f783eed`); only the `CritiqueOutcomeCorrelatedEvent` producer is missing. Tracked as the
|
||||||
`StageCheckpointFailedEvent` (halt + surface).
|
§6 producer follow-up above (build once, two consumers).
|
||||||
- [ ] **A3 critique calibration tracking** — `CritiqueOutcomeCorrelatedEvent` +
|
|
||||||
`CriticCalibrationProjection` (= role-reliability §6; build once, two consumers).
|
|
||||||
|
|
||||||
## D. Research workflow spec — `docs/plans/2026-06-13-research-workflow-spec.md`
|
## D. Research workflow spec — `docs/plans/2026-06-13-research-workflow-spec.md`
|
||||||
|
|
||||||
@@ -115,10 +109,6 @@ web_search (T1) + web_fetch (T2) in `:infrastructure:tools`, `research.toml`
|
|||||||
- [ ] **§6 web approval client** — the one larger unbuilt piece. Third client on the existing
|
- [ ] **§6 web approval client** — the one larger unbuilt piece. Third client on the existing
|
||||||
Ktor REST+WS bus: approval cards + event strip + session list. Behind WireGuard/Tailscale
|
Ktor REST+WS bus: approval cards + event strip + session list. Behind WireGuard/Tailscale
|
||||||
only, never public. Independent track (spec ordering #5).
|
only, never public. Independent track (spec ordering #5).
|
||||||
- [x] **§3 batch fetch-approval at source-list level** — `4b0024f`. `POST /sessions/{id}/approve-sources`
|
|
||||||
→ one `EgressHostsGrantedEvent` for the whole list. → RETRO.
|
|
||||||
- [x] **Dedicated `SourceFetched` / `LowQualityExtraction` events** — `b098d87`. → RETRO.
|
|
||||||
- [x] **Dynamic per-session egress allowlist** — `027ff1f`, activated `ab7e4be`. → RETRO.
|
|
||||||
- [ ] **Fresh-machine runtime install** — copy `research.toml` + `prompts/` + `schemas/` and
|
- [ ] **Fresh-machine runtime install** — copy `research.toml` + `prompts/` + `schemas/` and
|
||||||
the `[[artifacts]]` / `[tools.research]` config entries into `~/.config/correx`
|
the `[[artifacts]]` / `[tools.research]` config entries into `~/.config/correx`
|
||||||
(already done on this box; repo source is `examples/workflows/` + `docs/schemas/`).
|
(already done on this box; repo source is `examples/workflows/` + `docs/schemas/`).
|
||||||
@@ -126,25 +116,24 @@ web_search (T1) + web_fetch (T2) in `:infrastructure:tools`, `research.toml`
|
|||||||
|
|
||||||
## E. TUI requirements spec — `docs/plans/2026-06-13-tui-requirements-spec.md`
|
## E. TUI requirements spec — `docs/plans/2026-06-13-tui-requirements-spec.md`
|
||||||
|
|
||||||
§2 last-event clock + unknown-event fallback (8b896b5) and §5.1 deterministic command-parse
|
§2 last-event clock + unknown-event fallback (8b896b5), §5.1 deterministic command-parse
|
||||||
card (65df3f4) are shipped — RETRO candidates. Remaining:
|
card (65df3f4), §2 per-event render matrix + coverage guard (`2a99e15`), markdown chat
|
||||||
|
turns (`da72ee5`), session list / resume view (`1f7a5d9`), approval ergonomics
|
||||||
|
(`d5afcd3`), and idea-board → profile promotion (`f107ff5`) are shipped — see RETRO.
|
||||||
|
A second wave of operator-requested TUI work (command palette, @ file picker, CLAUDE.md
|
||||||
|
L0 injection, inline action rows, free-scroll/help/filter) is archived under RETRO
|
||||||
|
2026-06-22. Remaining:
|
||||||
|
|
||||||
- [ ] **§2 full Go↔Kotlin per-event-type render matrix** — golden-fixture tests asserting a
|
|
||||||
defined render for every event type (last §2 bullet; partially covered today).
|
|
||||||
- 🚫 **§3/§4 plan comparison view** — **BLOCKED (no data source).** Top-2 candidates side-by-side,
|
- 🚫 **§3/§4 plan comparison view** — **BLOCKED (no data source).** Top-2 candidates side-by-side,
|
||||||
compact stage graphs, diff-highlighted, lint/critique findings inline. The server emits no
|
compact stage graphs, diff-highlighted, lint/critique findings inline. The server emits no
|
||||||
plan-candidate event — only `workflow.proposed` (candidate *workflows*, not *plans*). Per the
|
plan-candidate event — only `workflow.proposed` (candidate *workflows*, not *plans*). Per the
|
||||||
spec this "lands with the planning pipeline" (a multi-candidate planner), which is unbuilt, so
|
spec this "lands with the planning pipeline" (a multi-candidate planner), which is unbuilt, so
|
||||||
there is no wire shape to render against and nothing to unit-verify. Do NOT build a blind TUI
|
there is no wire shape to render against and nothing to unit-verify. Do NOT build a blind TUI
|
||||||
view; revisit only once a `PlanCandidate`-bearing event exists. (Checked 2026-06-21.)
|
view; revisit only once a `PlanCandidate`-bearing event exists. (Checked 2026-06-21.)
|
||||||
- [ ] **§3 approval ergonomics audit** — single-key y/n/e for T0–T2, mandatory confirm T3+,
|
- [ ] **§3 approval ergonomics re-audit** — the spec'd band (single-key y/n/e for T0–T2,
|
||||||
queued-approval navigable list (never modal-stacked). Verify against current band impl.
|
mandatory T3+ confirm, navigable queue, never modal-stacked) shipped `d5afcd3`. Re-verify
|
||||||
- [ ] **Render markdown in chat turns** (QA feature note b) — TUI currently ignores md.
|
only because the band has since gained the grant scope-picker (`A`) and inline action rows —
|
||||||
- [ ] **Session list / resume view** (QA feature note c) — after server restart + TUI reopen
|
a cheap live look, not a build.
|
||||||
there's no way to see a prior session or its state; `GET /sessions` data exists server-side.
|
|
||||||
- [x] **Idea board → profile promotion** — `f107ff5`. `PromoteIdea` WS message → append idea as a
|
|
||||||
`conventions` entry in `.correx/project.toml` (`ProjectProfileWriter`), `IdeaPromotedEvent`
|
|
||||||
tombstones it off the board. → RETRO.
|
|
||||||
- ⏸ **§5.2 command-card LLM annotation layer** — deferred by spec ("ship layer 1, live with it,
|
- ⏸ **§5.2 command-card LLM annotation layer** — deferred by spec ("ship layer 1, live with it,
|
||||||
then decide whether layer 2 earns its place"). Build only after using layer 1.
|
then decide whether layer 2 earns its place"). Build only after using layer 1.
|
||||||
|
|
||||||
@@ -166,13 +155,9 @@ These are SHIPPED in code but prompt-/server-/network-dependent and not yet live
|
|||||||
|
|
||||||
## G. Low-severity hardening
|
## G. Low-severity hardening
|
||||||
|
|
||||||
- [ ] **turnId prefix collision** — `startsWith("repomap:$repoRoot")` can collide where one
|
The turnId `repomap:` prefix collision + WorkspaceStateProbe newline fingerprint (`784accb`)
|
||||||
root path prefixes another (`/repo` vs `/repo2`). Fix = trailing `:` delimiter in 3
|
and the narration-lane lag (`eff8f8d`) shipped — see RETRO. Remaining:
|
||||||
places (ProjectMemoryService write+check, L3RepoKnowledgeRetriever filter).
|
|
||||||
- [ ] **Narration lane lag** — stale pause-trigger narrations blend with current workflow
|
|
||||||
status; drop queued pause narrations once their approval resolves.
|
|
||||||
- [ ] **WorkspaceStateProbe fingerprint** — hashes `path|mtime|size` without newline separators
|
|
||||||
though the docstring says "lines". Internally consistent/deterministic; cosmetic.
|
|
||||||
- ⚠️ **`PreemptRedirectEvent` has no producer** (QA bug #6) — B3 hard re-route is unreachable
|
- ⚠️ **`PreemptRedirectEvent` has no producer** (QA bug #6) — B3 hard re-route is unreachable
|
||||||
from the TUI. Intended flow: steering → router proposes → operator confirms. Skipped by
|
from the TUI. Intended flow: steering → router proposes → operator confirms. Skipped by
|
||||||
design; build only if the hard-reroute path is actually wanted.
|
design; build only if the hard-reroute path is actually wanted.
|
||||||
@@ -188,10 +173,9 @@ These are SHIPPED in code but prompt-/server-/network-dependent and not yet live
|
|||||||
|
|
||||||
## I. Gamedev / Godot readiness (operator intent)
|
## I. Gamedev / Godot readiness (operator intent)
|
||||||
|
|
||||||
- [ ] **`.cs` in `RepoMapIndexer` SYMBOL_PATTERNS** — add if the gamedev repo is Godot Mono
|
`.cs` / Godot-Mono symbols in `RepoMapIndexer` (`f715ffa`) and the structural `.tscn`/`.tres`
|
||||||
(`.gd` and `.md` headings already shipped: 81a21bf, f521ac8).
|
`SceneValidator` (`0e251d6`) shipped — see RETRO. Remaining:
|
||||||
- [ ] **Structural `.tscn` / `.tres` validator** — parse scene format, node-tree-aware diff
|
|
||||||
preview. Prerequisite validation layer before any scene editing.
|
|
||||||
- [ ] **(far future) Scene editing behind approval+diff** + derive a fine-tuning dataset from
|
- [ ] **(far future) Scene editing behind approval+diff** + derive a fine-tuning dataset from
|
||||||
the event log. ⚠️ Fine-tuning is on CLAUDE.md's intentionally-NOT-implemented list — needs
|
the event log. ⚠️ Fine-tuning is on CLAUDE.md's intentionally-NOT-implemented list — needs
|
||||||
an explicit epic + operator de-listing, not an incidental add.
|
an explicit epic + operator de-listing, not an incidental add.
|
||||||
|
|||||||
@@ -7,6 +7,42 @@ could not be run here.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-06-22 — BACKLOG hygiene reconcile + operator-requested TUI wave (branch `feat/backlog-burndown`)
|
||||||
|
|
||||||
|
**Hygiene reconcile.** Per `BACKLOG.md`'s own maintenance rule, cut the resolved body bullets
|
||||||
|
that were left ticked-but-in-place after the 2026-06-20 burndown and 2026-06-21 grants work.
|
||||||
|
Sections affected: §A (health probes), §B (static-first infra, `CritiqueFinding`, architect
|
||||||
|
contradiction-check), §C (A1/A2 gate code), §D (batch fetch-approval, source events, dynamic
|
||||||
|
egress), §E (render matrix, markdown, session list, idea promotion), §G (turnId/probe/narration),
|
||||||
|
§I (`.cs` symbols, scene validator). Partially-done items were **narrowed to their live
|
||||||
|
follow-up** rather than deleted: §B5 → "static_check stage emitter only", §B6/§C-A3 → "the
|
||||||
|
`CritiqueOutcomeCorrelatedEvent` producer only", §C-A1 → "planner-prompt activation only". The
|
||||||
|
full commit map stays in the BACKLOG "✅ RESOLVED" index; detail is in the tables below.
|
||||||
|
|
||||||
|
**Operator-requested TUI wave (archived here — never BACKLOG items, like the grants work).**
|
||||||
|
A run of TUI/UX features added on the branch after the burndown, each compiled + `go vet`/`go
|
||||||
|
test` green and rendered via `cmd/preview` before commit:
|
||||||
|
|
||||||
|
| Commit | What |
|
||||||
|
|--------|------|
|
||||||
|
| `9143d55` | Global input history + stop idle redraws (copy-safe — no redraw churn while selecting text). |
|
||||||
|
| `85bfddf` | Slash-command menu in the chat input. |
|
||||||
|
| `2662156` | Transparent modal backdrops (overlays no longer paint an opaque box over the transcript). |
|
||||||
|
| `ba7ac06` | Transcript message-jump (`^↑`/`^↓` to your prev/next message) + OSC52 clipboard copy. |
|
||||||
|
| `65e5d88` | **Server:** `ListFiles`/`FileList` protocol backing the TUI `@` picker. |
|
||||||
|
| `04d7e26` | `@` file-reference picker in the input. |
|
||||||
|
| `c616982` | **Context:** inject `CLAUDE.md` / `AGENTS.md` as L0 standing context. |
|
||||||
|
| `54f94a5` | Command-palette keybinds + configurable (hideable) status bar. |
|
||||||
|
| `6a06f2e` | Inline action rows in the OUTPUT transcript (tool results / approvals / writes / grants as `RouterEntry` role `action`, interleaved by arrival). |
|
||||||
|
| `f14a83c` | Drop the inline tool-*start* rows (they doubled up with the result rows). |
|
||||||
|
| `531910d` | Transcript free-scroll (`PgUp/PgDn`, `^u/^d`, `esc` snaps to tail-follow; clamped via `outputViewport()`/`buildTranscriptRows`, 2 tests) + help overlay (`?`) + event-inspector `/` filter. |
|
||||||
|
|
||||||
|
These are mostly deterministic render/UX changes (verifiable by `go test` + `cmd/preview`); the
|
||||||
|
only remaining live look is the §E approval-ergonomics re-audit noted in BACKLOG (the band gained
|
||||||
|
the grant scope-picker + action rows since `d5afcd3`).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 2026-06-21 — wider grants + revoke (branch `feat/backlog-burndown`)
|
## 2026-06-21 — wider grants + revoke (branch `feat/backlog-burndown`)
|
||||||
|
|
||||||
Operator-requested (not a prior BACKLOG item): grants that outlive a single session, plus a
|
Operator-requested (not a prior BACKLOG item): grants that outlive a single session, plus a
|
||||||
|
|||||||
@@ -1 +1,2 @@
|
|||||||
/tui-go
|
/tui-go
|
||||||
|
/preview
|
||||||
|
|||||||
Reference in New Issue
Block a user