The injected context block and the thinking / agent-prompt blocks
rendered as frameless `bare` cards, reading as unfinished `> context …`
rows next to the framed tool cards. Switch them to the bordered variant —
same panel border + left chevron + label as the surrounding cards — while
keeping the D-78 de-emphasis (muted accent, collapsed by default,
first-line summary; thinking gains a summary for parity). Adds a
conversation_card_meta golden.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
T-235: app-scoped kActivityFoldLevelKey + a claude.activity.fold-level command
that cycles none→tools→thinking→everything; ClaudePane + team_panel_host read it
and re-fold live via the settings notifier. Unit tests for the helpers.
T-132 cleanup: the one blocked item (account/team token budget) is detached
(T-158), reframed as Q-34 'how + when to surface the budget given upstream
doesn't expose it', with T-158 as its backlog resolver. T-132 closed — all
doable work delivered.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
D-87 — T-54's "output and log panel" is a bottom output dock: read-only,
two tabs (Output = the Logger stream, filterable + auto-scroll; Problems =
diagnostics moved out of the sidebar). Toggled by a single status-bar widget
that replaces the app-status indicator (merged health+log: green check when
clean, warn/error counts otherwise) via click or Cmd/Ctrl+J. Needs a bounded
ring sink on the Logger (no history today). Amends D-47: the dock is the one
surface allowed to push Claude up, capped so Claude stays >=50%.
Resolves Q-28 by splitting on interaction: read-only output (logs/problems)
goes in the dock; the terminal does NOT — it stays a first-class editor-pane
surface, tracked by new T-258 (swap-vs-split, with Q-27). Refines T-54.
Wireframe under docs/design/wireframes/output-dock/.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
clean-house sweep over governance/ (validate green, 0 broken refs before
and after):
- RULE-ANCHOR-DRIFT (37): rewrote inline cross-reference links left over
from before the decisions/questions/rejected subdir split — flat naming
(questions-architecture.md, questions-process.md, rejected.md) and bare
same-dir paths that were actually cross-type — to canonical
subdir-relative form with current slugs. pql resolved these by ID so they
were never broken to the tooling, only to GitHub anchor navigation.
- RULE-RECORD-SORT (1): reordered decisions/architecture.md D-records to
strictly ascending (the D-1..D-6 block had been appended after D-41); pure
block move, line count unchanged, content identical.
- RULE-FILE-OVER-THRESHOLD: deferred (architecture.md 435 > 350; splitting
would re-churn the anchors just fixed).
- EOF/whitespace and Q↔D backlinks clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fixes 11 distinct inline anchor slugs that drifted from the generated
canonical form: em-dash titles render `--` (single-hyphen links were stale),
plus several truncated/old slugs (D-5, D-10, D-21, D-39, D-40, D-43, D-68,
Q-1, Q-32, Q-33). pql resolves cross-refs by ID so these were never "broken"
to the tooling, but they'd fail GitHub markdown anchor navigation. Verified:
every inline anchor now matches the README index; pql decisions sync reports
0 broken refs.
Does NOT touch the separate stale-path class (flat `questions-*.md` /
`rejected.md` naming from before the DQR subdir split) — surfaced for a
follow-up.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
D-85 — event bus delivery semantics, resolving Q-2 + Q-3: bounded
per-subscriber ring buffer with drop-oldest back-pressure (producer never
blocks, subscribers never killed) and a gap marker so a pull reader detects
loss; in-memory cursor retention serves `clide events --since`; if
persistence is ever needed it is bus-owned, not a subscriber-subsystem —
reversing ADR 0006's unreasoned open-questions footer.
D-86 — MCP tool surface, resolving Q-32: expose the full mcp__clide__*
namespace but generate tools/list from the co-registered command registry
(D-74) that already feeds CLI + palette, so breadth costs no second
maintained surface; per-command MCP opt-out for poor-fit verbs.
Q-33 drift-fixed: was already closed by D-73 (SSE only) but the index still
listed it open; re-confirmed SSE-only, stdio/WS not added.
Refines T-223 (cursor pull events) and T-225 (MCP reachable) — both now
unblocked and scoped. Index regenerated by pql decisions sync.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
test / unit + widget + golden + a11y (push) Failing after 35s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 1m4s
- Amend D-66: floor lives at coverage_floor: in pubspec.yaml (single
source of truth); coverage/floor.txt is no longer used; 95% target
reached and is the current floor.
- Reconcile licenses.yaml with pubspec.yaml: drop the phantom lints
5.0.0 entry (not a direct dep), bump test to 1.30.0 to match
pubspec, tighten the purpose line.
- Triage Q-1/Q-2/Q-3/Q-25 with dated revisit notes: all still open,
each pending a concrete trigger (T-99 for Q-1/Q-2, Tier-6 audit
for Q-3, design call for Q-25).
- Drop --no-fatal-infos from ci/test.sh now that the import queue is
clean.
- Add .claude/skills/README.md inventory.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
D-68 (dual integration surface — Bash CLI primary, MCP secondary)
landed in 8074bf4 inadvertently; this lands its index pointer in
README.md and the two open questions D-68 spawned.
- Q-32: tool surface — minimum /ide vs extended `mcp__clide__*`.
- Q-33: transport — SSE / WebSocket / stdio / all.
No behavior change. Governance bookkeeping only.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
test / unit + widget + golden + a11y (push) Failing after 35s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 1m3s
Two open questions have been answered by reality and should be
formally resolved:
- Q-21 (pql planning home): pql 1.4.30 ships the full surface and
clide consumes it via shell-out. Resolves to D-3 + D-39, which
already encoded the intent.
- Q-22 (ticket persistence): pql 1.4.x's append-only per-month SQL
changelog with inline LWW guards is option (3) of Q-22 evolved
into a form that merges by default. Clide migrated to it on
2026-05-09.
Adds D-67 to formalise clide's adoption: which directories carry
changelog data, what stays gitignored, which hooks run when. Q-22
points at D-67; Q-21 points at the pre-existing D-3 + D-39.
Pql state: 106 decisions → 107 (D-67 added); 134 refs → 139; 0
broken; validate ok.
Co-Authored-By: Claude <noreply@anthropic.com>
test / unit + widget + golden + a11y (push) Failing after 31s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 1m2s
pql 1.4.30 introduces a per-type subdirectory layout for decision
records: governance/{decisions,questions,rejected}/<domain>.md. The
parser infers record type from the parent subdir and domain from
the filename stem, replacing the flat decisions/<file>.md layout
with questions-X and rejected prefixes.
Moves:
- 6 D-files to governance/decisions/ (accessibility, architecture,
extensions, process, testing, tooling)
- 5 Q-files to governance/questions/ (stripped the questions- prefix)
- rejected.md split by domain to governance/rejected/{architecture
(5), process (4), accessibility (1), testing (1)}.md — split per
cross-reference target.
Drops:
- decisions/README.md (auto-regenerated as governance/README.md by
pql init below the records marker)
- decisions/questions.md (hand-curated index pointing at the per-
domain files; redundant once pql generates the index, and the
"load-bearing" curation was already present in each Q-record's
Context field).
Convention-driven; not a clide-specific change. Counts unchanged
across migration: 106 decisions, 95 tickets, 134 refs, 0 broken.
Co-Authored-By: Claude <noreply@anthropic.com>