Skip to content

refactor(work): remove the deprecated full-width Work table - #210

Open
FZ2000 wants to merge 3 commits into
mikehasa:mainfrom
FZ2000:chore/remove-work-table
Open

FZ2000 wants to merge 3 commits into
mikehasa:mainfrom
FZ2000:chore/remove-work-table

Conversation

@FZ2000

@FZ2000 FZ2000 commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

What & why

The macOS app's Work pane rendered two layouts of the same task data:

  • No task selected → a full-width table with a horizontal status tab bar (All / Attention / Verified / Reported / In progress / Observed / Stopped) and columns.
  • A task selected → the master–detail "Work receipts" list.

The table only duplicated the master list's own Status / Sort / Search controls — a second, heavier way to browse the same receipts. This removes it so the Work pane always presents the master–detail list.

Changes

  • WorkPane.swiftworkLayoutMode(...) no longer returns .table; with no selection it yields .split (wide) or .list (compact). WorkLayoutMode.table.list. Deleted WorkTablePage, WorkTableRow, WorkAccessibleTableRow (~730 lines) — the status tab bar and work.table* identifiers lived only there. All of the table's filtering is preserved by masterControls.
  • WorkSnapshotHarness.swift — dropped the .table snapshot state.
  • SnapshotRunner.swift — removed the window-work-table render.
  • Tests — updated the workLayoutMode assertions, removed the 8 work-table-* expectations, repointed one state-difference check, and deleted the 8 work-table-*.png goldens.
  • Refreshed stale "table" comments and the Tests/README.md snapshot matrix.

Net: +49 / −802 lines, plus 8 removed reference images.

Verification

  • git grep for table-page references → clean.
  • swift build
  • swift test316 passed, 0 failures (6 host-gated visual-regression tests skipped). The deterministic testRendersEveryWorkReviewConfigurationDeterministically renders the real WorkPane/MainWindow and passes.

Note

Based on main, where the kept master–detail is titled "Work receipts". It does not include the newer Activity-timeline canvas / "Focus timeline" that live only on design/native-recording-experience; this table removal is independent of that work.

🤖 Generated with Claude Code

https://claude.ai/code/session_013w9bhGCPP2g37g4xiehwDV

FZ2000 and others added 3 commits September 13, 2026 12:34
The Work pane rendered two layouts of the same task data: a full-width
table when nothing was selected, and a master-detail list once a task was
selected. The table duplicated the master list's Status/Sort/Search
controls, so it was only a second, heavier way to browse the same receipts.

Always present the master-detail "Work receipts" list:
- workLayoutMode no longer returns .table; with no selection it yields
  .split (wide) or .list (compact). WorkLayoutMode.table -> .list.
- Delete WorkTablePage, WorkTableRow, WorkAccessibleTableRow (~730 lines);
  the status tab bar and work.table* identifiers lived only there. All of
  its filtering is preserved by the master list's own controls.
- Drop the .table snapshot state, the window-work-table render, the eight
  work-table-*.png goldens, and their test expectations.
- Refresh stale "table" comments and the Tests snapshot matrix.

swift build + swift test: 316 passed, 0 failures (6 host-gated visual skips).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013w9bhGCPP2g37g4xiehwDV
# Conflicts:
#	apps/agentacct/Sources/agentacct/WorkPane.swift
With the full-width table gone, the Sessions surface with nothing selected
shows the master list beside an empty record area. Main re-recorded the
empty, loading and list-error references against the table after this
branch was cut, so they are recorded again here on the canonical renderer.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@FZ2000

FZ2000 commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator Author

Merged main into this branch to clear the conflict. WorkPane.swift had diverged too far for a hunk-level merge (main reworked the table page, added timelineFocused, the task presentation and the "Sessions" title), so the removal was re-applied on top of today's file: WorkTablePage, WorkTableRow and WorkAccessibleTableRow deleted, .table replaced by .list (master list, empty record area), everything else from main kept. The six no-selection Work references (work-empty, work-list-error, work-list-loading) were re-recorded on the canonical renderer; the work-table-* references stay deleted. Locally: visual-snapshots verify passes; pytest 3014 passed.

🤖 Generated with Claude Code

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant