diff --git a/.pql/changelog/ticket_history/2026-06.sql b/.pql/changelog/ticket_history/2026-06.sql index 9a32caeb..172a6372 100644 --- a/.pql/changelog/ticket_history/2026-06.sql +++ b/.pql/changelog/ticket_history/2026-06.sql @@ -1319,3 +1319,155 @@ Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation.', NULL, '2026-06-09 15:29:08', '2026-06-09 15:29:08', '2026-06-09 15:29:08', NULL, '92fdba74a32b217f7345d5095bd4fa02', 1) ON CONFLICT(hash) DO NOTHING; INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-294', 'status', 'backlog', 'ready', NULL, '2026-06-09 15:29:11', '2026-06-09 15:29:11', '2026-06-09 15:29:11', NULL, '2e8f7c70314543a83510796173c2463b', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-294', 'description', 'Design and add collapse/expand controls for the left sidebar and the right context pane, along the lines of the reference screenshot (green arrows mark the two intended affordance locations — bottom-left of the sidebar and bottom-right of the context pane). + +Scope of this ticket: set up a Frame0 mock to talk through the design before implementing. + +Open questions to resolve in the mock: +- Affordance placement: footer/status-bar anchored (as the screenshot arrows suggest) vs. pane-edge chevron. +- Collapsed state: fully hidden vs. thin rail with a re-expand handle. +- Iconography (chevron direction) and hover/active states. +- Whether sidebar and context pane share one control pattern (parity) or differ. +- Keyboard/CLI parity (D-6): each collapse action needs a clide verb. + +Deliverable: Frame0 wireframe(s) of collapsed + expanded states for both panes, reviewed before any code. + +DESIGN DIRECTION (settled): anchor both toggles on the OUTER EDGES of the center (Claude conversation) pane — one on the left edge controlling the sidebar, one on the right edge controlling the context pane. The control stays fixed on the center-pane edge whether the adjacent pane is open or collapsed, so a single button both collapses an open pane and re-opens a collapsed one (chevron flips direction). This avoids needing a separate "re-expand" handle on the collapsed pane. + +Implications for the mock: +- Collapsed pane can be fully hidden (no thin rail needed) since the re-open control lives on the center edge. +- Sidebar and context pane share one mirrored control pattern (parity). +- Chevron direction reflects state: points outward to expand, inward to collapse. + +IMPLEMENTATION NOTE: the collapse logic already exists — no new toggle behaviour needed. Commands `sidebar.collapse` (ctrl+shift+1) and `context.collapse` (ctrl+shift+3) are registered in lib/builtin/default_layout/src/extension.dart, exposed in the command palette + menubar, and call arrangement.toggleCollapsed(Slots.sidebar|contextPanel), returning isCollapsed (D-051, D-054). + +So this ticket is scoped to the VISUAL AFFORDANCE only: +- Add the two edge-anchored toggle buttons on the center (Claude) pane''s outer edges. +- On click, invoke the existing `sidebar.collapse` / `context.collapse` commands (do NOT reimplement collapse). +- Read arrangement.isCollapsed(...) to flip the chevron direction per state. +- D-6 CLI/keyboard parity is already satisfied by the existing commands; this adds the mouse affordance. + +Mock: docs/design/wireframes/hud/pane-collapse-toggles.{json,png} — State A (open) + State B (collapsed). + +PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. They live in the BOTTOM STATUS BAR. Each toggle is horizontally pinned to the center pane''s left/right edge, so when a pane collapses the toggle slides along the status bar to that end (open: at the inner pane boundary; collapsed: at the far status-bar end — matching where the reference-screenshot arrows pointed). Still mirrored left/right for parity; chevron flips per isCollapsed. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation.', 'Design and add collapse/expand controls for the left sidebar and the right context pane, along the lines of the reference screenshot (green arrows mark the two intended affordance locations — bottom-left of the sidebar and bottom-right of the context pane). + +Scope of this ticket: set up a Frame0 mock to talk through the design before implementing. + +Open questions to resolve in the mock: +- Affordance placement: footer/status-bar anchored (as the screenshot arrows suggest) vs. pane-edge chevron. +- Collapsed state: fully hidden vs. thin rail with a re-expand handle. +- Iconography (chevron direction) and hover/active states. +- Whether sidebar and context pane share one control pattern (parity) or differ. +- Keyboard/CLI parity (D-6): each collapse action needs a clide verb. + +Deliverable: Frame0 wireframe(s) of collapsed + expanded states for both panes, reviewed before any code. + +DESIGN DIRECTION (settled): anchor both toggles on the OUTER EDGES of the center (Claude conversation) pane — one on the left edge controlling the sidebar, one on the right edge controlling the context pane. The control stays fixed on the center-pane edge whether the adjacent pane is open or collapsed, so a single button both collapses an open pane and re-opens a collapsed one (chevron flips direction). This avoids needing a separate "re-expand" handle on the collapsed pane. + +Implications for the mock: +- Collapsed pane can be fully hidden (no thin rail needed) since the re-open control lives on the center edge. +- Sidebar and context pane share one mirrored control pattern (parity). +- Chevron direction reflects state: points outward to expand, inward to collapse. + +IMPLEMENTATION NOTE: the collapse logic already exists — no new toggle behaviour needed. Commands `sidebar.collapse` (ctrl+shift+1) and `context.collapse` (ctrl+shift+3) are registered in lib/builtin/default_layout/src/extension.dart, exposed in the command palette + menubar, and call arrangement.toggleCollapsed(Slots.sidebar|contextPanel), returning isCollapsed (D-051, D-054). + +So this ticket is scoped to the VISUAL AFFORDANCE only: +- Add the two edge-anchored toggle buttons on the center (Claude) pane''s outer edges. +- On click, invoke the existing `sidebar.collapse` / `context.collapse` commands (do NOT reimplement collapse). +- Read arrangement.isCollapsed(...) to flip the chevron direction per state. +- D-6 CLI/keyboard parity is already satisfied by the existing commands; this adds the mouse affordance. + +Mock: docs/design/wireframes/hud/pane-collapse-toggles.{json,png} — State A (open) + State B (collapsed). + +PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. They live in the BOTTOM STATUS BAR. Each toggle is horizontally pinned to the center pane''s left/right edge, so when a pane collapses the toggle slides along the status bar to that end (open: at the inner pane boundary; collapsed: at the far status-bar end — matching where the reference-screenshot arrows pointed). Still mirrored left/right for parity; chevron flips per isCollapsed. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation. + +PLACEMENT FINAL (supersedes "pinned-to-edge"): toggles are FIXED at the far-left and far-right ends of the bottom status bar in every state. They do not slide with the pane edge. Position is constant (muscle memory; always where the reference-screenshot arrows pointed); only the chevron flips per isCollapsed. Left end = sidebar toggle, right end = context toggle. Mirrored for parity. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}.', NULL, '2026-06-09 15:30:16', '2026-06-09 15:30:16', '2026-06-09 15:30:16', NULL, 'ff37bad7bec3122bb8d10c1eb1c961f4', 1) ON CONFLICT(hash) DO NOTHING; +INSERT INTO ticket_history (ticket_id, field, old_value, new_value, changed_by, changed_at, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-294', 'description', 'Design and add collapse/expand controls for the left sidebar and the right context pane, along the lines of the reference screenshot (green arrows mark the two intended affordance locations — bottom-left of the sidebar and bottom-right of the context pane). + +Scope of this ticket: set up a Frame0 mock to talk through the design before implementing. + +Open questions to resolve in the mock: +- Affordance placement: footer/status-bar anchored (as the screenshot arrows suggest) vs. pane-edge chevron. +- Collapsed state: fully hidden vs. thin rail with a re-expand handle. +- Iconography (chevron direction) and hover/active states. +- Whether sidebar and context pane share one control pattern (parity) or differ. +- Keyboard/CLI parity (D-6): each collapse action needs a clide verb. + +Deliverable: Frame0 wireframe(s) of collapsed + expanded states for both panes, reviewed before any code. + +DESIGN DIRECTION (settled): anchor both toggles on the OUTER EDGES of the center (Claude conversation) pane — one on the left edge controlling the sidebar, one on the right edge controlling the context pane. The control stays fixed on the center-pane edge whether the adjacent pane is open or collapsed, so a single button both collapses an open pane and re-opens a collapsed one (chevron flips direction). This avoids needing a separate "re-expand" handle on the collapsed pane. + +Implications for the mock: +- Collapsed pane can be fully hidden (no thin rail needed) since the re-open control lives on the center edge. +- Sidebar and context pane share one mirrored control pattern (parity). +- Chevron direction reflects state: points outward to expand, inward to collapse. + +IMPLEMENTATION NOTE: the collapse logic already exists — no new toggle behaviour needed. Commands `sidebar.collapse` (ctrl+shift+1) and `context.collapse` (ctrl+shift+3) are registered in lib/builtin/default_layout/src/extension.dart, exposed in the command palette + menubar, and call arrangement.toggleCollapsed(Slots.sidebar|contextPanel), returning isCollapsed (D-051, D-054). + +So this ticket is scoped to the VISUAL AFFORDANCE only: +- Add the two edge-anchored toggle buttons on the center (Claude) pane''s outer edges. +- On click, invoke the existing `sidebar.collapse` / `context.collapse` commands (do NOT reimplement collapse). +- Read arrangement.isCollapsed(...) to flip the chevron direction per state. +- D-6 CLI/keyboard parity is already satisfied by the existing commands; this adds the mouse affordance. + +Mock: docs/design/wireframes/hud/pane-collapse-toggles.{json,png} — State A (open) + State B (collapsed). + +PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. They live in the BOTTOM STATUS BAR. Each toggle is horizontally pinned to the center pane''s left/right edge, so when a pane collapses the toggle slides along the status bar to that end (open: at the inner pane boundary; collapsed: at the far status-bar end — matching where the reference-screenshot arrows pointed). Still mirrored left/right for parity; chevron flips per isCollapsed. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation. + +PLACEMENT FINAL (supersedes "pinned-to-edge"): toggles are FIXED at the far-left and far-right ends of the bottom status bar in every state. They do not slide with the pane edge. Position is constant (muscle memory; always where the reference-screenshot arrows pointed); only the chevron flips per isCollapsed. Left end = sidebar toggle, right end = context toggle. Mirrored for parity. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}.', 'Design and add collapse/expand controls for the left sidebar and the right context pane, along the lines of the reference screenshot (green arrows mark the two intended affordance locations — bottom-left of the sidebar and bottom-right of the context pane). + +Scope of this ticket: set up a Frame0 mock to talk through the design before implementing. + +Open questions to resolve in the mock: +- Affordance placement: footer/status-bar anchored (as the screenshot arrows suggest) vs. pane-edge chevron. +- Collapsed state: fully hidden vs. thin rail with a re-expand handle. +- Iconography (chevron direction) and hover/active states. +- Whether sidebar and context pane share one control pattern (parity) or differ. +- Keyboard/CLI parity (D-6): each collapse action needs a clide verb. + +Deliverable: Frame0 wireframe(s) of collapsed + expanded states for both panes, reviewed before any code. + +DESIGN DIRECTION (settled): anchor both toggles on the OUTER EDGES of the center (Claude conversation) pane — one on the left edge controlling the sidebar, one on the right edge controlling the context pane. The control stays fixed on the center-pane edge whether the adjacent pane is open or collapsed, so a single button both collapses an open pane and re-opens a collapsed one (chevron flips direction). This avoids needing a separate "re-expand" handle on the collapsed pane. + +Implications for the mock: +- Collapsed pane can be fully hidden (no thin rail needed) since the re-open control lives on the center edge. +- Sidebar and context pane share one mirrored control pattern (parity). +- Chevron direction reflects state: points outward to expand, inward to collapse. + +IMPLEMENTATION NOTE: the collapse logic already exists — no new toggle behaviour needed. Commands `sidebar.collapse` (ctrl+shift+1) and `context.collapse` (ctrl+shift+3) are registered in lib/builtin/default_layout/src/extension.dart, exposed in the command palette + menubar, and call arrangement.toggleCollapsed(Slots.sidebar|contextPanel), returning isCollapsed (D-051, D-054). + +So this ticket is scoped to the VISUAL AFFORDANCE only: +- Add the two edge-anchored toggle buttons on the center (Claude) pane''s outer edges. +- On click, invoke the existing `sidebar.collapse` / `context.collapse` commands (do NOT reimplement collapse). +- Read arrangement.isCollapsed(...) to flip the chevron direction per state. +- D-6 CLI/keyboard parity is already satisfied by the existing commands; this adds the mouse affordance. + +Mock: docs/design/wireframes/hud/pane-collapse-toggles.{json,png} — State A (open) + State B (collapsed). + +PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. They live in the BOTTOM STATUS BAR. Each toggle is horizontally pinned to the center pane''s left/right edge, so when a pane collapses the toggle slides along the status bar to that end (open: at the inner pane boundary; collapsed: at the far status-bar end — matching where the reference-screenshot arrows pointed). Still mirrored left/right for parity; chevron flips per isCollapsed. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation. + +PLACEMENT FINAL (supersedes "pinned-to-edge"): toggles are FIXED at the far-left and far-right ends of the bottom status bar in every state. They do not slide with the pane edge. Position is constant (muscle memory; always where the reference-screenshot arrows pointed); only the chevron flips per isCollapsed. Left end = sidebar toggle, right end = context toggle. Mirrored for parity. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +SPACE NOTE: the status bar already hosts content at both ends (left: branch / skills count; right: Output / terminal). Fixed-end toggles therefore share that space. Resolution: reserve the OUTERMOST ~24px cell at each end for the toggle and shift the existing status items inward by that width — a constant reservation, not a dynamic fight (the toggle never moves or grows). The mock reflects this: status text begins after the left toggle and ends before the right toggle.', NULL, '2026-06-09 15:30:41', '2026-06-09 15:30:41', '2026-06-09 15:30:41', NULL, '718d30dbfcb581743c06e94a4a3c91f5', 1) ON CONFLICT(hash) DO NOTHING; diff --git a/.pql/changelog/tickets/2026-06.sql b/.pql/changelog/tickets/2026-06.sql index 9da53913..d0eb7b40 100644 --- a/.pql/changelog/tickets/2026-06.sql +++ b/.pql/changelog/tickets/2026-06.sql @@ -2788,3 +2788,83 @@ PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. T Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation.', 'ready', 'medium', NULL, NULL, NULL, '2026-06-09 15:18:22', '2026-06-09 15:29:11', NULL, '5936843822aa228b7fd70680774ce786', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash); +INSERT INTO tickets (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-294', 'task', 'T-276', 'Collapse buttons for sidebar and context pane', 'Design and add collapse/expand controls for the left sidebar and the right context pane, along the lines of the reference screenshot (green arrows mark the two intended affordance locations — bottom-left of the sidebar and bottom-right of the context pane). + +Scope of this ticket: set up a Frame0 mock to talk through the design before implementing. + +Open questions to resolve in the mock: +- Affordance placement: footer/status-bar anchored (as the screenshot arrows suggest) vs. pane-edge chevron. +- Collapsed state: fully hidden vs. thin rail with a re-expand handle. +- Iconography (chevron direction) and hover/active states. +- Whether sidebar and context pane share one control pattern (parity) or differ. +- Keyboard/CLI parity (D-6): each collapse action needs a clide verb. + +Deliverable: Frame0 wireframe(s) of collapsed + expanded states for both panes, reviewed before any code. + +DESIGN DIRECTION (settled): anchor both toggles on the OUTER EDGES of the center (Claude conversation) pane — one on the left edge controlling the sidebar, one on the right edge controlling the context pane. The control stays fixed on the center-pane edge whether the adjacent pane is open or collapsed, so a single button both collapses an open pane and re-opens a collapsed one (chevron flips direction). This avoids needing a separate "re-expand" handle on the collapsed pane. + +Implications for the mock: +- Collapsed pane can be fully hidden (no thin rail needed) since the re-open control lives on the center edge. +- Sidebar and context pane share one mirrored control pattern (parity). +- Chevron direction reflects state: points outward to expand, inward to collapse. + +IMPLEMENTATION NOTE: the collapse logic already exists — no new toggle behaviour needed. Commands `sidebar.collapse` (ctrl+shift+1) and `context.collapse` (ctrl+shift+3) are registered in lib/builtin/default_layout/src/extension.dart, exposed in the command palette + menubar, and call arrangement.toggleCollapsed(Slots.sidebar|contextPanel), returning isCollapsed (D-051, D-054). + +So this ticket is scoped to the VISUAL AFFORDANCE only: +- Add the two edge-anchored toggle buttons on the center (Claude) pane''s outer edges. +- On click, invoke the existing `sidebar.collapse` / `context.collapse` commands (do NOT reimplement collapse). +- Read arrangement.isCollapsed(...) to flip the chevron direction per state. +- D-6 CLI/keyboard parity is already satisfied by the existing commands; this adds the mouse affordance. + +Mock: docs/design/wireframes/hud/pane-collapse-toggles.{json,png} — State A (open) + State B (collapsed). + +PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. They live in the BOTTOM STATUS BAR. Each toggle is horizontally pinned to the center pane''s left/right edge, so when a pane collapses the toggle slides along the status bar to that end (open: at the inner pane boundary; collapsed: at the far status-bar end — matching where the reference-screenshot arrows pointed). Still mirrored left/right for parity; chevron flips per isCollapsed. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation. + +PLACEMENT FINAL (supersedes "pinned-to-edge"): toggles are FIXED at the far-left and far-right ends of the bottom status bar in every state. They do not slide with the pane edge. Position is constant (muscle memory; always where the reference-screenshot arrows pointed); only the chevron flips per isCollapsed. Left end = sidebar toggle, right end = context toggle. Mirrored for parity. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}.', 'ready', 'medium', NULL, NULL, NULL, '2026-06-09 15:18:22', '2026-06-09 15:30:16', NULL, 'c1f7eb1b567c788bf7facf1852668753', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash); +INSERT INTO tickets (id, type, parent_id, title, description, status, priority, assigned_to, team, decision_ref, created_at, updated_at, deleted_at, hash, canonical_version) VALUES ('T-294', 'task', 'T-276', 'Collapse buttons for sidebar and context pane', 'Design and add collapse/expand controls for the left sidebar and the right context pane, along the lines of the reference screenshot (green arrows mark the two intended affordance locations — bottom-left of the sidebar and bottom-right of the context pane). + +Scope of this ticket: set up a Frame0 mock to talk through the design before implementing. + +Open questions to resolve in the mock: +- Affordance placement: footer/status-bar anchored (as the screenshot arrows suggest) vs. pane-edge chevron. +- Collapsed state: fully hidden vs. thin rail with a re-expand handle. +- Iconography (chevron direction) and hover/active states. +- Whether sidebar and context pane share one control pattern (parity) or differ. +- Keyboard/CLI parity (D-6): each collapse action needs a clide verb. + +Deliverable: Frame0 wireframe(s) of collapsed + expanded states for both panes, reviewed before any code. + +DESIGN DIRECTION (settled): anchor both toggles on the OUTER EDGES of the center (Claude conversation) pane — one on the left edge controlling the sidebar, one on the right edge controlling the context pane. The control stays fixed on the center-pane edge whether the adjacent pane is open or collapsed, so a single button both collapses an open pane and re-opens a collapsed one (chevron flips direction). This avoids needing a separate "re-expand" handle on the collapsed pane. + +Implications for the mock: +- Collapsed pane can be fully hidden (no thin rail needed) since the re-open control lives on the center edge. +- Sidebar and context pane share one mirrored control pattern (parity). +- Chevron direction reflects state: points outward to expand, inward to collapse. + +IMPLEMENTATION NOTE: the collapse logic already exists — no new toggle behaviour needed. Commands `sidebar.collapse` (ctrl+shift+1) and `context.collapse` (ctrl+shift+3) are registered in lib/builtin/default_layout/src/extension.dart, exposed in the command palette + menubar, and call arrangement.toggleCollapsed(Slots.sidebar|contextPanel), returning isCollapsed (D-051, D-054). + +So this ticket is scoped to the VISUAL AFFORDANCE only: +- Add the two edge-anchored toggle buttons on the center (Claude) pane''s outer edges. +- On click, invoke the existing `sidebar.collapse` / `context.collapse` commands (do NOT reimplement collapse). +- Read arrangement.isCollapsed(...) to flip the chevron direction per state. +- D-6 CLI/keyboard parity is already satisfied by the existing commands; this adds the mouse affordance. + +Mock: docs/design/wireframes/hud/pane-collapse-toggles.{json,png} — State A (open) + State B (collapsed). + +PLACEMENT REVISED: toggles do NOT float vertically-centered on the pane edges. They live in the BOTTOM STATUS BAR. Each toggle is horizontally pinned to the center pane''s left/right edge, so when a pane collapses the toggle slides along the status bar to that end (open: at the inner pane boundary; collapsed: at the far status-bar end — matching where the reference-screenshot arrows pointed). Still mirrored left/right for parity; chevron flips per isCollapsed. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +APPROVED (2026-06-09): pinned-to-edge status-bar placement confirmed by user. Design is settled; ready for implementation. + +PLACEMENT FINAL (supersedes "pinned-to-edge"): toggles are FIXED at the far-left and far-right ends of the bottom status bar in every state. They do not slide with the pane edge. Position is constant (muscle memory; always where the reference-screenshot arrows pointed); only the chevron flips per isCollapsed. Left end = sidebar toggle, right end = context toggle. Mirrored for parity. Buttons invoke the existing sidebar.collapse / context.collapse commands. + +Mock updated: docs/design/wireframes/hud/pane-collapse-toggles.{json,png}. + +SPACE NOTE: the status bar already hosts content at both ends (left: branch / skills count; right: Output / terminal). Fixed-end toggles therefore share that space. Resolution: reserve the OUTERMOST ~24px cell at each end for the toggle and shift the existing status items inward by that width — a constant reservation, not a dynamic fight (the toggle never moves or grows). The mock reflects this: status text begins after the left toggle and ends before the right toggle.', 'ready', 'medium', NULL, NULL, NULL, '2026-06-09 15:18:22', '2026-06-09 15:30:41', NULL, 'b949608090fccd719433ef2f734dcae1', 1) ON CONFLICT(id) DO UPDATE SET type=excluded.type, parent_id=excluded.parent_id, title=excluded.title, description=excluded.description, status=excluded.status, priority=excluded.priority, assigned_to=excluded.assigned_to, team=excluded.team, decision_ref=excluded.decision_ref, updated_at=excluded.updated_at, deleted_at=excluded.deleted_at, hash=excluded.hash, canonical_version=excluded.canonical_version WHERE excluded.updated_at > tickets.updated_at OR (excluded.updated_at = tickets.updated_at AND excluded.hash > tickets.hash); diff --git a/docs/design/wireframes/hud/pane-collapse-toggles.json b/docs/design/wireframes/hud/pane-collapse-toggles.json index 5e4d82e1..9c4663c6 100644 --- a/docs/design/wireframes/hud/pane-collapse-toggles.json +++ b/docs/design/wireframes/hud/pane-collapse-toggles.json @@ -4,7 +4,7 @@ "titleA": { "type": "Text", "left": 40, "top": 50, - "text": "STATE A — both panes open: toggles live in the status bar, pinned to the center-pane edges", + "text": "STATE A — both panes open: toggles fixed at the far ends of the bottom status bar", "fontColor": "#c8d8f0", "fontSize": 15 }, "a-sidebar": { @@ -44,47 +44,47 @@ }, "a-status-left": { "type": "Text", "parent": "a-statusbar", - "left": 56, "top": 299, "text": "main 13 skills", + "left": 84, "top": 299, "text": "main 13 skills", "fontColor": "#8a92a6", "fontSize": 11 }, "a-status-right": { "type": "Text", "parent": "a-statusbar", - "left": 820, "top": 299, "text": "Output terminal", + "left": 770, "top": 299, "text": "Output terminal", "fontColor": "#8a92a6", "fontSize": 11 }, "a-toggle-left": { "type": "Rectangle", - "left": 238, "top": 294, "width": 24, "height": 24, + "left": 44, "top": 294, "width": 24, "height": 24, "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4] }, "a-toggle-left-icon": { "type": "Text", "parent": "a-toggle-left", - "left": 246, "top": 299, "text": "<", "fontColor": "#c8d8f0", "fontSize": 14 + "left": 52, "top": 299, "text": "<", "fontColor": "#c8d8f0", "fontSize": 14 }, "a-toggle-right": { "type": "Rectangle", - "left": 718, "top": 294, "width": 24, "height": 24, + "left": 912, "top": 294, "width": 24, "height": 24, "fillColor": "#2a3040", "strokeColor": "#c8d8f0", "corners": [4, 4, 4, 4] }, "a-toggle-right-icon": { "type": "Text", "parent": "a-toggle-right", - "left": 726, "top": 299, "text": ">", "fontColor": "#c8d8f0", "fontSize": 14 + "left": 920, "top": 299, "text": ">", "fontColor": "#c8d8f0", "fontSize": 14 }, "a-note-left": { "type": "Text", - "left": 150, "top": 328, "text": "sits under center's left edge -> collapse sidebar", + "left": 44, "top": 328, "text": "far-left -> collapse sidebar", "fontColor": "#8a92a6", "fontSize": 11 }, "a-note-right": { "type": "Text", - "left": 600, "top": 328, "text": "sits under center's right edge -> collapse context", + "left": 740, "top": 328, "text": "far-right -> collapse context", "fontColor": "#8a92a6", "fontSize": 11 }, "titleB": { "type": "Text", "left": 40, "top": 388, - "text": "STATE B — both collapsed: each toggle slides along the status bar to the far end as its edge moves out", + "text": "STATE B — both collapsed: toggles stay put at the same status-bar ends, only the chevron flips", "fontColor": "#c8d8f0", "fontSize": 15 }, "b-center": { @@ -109,7 +109,7 @@ }, "b-status-right": { "type": "Text", "parent": "b-statusbar", - "left": 780, "top": 637, "text": "Output terminal", + "left": 770, "top": 637, "text": "Output terminal", "fontColor": "#8a92a6", "fontSize": 11 }, "b-toggle-left": { @@ -132,18 +132,18 @@ }, "b-note-left": { "type": "Text", - "left": 80, "top": 666, "text": "now at far-left -> re-open sidebar", + "left": 44, "top": 666, "text": "same spot -> re-open sidebar", "fontColor": "#8a92a6", "fontSize": 11 }, "b-note-right": { "type": "Text", - "left": 700, "top": 666, "text": "now at far-right -> re-open context pane", + "left": 730, "top": 666, "text": "same spot -> re-open context pane", "fontColor": "#8a92a6", "fontSize": 11 }, "footer": { "type": "Text", "left": 40, "top": 700, - "text": "Toggles live in the bottom status bar (not floating on the pane). Each is pinned to the center pane's left/right edge, so it slides to the status-bar end when its pane collapses. Mirrored for parity. Buttons call the existing sidebar.collapse / context.collapse commands; chevron reads isCollapsed.", + "text": "Toggles sit at fixed far-left / far-right ends of the bottom status bar in every state — muscle memory, always where the reference arrows pointed. Only the chevron flips per isCollapsed. Mirrored for parity. Buttons call the existing sidebar.collapse / context.collapse commands.", "fontColor": "#8a92a6", "fontSize": 11 } } diff --git a/docs/design/wireframes/hud/pane-collapse-toggles.png b/docs/design/wireframes/hud/pane-collapse-toggles.png index c84ed694..59f328b4 100644 Binary files a/docs/design/wireframes/hud/pane-collapse-toggles.png and b/docs/design/wireframes/hud/pane-collapse-toggles.png differ