v3.8.0 — crash recovery, cancel, line editors, coffee/sleep breaks, Name→Details#25
Merged
Merged
Conversation
…e/sleep breaks, picker+resume overlays Pure engines proven before UI wiring (SOP step 3): - lineedit.ts: code-point-aware single-line editor (insert-at-cursor, paste, ←/→/Home/End, delete) + bracketed-paste in input.ts (tokenize fixes the one-char-per-chunk truncation; DEC 2004 wrap so multi-line paste != Enter). - journal.ts + Timer.fromResume: live-session snapshot for crash recovery; conservative gap-discard reconstruction (never invents focus time). - coffee/sleep break categories (schema single source of truth: ALL_/QUICK_). - breakpicker.ts + resume.ts pure overlays (parallel Sonnet workers, in-scope). 711 tests green, typecheck clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…cker, crash recovery - Name → Details everywhere: forms, detail view, help, and CLI (start/log/edit now take --details; --name/--label kept as hidden deprecated aliases — no workflow break). Manifest updated. - All text fields are real line editors (cursor + paste) via the lineedit model. - Live session: [x] cancel (confirm → discard, no save), [m] break-category picker (unlocks coffee/sleep without cluttering the 1-6 row), [c] cycle now spans all categories. - Crash recovery: journal written on start + each transition + 5s heartbeat, cleared on stop/cancel; on launch an orphaned journal opens the Resume overlay → Timer.fromResume rebuilds the session (gap discarded, never invents focus). 712 tests + 3 new buildFrame overlay tests green; lint + typecheck clean. Smoke-verified --details/--name alias end-to-end. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…red breaks in-window Two bugs found auditing the full diff: 1. startNavReader was called without the output stream, so DEC 2004 bracketed paste was never enabled in the dashboard — multi-line pastes could submit mid-text. Pass process.stdout. 2. Timer.fromResume kept breaks' original timestamps while shifting the start, producing recovered records with breaks before their own start. Shift breaks by the same delta so they keep spacing and stay within [start, now]. 715 tests + lint + typecheck + build green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…er, details, editors) - version.ts + package.json → 3.8.0 - CHANGELOG: Added (crash recovery, [x] cancel, coffee/sleep, [m] picker) + Changed (Name→Details with hidden aliases, line editors + paste) - README: live-controls table, new-session form (Details), Cancel + Crash recovery sections, line-editor note, schema category set, agent examples, roadmap v3.8.0 row. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Five dogfooding-driven features for the live dashboard session. All from real workflow friction. Ships as a MINOR (
--name/--labelkept as hidden aliases — no breaks).Features
~/.local/share/flowclock/active-session.json(start + each control change + 5s heartbeat). After a freeze/hard-reset the next launch offers a Resume previous session? overlay.Timer.fromResumerebuilds focus/break to the last heartbeat and discards the frozen gap — never invents focus time. Cleared on clean stop/cancel.[x]cancel — discard a test session without saving (confirm first);[q]still saves.coffee+sleepbreak categories, reachable via a[m]picker overlay so the1–6footer stays short.← → Home End), insert/delete at cursor, and paste (bracketed-paste; multi-line flattened). Previously a paste kept only its first char.--details);--name/--labelkept as hidden deprecated aliases.Engineering
lineedit(code-point-aware, emoji-safe),journal+Timer.fromResume(gap-discard, window-consistent breaks).breakpicker,resume) built by scoped parallel workers; verified in-scope.process.stdout); recovered breaks predated their start (delta-shift fix).Gates
715 tests · lint · typecheck · build all green locally. No data-schema version bump (v3 additive). Default behavior unchanged for headless/agent/
--json.🤖 Generated with Claude Code