Editor has no visible 'change has been auto-saved' or 'unsaved' indicator — user editing paths and refreshing the page loses their work (it's in sessionStorage per #161) but they have no in-UI signal of this #262
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/Kimi_Agent_Brother_10_Digitizing_App#262
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
The editor's session storage auto-save (per the #161 fix) persists the editor state to
tc_workspace_snapshoton every change. If the user refreshes, the state is restored from sessionStorage. But the user has no in-UI signal of:The Save button itself is one signal (disabled when not canSave, enabled when canSave). But the user has no way to tell:
grep -n 'autosaved\|auto-saved' src/components/editor/returns 0.A user editing paths and then:
…has no idea what state their work is in. A small indicator at the bottom of the editor (next to the totals) would tell them "Last saved to sessionStorage 3 seconds ago" or "Not saved since 2:34 PM."
Where
src/components/editor/EditorHeader.tsx(the totals, no save status)src/components/editor/EditorThreadBar.tsx(no save status)src/components/editor/EditorRightPanel.tsx(no save status)src/pages/Editor.tsx(tracked but not surfaced as a status)Suggested fix shape
Add a small status badge to the bottom-right of the editor's bottom bar (next to the thread stops):
isDirtyis the existing flag (per #161). The text is the user-facing explanation. The dot/icon is the visual cue.The "auto-saved to session" wording is important — it tells the user the work is in sessionStorage and will be restored if they refresh, but it's NOT in the Gallery until they click Save.
A more sophisticated version: a tooltip on hover that shows "Last auto-save: 2 seconds ago" with a precise timestamp.
Severity
Low. The user can infer from Save button state. Power users notice the missing signal.
Discovered by
Gap analysis (2026-10-02) of editor save status.
Related
isDirtyflag is the same state.Shipped fix(#262) at
1378885(push 6ddb350..1378885).The editor's bottom thread bar now shows a save-status badge that surfaces the existing isDirty state (#161):
The badge sits to the right of the Total: N stops counter, separated by a vertical divider. It uses the existing
isDirtyflag fromEditor.tsx(no new state) and complements the Save button's disabled state plus the header's Saved 5 min ago subtitle (#215), so the user always has an in-UI signal of what's persisted where.Files
src/components/editor/EditorThreadBar.tsx— new optionalisDirtyprop + badge render (useslucide-react'sCheckfor the clean-state icon; the dirty-state dot is a small inline<span>to avoid pulling inCircle).src/components/editor/EditorThreadBar.test.tsx— 3 new tests pinning the badge's two states + default-clean.src/pages/Editor.tsx— passisDirtyinto<EditorThreadBar />(just one extra prop on the existing JSX).src/pages/issue-262.test.tsx— integration test pinning the Editor → bar wiring (boolean isDirty must reach the bar, not undefined).Verification
npx tsc --noEmit: clean.Related
isDirtyflag this badge surfaces.Fixed in commit. Closing.