feat: v3.3.0 - Groups, URL detection, history logging, CI, and robust edit handling#4
Open
decrypted wants to merge 7 commits intoIrtesaam:masterfrom
Open
feat: v3.3.0 - Groups, URL detection, history logging, CI, and robust edit handling#4decrypted wants to merge 7 commits intoIrtesaam:masterfrom
decrypted wants to merge 7 commits intoIrtesaam:masterfrom
Conversation
Major Features:
- Task groups: Organize tasks into color-coded groups (max 10)
- History logging: All actions logged to ~/.config/todozen/history.jsonl
- Preferences UI: GTK4/Libadwaita settings dialog with panel position,
groups management, and clear all with confirmation
Performance:
- Task/group caching with signal-based invalidation
- Lazy UI population (only on menu open)
- Smart repopulation via _needsPopulate flag
- Single GSettings writes for batch operations
Code Quality:
- Added vitest with 41 unit tests
- TypeScript strict mode
- ESLint configuration
- Versioned data model for migrations
Documentation:
- CLAUDE.md: Project goals and architecture
- PERFORMANCE.md: Optimization state and decisions
- CHANGELOG.md: Detailed change history
Other:
- Renamed LICENCE to LICENSE
- Removed unused src/utils.ts
- CSS cleanup (removed unused selectors)
Closed
- Add CI workflow (TypeScript, ESLint, tests, build artifact) - Switch from npm to yarn (commit yarn.lock, remove package-lock.json) - Update build.sh with new files (prefs.ui, build-info.json, LICENSE)
- Add multiple URL detection with domain labels for link buttons - Extract pure functions to utils.ts for better testability (164 tests) - Add popup width setting (Normal/Wide/Ultra) in preferences - Add edit mode protection - disable hover on items while renaming - Add error mode UI showing startup failures with log locations - Right-align action buttons for consistent positioning - Add build verification to ensure all files included in zip - Update .gitignore to exclude build artifacts (*.zip, utils.js)
- Clear _taskItems and _isEditing in disable() to prevent memory leaks - Add tests for multiple URLs without text, URLs with parentheses in path - Add tests for invalid version type in validateTask and validateGroup
BREAKING BUG FIX: Previously, clicking edit would delete the task immediately. If user closed the popup or clicked edit on another task, the original was permanently lost. Now: - Task stays in list (hidden while editing) - Cancel (close popup/lose focus) restores visibility - Submit updates task by ID, preserving position and properties Also adds: - findTaskIndexById() and updateTaskNameById() utilities - 8 new tests for edit-by-ID functionality (176 total)
- Define JS_FILES, STATIC_FILES, EXTENSION_FILES as single source of truth - CI workflow now uses yarn build yarn run v1.22.22 $ tsc Done in 1.95s. rm ./schemas/gschemas.compiled -f glib-compile-schemas ./schemas rm -rf dist mkdir -p dist/schemas cp extension.js manager.js history.js prefs.js utils.js metadata.json stylesheet.css prefs.ui build-info.json LICENSE dist/ cp schemas/* dist/schemas/ instead of duplicating file lists - Add proper target (preserves eslint.config.js and zip files) - Move variables to top of Makefile for clarity - Update CLAUDE.md with ID-based task identification doctrine
- Move pack logic from build.sh into Makefile target - Delete build.sh (no longer needed) - Clean target now removes .zip - Update CLAUDE.md to reference Makefile JS_FILES
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.
Major Features
~/.config/todozen/history.jsonlCritical Bug Fixes
task.id, never matches by namePerformance
_needsPopulateflagCode Quality
src/utils.ts: Pure, testable functions extracted from UI codemake checkverifies distribution zip contains all filesDocumentation
CLAUDE.md: Project goals, architecture, and critical learnings (ID-based identification, edit behavior)PERFORMANCE.md: Optimization state and decisionsCHANGELOG.md: Detailed change historyBreaking Changes from Original
version,id,groupIdfields (auto-migrated)