Skip to content

Commit a20b9d0

Browse files
mpstatonclaude
andcommitted
new(context-v, plans): workspace-scope legibility — empty workspaces and stale restores should explain themselves
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UvYzx7vDWeafnkAi2nEQeb
1 parent 74ada84 commit a20b9d0

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: "Workspace-scope legibility — empty workspaces and stale org restores should explain themselves, not look broken"
3+
lede: "Switching to humain-vc (0 orgs) made the workbench look dead: 'Filter 0 orgs', 'no orgs match', and a red 'organization not found: new-america' for the restored last-worked org. All three are per-workspace visibility working correctly — the plan is to make the correct behavior say so."
4+
date_created: 2026-07-24
5+
date_modified: 2026-07-24
6+
authors:
7+
- Michael Staton
8+
augmented_with:
9+
- Claude Code on Claude Fable 5
10+
semantic_version: 0.0.0.1
11+
tags:
12+
- Plan
13+
- Augment-It
14+
- Org-Workbench
15+
- Workspaces
16+
- Usability
17+
status: Draft
18+
---
19+
20+
# Workspace-scope legibility
21+
22+
## Diagnosis (live-verified 2026-07-24)
23+
24+
`humain-vc` has **0** organizations in the canonical layer; all 319 carry
25+
`client_access: [reach-edu]`. With the workspace on humain-vc the workbench
26+
showed: an empty roster ("no orgs match" — wrong message, right data), and
27+
"organization not found: new-america" (App restores the last-worked org from
28+
localStorage; the org exists but isn't visible from this workspace). The
29+
system behaved exactly per [[../../CLAUDE.md]]'s canonical-tagging model;
30+
only the *messaging* failed. Operator's read: "no organizations are loading."
31+
32+
## Steps
33+
34+
1. **Roster empty-state distinguishes empty-workspace from empty-filter.**
35+
`OrgRoster.svelte`: when the server returned 0 rows, render "Workspace
36+
‹client› has no organizations yet" (+ a hint that ➕ New organization
37+
creates the first one, and that other workspaces' orgs are hidden by
38+
design). "no orgs match" stays only for a non-empty roster narrowed to
39+
nothing by the filter box.
40+
2. **Active-org restore becomes per-workspace.** `App.svelte`: key the
41+
localStorage slot by client (`augment-it:org-workbench:active-org:<client>`)
42+
so switching workspaces restores *that workspace's* last org (or nothing)
43+
instead of failing on another's. Migrate the old un-keyed value once.
44+
3. **Cross-workspace not-found reads as scope, not error.** When a restored
45+
load fails, clear the stored slot and show a neutral note ("‹slug› isn't
46+
visible in workspace ‹client›") instead of the red error band. Manual
47+
loads keep the error styling — a click that fails IS an error.
48+
4. **Verify** — svelte-check + build; walk-through: on humain-vc the roster
49+
explains itself and no red error appears; back on reach-edu the roster
50+
and last-worked org return. Frontend-only; no service or container work.
51+
5. Changelog rider on the day's entries; commit per [[git-conventions]].
52+
53+
## Non-goals
54+
55+
- No cross-workspace org browsing or client_access editing — visibility
56+
stays per-workspace by design ([[../issues/Merge-Organizations-Or-People-Non-Destructive-Dedupe]]
57+
and the unlock flow own the sharing questions).
58+
- No workspace-switcher changes in the shell.

0 commit comments

Comments
 (0)