decide diff view placement: editor-mode above Claude (D-84, closes T-42; impl tracked in T-243)
This commit is contained in:
@@ -401,4 +401,13 @@ Core, rendering, IPC, kernel, panel manager.
|
||||
- **Cross-reference:** answers Gap 5 of [`docs/self-analysis.md`](../../docs/self-analysis.md); gates [D-77](#d-77-drive-claude-via-the-stream-json-control-protocol-teams-become-a-clide-owned-coordination-layer)/[D-78](#d-78-claude-permissionprompt-transport-is-the-stdio-control-channel) (the hosted session this names primary), [D-68](#d-68-dual-integration-surface--bash-cli-primary-mcp-secondary) (the external CLI surface kept as secondary), [D-6](#d-6-cli-and-event-surface-contract) (parity scoped here), [D-70](#d-70-ipc-socket-path-is-per-workspace-deterministic) (the socket an external agent reaches). Frames Epic B ([T-214](#)) bootstrap target and Epic C ([T-218](#)) observability scope under initiative [T-208](#) "Give Claude hands". Implemented/decided by T-224.
|
||||
- **Raised by:** 2026-06-03 — T-224, processing the self-analysis.md dogfood probe from inside clide. The probe itself ran as an external harness (B) while the product is built around the hosted session (A); user chose "both, primary = hosted (A)" so Epic B optimizes the bootstrap clide can actually control while keeping the external driver a supported, best-effort integration.
|
||||
|
||||
### D-84: Diff view placement — editor-mode inline above Claude, spawned from the git sidebar
|
||||
- **Date:** 2026-06-05
|
||||
- **Status:** accepted
|
||||
- **Decision:** The diff view is **not** a workspace tab (its current placement violates [D-48](#d-48-chrome-budget-no-tabs-no-breadcrumbs-keyboard-first) "no buffer/workspace tabs"). It opens as an **editor-mode surface** — lifting *above* Claude in the middle column, the same mechanism as the inline editor ([D-49](#d-49-editor-mode-inline-above-claude-viewer-swap)) — and is **spawned from the git sidebar** (selecting a changed file opens its diff there). It is **not** a context-panel viewer.
|
||||
- **Rationale:** A diff is a review *and intervention* surface, not just passive inspection: to be fully functional it must host hunk-level stage/discard and (later) conflict-resolution widgets, which need horizontal room. The context panel (≈420px, [D-50](#d-50-context-auto-behavior-right-panel-reacts-to-claude) viewer semantics) is too narrow to comfortably hold those controls; the middle column above Claude gives the space while keeping Claude's prompt bar fixed ([D-47](#d-47-interaction-model-claude-is-home-layout)). Spawning from the git sidebar matches the user's mental model (left = change list, the diff opens in the work area). This also partially serves the side-by-side-compare desire behind [Q-27](../questions/architecture.md#q-27-two-editor-split) without a true editor split.
|
||||
- **Cost / risk:** The editor-mode surface currently hosts the single inline editor; it must generalize to host a diff too (editor and diff are mutually exclusive in that slot, like the viewer↔editor swap in D-49). Implementation is a follow-up story, not part of this decision ticket (T-42).
|
||||
- **Cross-reference:** [D-48](#d-48-chrome-budget-no-tabs-no-breadcrumbs-keyboard-first) (no workspace tabs — the rule the old placement broke), [D-49](#d-49-editor-mode-inline-above-claude-viewer-swap) (the editor-mode mechanism reused), [D-50](#d-50-context-auto-behavior-right-panel-reacts-to-claude) (the viewer model explicitly rejected here), [D-47](#d-47-interaction-model-claude-is-home-layout) (prompt bar fixed), [Q-27](../questions/architecture.md#q-27-two-editor-split) (partially served). Decides T-42.
|
||||
- **Raised by:** 2026-06-05 — T-42 (decide diff view placement). User chose editor-mode over the context-panel viewer: a diff needs space for resolution widgets and spawns from the git sidebar, so it's too cramped to compress into the right panel.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user