Skip to content

Release: v1.20.0 — Settings Infrastructure & Timer Cleanup#49

Merged
Data-Wise merged 19 commits into
mainfrom
dev
Feb 24, 2026
Merged

Release: v1.20.0 — Settings Infrastructure & Timer Cleanup#49
Data-Wise merged 19 commits into
mainfrom
dev

Conversation

@Data-Wise
Copy link
Copy Markdown
Owner

Summary

Test Plan

  • TypeScript: 0 errors
  • Tests: 2,280 passing (76 files)
  • mkdocs build --strict: 0 warnings
  • Version sync: package.json, tauri.conf.json, Cargo.toml all match 1.20.0

Commits since v1.19.0

  • feat: Settings improvements (SettingsToggle, usePreferences, SHORTCUTS registry)
  • refactor: Remove session timer, consolidate to Pomodoro
  • chore: Reduce default editor font size
  • docs: CLAUDE.md optimization, Quarto code chunk spec, post-merge syncs
  • fix: PR refactor: remove session timer, consolidate to Pomodoro #48 review fixes, stale test count references

Generated with Claude Code

Test User and others added 19 commits February 23, 2026 12:54
- Add PomodoroTimer.tsx and usePomodoroStore.ts to CLAUDE.md project structure
- Update feature tiers labels ("Build Now" → "Core (Shipped)")
- Fix .STATUS spec targets (Pomodoro → Released, Settings → v1.20.0)
- Update TESTS_SUMMARY.md generated date
- Remove stale "Install Stable: v1.14.0" line from CLAUDE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Condense Icon-Centric Sidebar from 210 lines to 3-line summary
- Condense Previous Releases to compact table + CHANGELOG link
- Condense Tech Debt section to single paragraph
- Remove redundant browser-mode file list and AI code sample
- Keep actionable patterns (Tauri serialization, tab pattern)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Brainstorm + implementation plan to remove the legacy session
timer and consolidate time-tracking into the Pomodoro timer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove the legacy session timer (top-right breadcrumb area) that showed
raw elapsed time with pause/reset controls. This eliminates user confusion
from having two overlapping timers and fixes the localStorage bug that
caused absurd values like "2296:20" across restarts.

Changes:
- Remove ~80 lines of useState/useEffect/localStorage from App.tsx
- Remove sessionStartTime prop chain through 4 components
- Replace StatsPanel Duration card with Pomodoro count from store
- Strip session timer display from WritingProgress
- Update all affected tests with usePomodoroStore mock

The Pomodoro timer in the status bar remains as the sole time-tracking
mechanism, providing meaningful focus tracking via work/break cycles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The 18px default was too large for academic writing workflows.
15px provides better information density while remaining readable.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Max brainstorm with frontend architect + UX designer agents.
Spec covers ViewPlugin architecture, derived CSS variables,
language badge widget, and code font settings.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove 48 lines of orphaned .focus-timer CSS styles
- Update docs/index.md: "Session timer" → "Pomodoro timer"
- Update PROJECT-DEFINITION.md: session timer → Pomodoro timer
- Add [Unreleased] CHANGELOG entry for session timer removal

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolved 8 open questions:
- JS rgba() over color-mix() for compatibility
- Badge always visible (no cursor-reveal)
- No chunk option folding (style only)
- No inline executable code styling
- Match existing theme reactivity pattern
- Hardcoded 0.82 ratio for option font size
- Full lowercase badge text (r, python, julia)
- 8px gap between adjacent chunks
- Default code font: Fira Code (changed from JetBrains Mono)

Added edge cases: empty chunks, test impact, badge color,
getThemeColors inconsistency, adjacent chunk separation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nces hook (#47)

* docs: add ORCHESTRATE and SPEC for settings improvements

Planning files for feature/settings-improvements:
- SettingsToggle extraction, shortcut registry, usePreferences hook
- Pre-commit ORCHESTRATE guard, settings tab audit
- ~3.5h total across 5 phases

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor: extract settings components, add shortcut registry, harden preferences

- Extract reusable SettingsToggle component from duplicated toggle markup
- Create SHORTCUTS registry constant replacing hardcoded labels across 13 files
- Add usePreferences() hook with event-based cross-component sync
- Migrate per-render loadPreferences() calls in SettingsModal, EditorTabs,
  MissionControl to cached hook
- Add husky pre-commit guard blocking ORCHESTRATE files on dev/main
- Fix 3x per-render loadPreferences() bug in GeneralSettingsTab streak toggle

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: wire up toggles, add matchesShortcut, migrate App.tsx, update docs

- Add openLastPage, readableLineLength, spellcheck preferences with persistence
- Add matchesShortcut() helper for registry-based keyboard event matching
- Refactor 12 hardcoded shortcut checks in KeyboardShortcutHandler to use registry
- Migrate App.tsx from manual useState/loadPreferences to usePreferences hook
- Update ARCHITECTURE.md with preferences system diagram and patterns
- Update COMPONENTS.md, REFCARD-SETTINGS.md, shortcuts guide with new APIs

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: complete keyboard shortcuts cheatsheet with missing entries

Add quickCapture, newProject, recentNotes, dashboard, terminal,
and Tabs category to the shortcuts panel so it matches the full
SHORTCUTS registry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: address PR #47 review — accessibility, consistency, cleanup

- Add role="switch", aria-checked, aria-label to SettingsToggle (a11y)
- Add accessibility tests for SettingsToggle (2 new tests)
- Migrate SettingsModal fully to usePreferences hook (remove loadPreferences)
- Document togglePref's intentional localStorage read pattern
- Add key casing convention docs to SHORTCUTS registry
- Remove unused toggleRightPanel/collapseAll from registry
- Remove ORCHESTRATE file (merge cleanup)
- Sync version to 1.19.0 (was stale at 1.18.0)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: update font size test to match dev's 18→15 change

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Test User <test@example.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- REFCARD-SETTINGS: updated categories to match current tabs, added
  pomodoro and streak preferences, updated version to v1.19.1
- TESTS_SUMMARY: fixed stale metrics table (407→2,282), added pomodoro
  and settings infrastructure coverage areas
- CLAUDE.md: added SettingsToggle, usePreferences, shortcuts.ts to
  project tree
- COMPONENTS.md: added WCAG accessibility note to SettingsToggle
- SCRIBE-DOCUMENTATION: updated version and branch
- Spec status: Draft → Shipped

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Settings categories: 5 (old v1.9.0 names) → 6 (current tabs)
- Theme count: 8 → 10 in features grid and index
- mkdocs build: 0 new warnings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove ORCHESTRATE file (working artifact, not for dev)
- Move BRAINSTORM to docs/archive/brainstorms/
- Fix trailing whitespace in App.tsx (2 locations)
- Use distinct mock value (5) for Pomodoro count in StatsPanel test
  to avoid ambiguity with note count (3)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Keep both [Unreleased] session timer removal and v1.19.1 settings entry.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
refactor: remove session timer, consolidate to Pomodoro
- Update test counts 2,282 → 2,280 (2 session-duration tests removed)
- Add PR #48 to .STATUS and CLAUDE.md as latest work
- 7 files updated: .STATUS, README.md, docs/index.md, CLAUDE.md, TESTS_SUMMARY.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Data-Wise Data-Wise merged commit 3df1fe6 into main Feb 24, 2026
9 checks passed
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