Skip to content

chore(deps)(deps-dev): bump jest from 29.7.0 to 30.2.0#4

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/npm_and_yarn/jest-30.2.0
Closed

chore(deps)(deps-dev): bump jest from 29.7.0 to 30.2.0#4
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/npm_and_yarn/jest-30.2.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot bot commented on behalf of github Dec 24, 2025

Bumps jest from 29.7.0 to 30.2.0.

Release notes

Sourced from jest's releases.

30.2.0

Chore & Maintenance

  • [*] Update example repo for testing React Native projects (#15832)
  • [*] Update jest-watch-typeahead to v3 (#15830)

Features

  • [jest-environment-jsdom-abstract] Add support for JSDOM v27 (#15834)

Fixes

  • [babel-jest] Export the TransformerConfig interface (#15820)
  • [jest-config] Fix jest.config.ts with TS loader specified in docblock pragma (#15839)

30.1.3

Fixes

  • Fix unstable_mockModule with node: prefixed core modules.

30.1.2

Fixes

  • [jest-snapshot-utils] Correct snapshot header regexp to work with newline across OSes (#15803)

30.1.1

Fixes

  • [jest-snapshot-utils] Fix deprecated goo.gl snapshot warning not handling Windows end-of-line sequences (#15800)

30.1.0

Features

  • [jest-leak-detector] Configurable GC aggressiveness regarding to V8 heap snapshot generation (#15793)
  • [jest-runtime] Reduce redundant ReferenceError messages
  • [jest-core] Include test modules that failed to load when --onlyFailures is active

Fixes

  • `[jest-snapshot-utils] Fix deprecated goo.gl snapshot guide link not getting replaced with fully canonical URL (#15787)
  • [jest-circus] Fix it.concurrent not working with describe.skip (#15765)
  • [jest-snapshot] Fix mangled inline snapshot updates when used with Prettier 3 and CRLF line endings
  • [jest-runtime] Importing from @jest/globals in more than one file no longer breaks relative paths (#15772)

Chore

  • [expect] Update docblock for toContain() to display info on substring check (#15789)

30.0.2

What's Changed

... (truncated)

Changelog

Sourced from jest's changelog.

30.2.0

Chore & Maintenance

  • [*] Update example repo for testing React Native projects (#15832)
  • [*] Update jest-watch-typeahead to v3 (#15830)

Features

  • [jest-environment-jsdom-abstract] Add support for JSDOM v27 (#15834)

Fixes

  • [jest-matcher-utils] Fix infinite recursion with self-referential getters in deepCyclicCopyReplaceable (#15831)
  • [babel-jest] Export the TransformerConfig interface (#15820)
  • [jest-config] Fix jest.config.ts with TS loader specified in docblock pragma (#15839)

30.1.3

Fixes

  • Fix unstable_mockModule with node: prefixed core modules.

30.1.2

Fixes

  • [jest-snapshot-utils] Correct snapshot header regexp to work with newline across OSes (#15803)

30.1.1

Fixes

  • [jest-snapshot-utils] Fix deprecated goo.gl snapshot warning not handling Windows end-of-line sequences (#15800)
  • [jest-snapshot-utils] Improve messaging about goo.gl snapshot link change (#15821)

30.1.0

Features

  • [jest-leak-detector] Configurable GC aggressiveness regarding to V8 heap snapshot generation (#15793)
  • [jest-runtime] Reduce redundant ReferenceError messages
  • [jest-core] Include test modules that failed to load when --onlyFailures is active

Fixes

  • [jest-snapshot-utils] Fix deprecated goo.gl snapshot guide link not getting replaced with fully canonical URL (#15787)
  • [jest-circus] Fix it.concurrent not working with describe.skip (#15765)
  • [jest-snapshot] Fix mangled inline snapshot updates when used with Prettier 3 and CRLF line endings
  • [jest-runtime] Importing from @jest/globals in more than one file no longer breaks relative paths (#15772)

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot bot commented on behalf of github Dec 24, 2025

Labels

The following labels could not be found: automated, dependencies. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 29.7.0 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.2.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot force-pushed the dependabot/npm_and_yarn/jest-30.2.0 branch from e685163 to 97fa020 Compare December 24, 2025 17:20
Data-Wise added a commit that referenced this pull request Dec 24, 2025
Folder Organization (Ideas #4 and #5):
- Move docs/development/TESTING.md → docs/testing/TESTING.md
- Remove empty docs/development/ directory
- Move docs/hop/ → docs/guides/hop/
- Create docs/guides/ for better semantic grouping

Updates:
- PROJECT-HUB.md: Update TESTING.md path
- IDEAS.md: Mark ideas #4 and #5 as completed
- docs/guides/hop/COPY-INSTRUCTIONS.md: Update path references

Rationale:
- TESTING.md fits better in docs/testing/ (alongside test docs)
- docs/development/ was redundant (only had one file)
- docs/guides/hop/ clarifies it's a guide, not core docs
- Better semantic organization

Impact:
- Clearer documentation structure
- Reduced directory clutter
- Easier navigation

Part of folder organization quick wins.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot bot commented on behalf of github Dec 25, 2025

Looks like jest is no longer updatable, so this is no longer needed.

@dependabot dependabot bot closed this Dec 25, 2025
@dependabot dependabot bot deleted the dependabot/npm_and_yarn/jest-30.2.0 branch December 25, 2025 14:14
Data-Wise added a commit that referenced this pull request Jan 12, 2026
Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 12, 2026
…on (#212)

* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

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

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

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

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add project cache & auto-discovery enhancement plan

New spec: SPEC-project-cache-auto-discovery.md
- Comprehensive 3-phase implementation plan
- Phase 1 (v5.6.0): Caching layer for 40x performance
- Phase 2 (v5.7.0): Auto-discovery for zero config
- Phase 3 (v5.8.0): Unified type detection

Code review completed:
- lib/project-detector.zsh (131 lines)
- commands/pick.zsh (974 lines)
- Rating: 8.5/10
- Identified: performance bottleneck, extensibility issues

Updated .STATUS:
- Added Sprint 6 roadmap (v5.6.0-v5.8.0, ~14 hours)
- Updated Next Steps with new option B
- Updated Just Completed section
- Progress: 18% → 19%

Impact: High performance gain + extensibility improvement
Risk: Low (opt-in rollout, extensive testing)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: add exec zsh to approved Bash commands

- Added 'Bash(exec zsh)' to approved commands list
- Allows shell reload during workflow operations

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: formalize mandatory git workflow protocol

Major updates to workflow documentation:

BRANCH-WORKFLOW.md:
- Added 'Mandatory Workflow Protocol' section
- Detailed 5-step workflow (planning → worktree → implementation)
- Tool usage constraints for Claude Code
- Abort conditions for protected branch operations
- Worktree isolation requirements
- Workflow validation checklist

CLAUDE.md:
- Expanded 'Git Workflow & Standards' section
- Explicit worktree creation protocol
- Critical rule: NEW session required after worktree creation
- Conventional commit standards
- Tool usage constraints
- ABORT conditions for Claude Code

Key workflow rules enforced:
1. Planning on dev branch only
2. No feature code on dev branch
3. Worktree isolation for all features
4. NEW Claude session required after worktree creation
5. Conventional commits mandatory
6. PR workflow for all merges (feature → dev → main)

Impact: Prevents common workflow violations
- No accidental commits to main/dev
- No working in wrong directory
- No mixing planning and implementation contexts
- Enforces branch protection rules

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* test: add comprehensive test suites for pick & cc

New files:
- test-pick-command.zsh: 39 tests for pick functionality (556 lines)
  * Function existence (6 tests)
  * Frecency scoring (4 tests)
  * Project detection & listing (9 tests)
  * Session status indicators (4 tests)
  * Worktree detection (4 tests)
  * Pick invocation & edge cases (9 tests)
  * Aliases (3 tests)

Enhanced files:
- test-cc-dispatcher.zsh: Expanded to 37 tests (722 lines, +247)
  * Added unified grammar tests (4 tests)
  * Added shortcut expansion tests (4 tests)
  * Added explicit HERE tests (2 tests)
  * Added function existence tests (2 tests)

Coverage highlights:
- Pick: Frecency decay algorithm, session indicators, worktree integration
- CC: Mode-first & target-first patterns, shortcuts (y/p/o/h), validation

Test results: 76/76 passing (100%)

Fixes applied:
- Frecency scoring expectations (timestamp=0 returns 0)
- ANSI code stripping for help text matching
- Worktree test isolation (re-source plugin)
- Error message validation
- PATH restoration in edge cases

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add comprehensive testing guide

New documentation:
- docs/guides/TESTING.md (comprehensive testing guide)
  * Test philosophy and architecture
  * Test file structure and patterns
  * Writing tests (6 patterns with examples)
  * Mock environment setup (projects, worktrees)
  * ANSI code handling for reliable assertions
  * Debugging test failures (4 strategies)
  * Best practices and TDD workflow
  * Coverage goals and CI integration

Updates:
- CLAUDE.md: Enhanced Testing section
  * Reference to new testing guide
  * Updated test suite overview (76+ tests)
  * Test coverage table
  * Quick verification commands

- mkdocs.yml: Updated Testing navigation
  * Points to guides/TESTING.md
  * Added 🧪 emoji for visibility

Coverage documented:
- Pick command: 39 tests (100%)
- CC dispatcher: 37 tests (100%)
- DOT dispatcher: 112+ tests (100%)
- Total: 76+ tests across 8 suites

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: update TESTING-QUICK-REF with v5.0.0 test suites

Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 12, 2026
* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

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

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

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

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add project cache & auto-discovery enhancement plan

New spec: SPEC-project-cache-auto-discovery.md
- Comprehensive 3-phase implementation plan
- Phase 1 (v5.6.0): Caching layer for 40x performance
- Phase 2 (v5.7.0): Auto-discovery for zero config
- Phase 3 (v5.8.0): Unified type detection

Code review completed:
- lib/project-detector.zsh (131 lines)
- commands/pick.zsh (974 lines)
- Rating: 8.5/10
- Identified: performance bottleneck, extensibility issues

Updated .STATUS:
- Added Sprint 6 roadmap (v5.6.0-v5.8.0, ~14 hours)
- Updated Next Steps with new option B
- Updated Just Completed section
- Progress: 18% → 19%

Impact: High performance gain + extensibility improvement
Risk: Low (opt-in rollout, extensive testing)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: add exec zsh to approved Bash commands

- Added 'Bash(exec zsh)' to approved commands list
- Allows shell reload during workflow operations

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: formalize mandatory git workflow protocol

Major updates to workflow documentation:

BRANCH-WORKFLOW.md:
- Added 'Mandatory Workflow Protocol' section
- Detailed 5-step workflow (planning → worktree → implementation)
- Tool usage constraints for Claude Code
- Abort conditions for protected branch operations
- Worktree isolation requirements
- Workflow validation checklist

CLAUDE.md:
- Expanded 'Git Workflow & Standards' section
- Explicit worktree creation protocol
- Critical rule: NEW session required after worktree creation
- Conventional commit standards
- Tool usage constraints
- ABORT conditions for Claude Code

Key workflow rules enforced:
1. Planning on dev branch only
2. No feature code on dev branch
3. Worktree isolation for all features
4. NEW Claude session required after worktree creation
5. Conventional commits mandatory
6. PR workflow for all merges (feature → dev → main)

Impact: Prevents common workflow violations
- No accidental commits to main/dev
- No working in wrong directory
- No mixing planning and implementation contexts
- Enforces branch protection rules

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* test: add comprehensive test suites for pick & cc

New files:
- test-pick-command.zsh: 39 tests for pick functionality (556 lines)
  * Function existence (6 tests)
  * Frecency scoring (4 tests)
  * Project detection & listing (9 tests)
  * Session status indicators (4 tests)
  * Worktree detection (4 tests)
  * Pick invocation & edge cases (9 tests)
  * Aliases (3 tests)

Enhanced files:
- test-cc-dispatcher.zsh: Expanded to 37 tests (722 lines, +247)
  * Added unified grammar tests (4 tests)
  * Added shortcut expansion tests (4 tests)
  * Added explicit HERE tests (2 tests)
  * Added function existence tests (2 tests)

Coverage highlights:
- Pick: Frecency decay algorithm, session indicators, worktree integration
- CC: Mode-first & target-first patterns, shortcuts (y/p/o/h), validation

Test results: 76/76 passing (100%)

Fixes applied:
- Frecency scoring expectations (timestamp=0 returns 0)
- ANSI code stripping for help text matching
- Worktree test isolation (re-source plugin)
- Error message validation
- PATH restoration in edge cases

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add comprehensive testing guide

New documentation:
- docs/guides/TESTING.md (comprehensive testing guide)
  * Test philosophy and architecture
  * Test file structure and patterns
  * Writing tests (6 patterns with examples)
  * Mock environment setup (projects, worktrees)
  * ANSI code handling for reliable assertions
  * Debugging test failures (4 strategies)
  * Best practices and TDD workflow
  * Coverage goals and CI integration

Updates:
- CLAUDE.md: Enhanced Testing section
  * Reference to new testing guide
  * Updated test suite overview (76+ tests)
  * Test coverage table
  * Quick verification commands

- mkdocs.yml: Updated Testing navigation
  * Points to guides/TESTING.md
  * Added 🧪 emoji for visibility

Coverage documented:
- Pick command: 39 tests (100%)
- CC dispatcher: 37 tests (100%)
- DOT dispatcher: 112+ tests (100%)
- Total: 76+ tests across 8 suites

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: update TESTING-QUICK-REF with v5.0.0 test suites

Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat(cache): Project list caching with 5-minute TTL (v5.3.0) (#214)

* feat(cache): implement project list caching with 5-minute TTL

Implement Phase 1 of the project cache enhancement (v5.3.0) to achieve
sub-10ms performance for the pick command through intelligent caching.

Core Module (lib/project-cache.zsh - 170 lines):
- Cache generation with Unix timestamp header
- TTL-based validity checking (5-minute default, configurable)
- Auto-regeneration on missing/stale/corrupt cache
- Graceful fallback to uncached mode on errors
- Cache statistics and reporting
- User commands: flow cache refresh/clear/status

Integration:
- Modified commands/pick.zsh to use cached list access
- Added flow cache dispatcher to commands/flow.zsh
- Integrated cache module into flow.plugin.zsh
- XDG-compliant cache location: ~/.cache/flow-cli/projects.cache

Unit Tests (42 tests across 3 suites):
- Cache Access & Auto-Regeneration (16 tests)
- Cache Generation (10 tests)
- Cache Validation (16 tests)

Integration Tests (17 tests):
- End-to-end cache lifecycle
- User command validation
- Pick command integration

Interactive Tests (15 tests):
- ADHD-friendly dog-feeding test
- Enhanced with expected vs actual output comparison
- Gamification (streaks, bonuses, progress bars)

Total: 59 automated tests + 15 interactive = 74 tests
All tests passing with 100% function coverage

Guides:
- docs/guides/PROJECT-CACHE.md - Comprehensive implementation guide
- docs/reference/CACHE-QUICK-REFERENCE.md - Quick lookup card

Testing:
- tests/TEST-PLAN.md - Complete test strategy
- tests/TEST-RESULTS-ANALYSIS.md - Comprehensive results analysis
- tests/INTERACTIVE-CACHE-TEST-README.md - Interactive test guide
- tests/INTERACTIVE-TEST-IMPROVEMENTS.md - Enhancement details

Cache Management:
- Automatic cache generation on first use
- Auto-regeneration when cache is stale (> 5 min)
- Auto-regeneration when cache is corrupt
- Manual control via flow cache commands

Configuration:
- PROJ_CACHE_TTL - Custom TTL in seconds (default: 300)
- FLOW_CACHE_ENABLED - Enable/disable cache (default: 1)

User Commands:
- flow cache refresh - Force cache regeneration
- flow cache clear - Delete cache file
- flow cache status - Display cache statistics

Error Handling:
- Graceful fallback on all 5 failure modes
- No user-visible errors
- Transparent operation

Expected improvement: 40x speedup
- Before: ~200ms (filesystem scan)
- After: <10ms (cache read)
- Cache overhead: <1ms (TTL validation)

Implementation:
- lib/project-cache.zsh (new, 170 lines)
- commands/pick.zsh (modified, cache integration)
- commands/flow.zsh (modified, cache commands)
- flow.plugin.zsh (modified, load cache module)

Tests:
- tests/unit/test-cache-*.zsh (new, 3 files, 42 tests)
- tests/test-project-cache.zsh (modified, 17 integration tests)
- tests/interactive-cache-dogfeeding.zsh (new, 15 interactive tests)
- tests/test-utils.zsh (new, 20+ assertions)
- tests/run-unit-tests.zsh (new, test orchestrator)

Documentation:
- docs/guides/PROJECT-CACHE.md (new)
- docs/reference/CACHE-QUICK-REFERENCE.md (new)
- tests/TEST-PLAN.md (new)
- tests/TEST-RESULTS-ANALYSIS.md (new)
- tests/INTERACTIVE-*.md (new, 2 files)
- README.md (updated, performance section)
- CLAUDE.md (updated, v5.3.0 status)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(cache): store complete list, filter at read time

Fix category filtering bug where cache stored filtered data but didn't
re-apply filters on retrieval, causing wrong results when different
filters were requested.

## Root Cause

Cache generated with filter (e.g. 'dev') but returned that filtered
data for ALL subsequent queries, ignoring the requested filter parameter.

Example of bug:
- pick dev → Cache stores: [dev projects only]
- pick r   → Cache returns: [dev projects] ❌ Wrong!

## Solution

Architecture change: Cache stores COMPLETE unfiltered project list,
filtering happens at read time using grep.

Benefits:
- Single cache serves all filter combinations
- No cache invalidation on filter changes
- Filtering is cheap (~1ms) vs scanning (~200ms)
- Eliminates entire class of filter-related bugs

## Implementation

lib/project-cache.zsh:
- _proj_cache_generate(): Remove "$@" - always cache everything
- _proj_list_all_cached(): Apply category/recent filters after read

tests/unit/test-cache-generation.zsh:
- Update tests to expect unfiltered cache contents

## Performance Impact

Before fix (broken):
- pick dev (first):  200ms (cache miss)
- pick r (second):   <1ms (wrong data from cache) ❌

After fix (correct):
- pick dev (first):  200ms (cache miss, caches ALL)
- pick r (second):   <2ms (cache hit + filter) ✅

Performance maintained: 100x speedup (2ms vs 200ms)

## Test Results

Before fix: 36/39 pick tests passing (92%)
After fix:  39/39 pick tests passing (100%)

All test suites:
- ✅ 39/39 pick command tests
- ✅ 42/42 cache unit tests
- ✅ 17/17 cache integration tests
- ✅ 98/98 total tests (100%)

Fixes #3 category filter test failures

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: highlight project cache performance in site

- index.md: Add cache note to Design Philosophy (40x faster)
- quick-reference-card.md: Note pick is cached for speed
- tutorials/02-multiple-projects.md: Add performance tip box

Subtle mentions of v5.3.0 cache feature where users first
encounter the pick command. Comprehensive guide already exists
at docs/guides/PROJECT-CACHE.md (439 lines).

Related: PR #214 - Project list caching with 5-minute TTL

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 12, 2026
* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

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

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

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

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add project cache & auto-discovery enhancement plan

New spec: SPEC-project-cache-auto-discovery.md
- Comprehensive 3-phase implementation plan
- Phase 1 (v5.6.0): Caching layer for 40x performance
- Phase 2 (v5.7.0): Auto-discovery for zero config
- Phase 3 (v5.8.0): Unified type detection

Code review completed:
- lib/project-detector.zsh (131 lines)
- commands/pick.zsh (974 lines)
- Rating: 8.5/10
- Identified: performance bottleneck, extensibility issues

Updated .STATUS:
- Added Sprint 6 roadmap (v5.6.0-v5.8.0, ~14 hours)
- Updated Next Steps with new option B
- Updated Just Completed section
- Progress: 18% → 19%

Impact: High performance gain + extensibility improvement
Risk: Low (opt-in rollout, extensive testing)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: add exec zsh to approved Bash commands

- Added 'Bash(exec zsh)' to approved commands list
- Allows shell reload during workflow operations

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: formalize mandatory git workflow protocol

Major updates to workflow documentation:

BRANCH-WORKFLOW.md:
- Added 'Mandatory Workflow Protocol' section
- Detailed 5-step workflow (planning → worktree → implementation)
- Tool usage constraints for Claude Code
- Abort conditions for protected branch operations
- Worktree isolation requirements
- Workflow validation checklist

CLAUDE.md:
- Expanded 'Git Workflow & Standards' section
- Explicit worktree creation protocol
- Critical rule: NEW session required after worktree creation
- Conventional commit standards
- Tool usage constraints
- ABORT conditions for Claude Code

Key workflow rules enforced:
1. Planning on dev branch only
2. No feature code on dev branch
3. Worktree isolation for all features
4. NEW Claude session required after worktree creation
5. Conventional commits mandatory
6. PR workflow for all merges (feature → dev → main)

Impact: Prevents common workflow violations
- No accidental commits to main/dev
- No working in wrong directory
- No mixing planning and implementation contexts
- Enforces branch protection rules

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* test: add comprehensive test suites for pick & cc

New files:
- test-pick-command.zsh: 39 tests for pick functionality (556 lines)
  * Function existence (6 tests)
  * Frecency scoring (4 tests)
  * Project detection & listing (9 tests)
  * Session status indicators (4 tests)
  * Worktree detection (4 tests)
  * Pick invocation & edge cases (9 tests)
  * Aliases (3 tests)

Enhanced files:
- test-cc-dispatcher.zsh: Expanded to 37 tests (722 lines, +247)
  * Added unified grammar tests (4 tests)
  * Added shortcut expansion tests (4 tests)
  * Added explicit HERE tests (2 tests)
  * Added function existence tests (2 tests)

Coverage highlights:
- Pick: Frecency decay algorithm, session indicators, worktree integration
- CC: Mode-first & target-first patterns, shortcuts (y/p/o/h), validation

Test results: 76/76 passing (100%)

Fixes applied:
- Frecency scoring expectations (timestamp=0 returns 0)
- ANSI code stripping for help text matching
- Worktree test isolation (re-source plugin)
- Error message validation
- PATH restoration in edge cases

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add comprehensive testing guide

New documentation:
- docs/guides/TESTING.md (comprehensive testing guide)
  * Test philosophy and architecture
  * Test file structure and patterns
  * Writing tests (6 patterns with examples)
  * Mock environment setup (projects, worktrees)
  * ANSI code handling for reliable assertions
  * Debugging test failures (4 strategies)
  * Best practices and TDD workflow
  * Coverage goals and CI integration

Updates:
- CLAUDE.md: Enhanced Testing section
  * Reference to new testing guide
  * Updated test suite overview (76+ tests)
  * Test coverage table
  * Quick verification commands

- mkdocs.yml: Updated Testing navigation
  * Points to guides/TESTING.md
  * Added 🧪 emoji for visibility

Coverage documented:
- Pick command: 39 tests (100%)
- CC dispatcher: 37 tests (100%)
- DOT dispatcher: 112+ tests (100%)
- Total: 76+ tests across 8 suites

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: update TESTING-QUICK-REF with v5.0.0 test suites

Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* feat(cache): Project list caching with 5-minute TTL (v5.3.0) (#214)

* feat(cache): implement project list caching with 5-minute TTL

Implement Phase 1 of the project cache enhancement (v5.3.0) to achieve
sub-10ms performance for the pick command through intelligent caching.

Core Module (lib/project-cache.zsh - 170 lines):
- Cache generation with Unix timestamp header
- TTL-based validity checking (5-minute default, configurable)
- Auto-regeneration on missing/stale/corrupt cache
- Graceful fallback to uncached mode on errors
- Cache statistics and reporting
- User commands: flow cache refresh/clear/status

Integration:
- Modified commands/pick.zsh to use cached list access
- Added flow cache dispatcher to commands/flow.zsh
- Integrated cache module into flow.plugin.zsh
- XDG-compliant cache location: ~/.cache/flow-cli/projects.cache

Unit Tests (42 tests across 3 suites):
- Cache Access & Auto-Regeneration (16 tests)
- Cache Generation (10 tests)
- Cache Validation (16 tests)

Integration Tests (17 tests):
- End-to-end cache lifecycle
- User command validation
- Pick command integration

Interactive Tests (15 tests):
- ADHD-friendly dog-feeding test
- Enhanced with expected vs actual output comparison
- Gamification (streaks, bonuses, progress bars)

Total: 59 automated tests + 15 interactive = 74 tests
All tests passing with 100% function coverage

Guides:
- docs/guides/PROJECT-CACHE.md - Comprehensive implementation guide
- docs/reference/CACHE-QUICK-REFERENCE.md - Quick lookup card

Testing:
- tests/TEST-PLAN.md - Complete test strategy
- tests/TEST-RESULTS-ANALYSIS.md - Comprehensive results analysis
- tests/INTERACTIVE-CACHE-TEST-README.md - Interactive test guide
- tests/INTERACTIVE-TEST-IMPROVEMENTS.md - Enhancement details

Cache Management:
- Automatic cache generation on first use
- Auto-regeneration when cache is stale (> 5 min)
- Auto-regeneration when cache is corrupt
- Manual control via flow cache commands

Configuration:
- PROJ_CACHE_TTL - Custom TTL in seconds (default: 300)
- FLOW_CACHE_ENABLED - Enable/disable cache (default: 1)

User Commands:
- flow cache refresh - Force cache regeneration
- flow cache clear - Delete cache file
- flow cache status - Display cache statistics

Error Handling:
- Graceful fallback on all 5 failure modes
- No user-visible errors
- Transparent operation

Expected improvement: 40x speedup
- Before: ~200ms (filesystem scan)
- After: <10ms (cache read)
- Cache overhead: <1ms (TTL validation)

Implementation:
- lib/project-cache.zsh (new, 170 lines)
- commands/pick.zsh (modified, cache integration)
- commands/flow.zsh (modified, cache commands)
- flow.plugin.zsh (modified, load cache module)

Tests:
- tests/unit/test-cache-*.zsh (new, 3 files, 42 tests)
- tests/test-project-cache.zsh (modified, 17 integration tests)
- tests/interactive-cache-dogfeeding.zsh (new, 15 interactive tests)
- tests/test-utils.zsh (new, 20+ assertions)
- tests/run-unit-tests.zsh (new, test orchestrator)

Documentation:
- docs/guides/PROJECT-CACHE.md (new)
- docs/reference/CACHE-QUICK-REFERENCE.md (new)
- tests/TEST-PLAN.md (new)
- tests/TEST-RESULTS-ANALYSIS.md (new)
- tests/INTERACTIVE-*.md (new, 2 files)
- README.md (updated, performance section)
- CLAUDE.md (updated, v5.3.0 status)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(cache): store complete list, filter at read time

Fix category filtering bug where cache stored filtered data but didn't
re-apply filters on retrieval, causing wrong results when different
filters were requested.

## Root Cause

Cache generated with filter (e.g. 'dev') but returned that filtered
data for ALL subsequent queries, ignoring the requested filter parameter.

Example of bug:
- pick dev → Cache stores: [dev projects only]
- pick r   → Cache returns: [dev projects] ❌ Wrong!

## Solution

Architecture change: Cache stores COMPLETE unfiltered project list,
filtering happens at read time using grep.

Benefits:
- Single cache serves all filter combinations
- No cache invalidation on filter changes
- Filtering is cheap (~1ms) vs scanning (~200ms)
- Eliminates entire class of filter-related bugs

## Implementation

lib/project-cache.zsh:
- _proj_cache_generate(): Remove "$@" - always cache everything
- _proj_list_all_cached(): Apply category/recent filters after read

tests/unit/test-cache-generation.zsh:
- Update tests to expect unfiltered cache contents

## Performance Impact

Before fix (broken):
- pick dev (first):  200ms (cache miss)
- pick r (second):   <1ms (wrong data from cache) ❌

After fix (correct):
- pick dev (first):  200ms (cache miss, caches ALL)
- pick r (second):   <2ms (cache hit + filter) ✅

Performance maintained: 100x speedup (2ms vs 200ms)

## Test Results

Before fix: 36/39 pick tests passing (92%)
After fix:  39/39 pick tests passing (100%)

All test suites:
- ✅ 39/39 pick command tests
- ✅ 42/42 cache unit tests
- ✅ 17/17 cache integration tests
- ✅ 98/98 total tests (100%)

Fixes #3 category filter test failures

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: highlight project cache performance in site

- index.md: Add cache note to Design Philosophy (40x faster)
- quick-reference-card.md: Note pick is cached for speed
- tutorials/02-multiple-projects.md: Add performance tip box

Subtle mentions of v5.3.0 cache feature where users first
encounter the pick command. Comprehensive guide already exists
at docs/guides/PROJECT-CACHE.md (439 lines).

Related: PR #214 - Project list caching with 5-minute TTL

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* chore: bump version to 5.3.0

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
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.

0 participants