jettypod 4.1.2 → 4.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nvmrc +1 -0
- package/docs/COMPLETE-TESTING-STRATEGY.md +970 -0
- package/docs/DECISIONS.md +10 -12
- package/docs/NODE_VERSION.md +83 -0
- package/docs/TDD-INFRASTRUCTURE-STRATEGY.md +1374 -0
- package/docs/TESTING-FOR-NON-ENGINEERS.md +1588 -0
- package/docs/TESTING-STRATEGY-AUDIT.md +698 -0
- package/hooks/post-checkout +17 -0
- package/hooks/post-merge +17 -0
- package/hooks/pre-commit +30 -0
- package/jettypod.js +259 -120
- package/lib/coverage-tracker.js +218 -0
- package/lib/database.js +2 -0
- package/lib/db-export.js +192 -0
- package/lib/db-import.js +193 -0
- package/lib/external-transition-handler.js +32 -0
- package/lib/git-hook-helpers.js +174 -0
- package/lib/git-root.js +90 -0
- package/lib/infrastructure-chore-generator.js +45 -0
- package/lib/install-hooks.js +52 -0
- package/lib/jettypod-backup.js +238 -0
- package/lib/merge-lock.js +193 -0
- package/lib/migrations/012-add-worktree-path.js +38 -0
- package/lib/migrations/013-worktrees-table.js +86 -0
- package/lib/migrations/014-migrate-worktree-data.js +161 -0
- package/lib/migrations/015-merge-locks-table.js +67 -0
- package/lib/pattern-finder.js +152 -0
- package/lib/process-manager.js +140 -0
- package/lib/production-standards-reader.js +13 -2
- package/lib/production-standards-writer.js +85 -0
- package/lib/skills/feature-planning/dry-run-validator.js +135 -0
- package/lib/skills/feature-planning/validation-formatter.js +160 -0
- package/lib/smart-conflict-detection.js +168 -0
- package/lib/smart-fetch-rebase.js +614 -0
- package/lib/step-definition-parser.js +76 -0
- package/lib/unit-test-generator.js +232 -0
- package/lib/verification-command-generator.js +66 -0
- package/lib/worktree-diagnostics.js +413 -0
- package/lib/worktree-facade.js +174 -0
- package/lib/worktree-manager.js +636 -0
- package/lib/worktree-reconciler.js +429 -0
- package/package.json +30 -3
- package/skills-templates/external-transition/SKILL.md +34 -3
- package/skills-templates/feature-planning/SKILL.md +190 -24
- package/skills-templates/production-mode/SKILL.md +127 -9
- package/skills-templates/speed-mode/SKILL.md +454 -51
- package/skills-templates/stable-mode/SKILL.md +285 -76
- package/.claude/PROTECT_SKILLS.md +0 -28
- package/.claude/settings.json +0 -24
- package/.claude/settings.local.json +0 -16
- package/.claude/skills/epic-planning/SKILL.md +0 -297
- package/.claude/skills/external-transition/SKILL.md +0 -384
- package/.claude/skills/feature-planning/SKILL.md +0 -464
- package/.claude/skills/production-mode/SKILL.md +0 -369
- package/.claude/skills/speed-mode/SKILL.md +0 -481
- package/.claude/skills/stable-mode/SKILL.md +0 -713
- package/.claude/skills.backup-2025-11-10T23-33-09-368Z/epic-planning/SKILL.md +0 -297
- package/.claude/skills.backup-2025-11-10T23-33-09-368Z/feature-planning/SKILL.md +0 -464
- package/.claude/skills.backup-2025-11-10T23-33-09-368Z/speed-mode/SKILL.md +0 -467
- package/.claude/skills.backup-2025-11-10T23-33-09-368Z/stable-mode/SKILL.md +0 -673
- package/.claude/skills.backup-2025-11-11T16-15-10-070Z/epic-discover/SKILL.md +0 -297
- package/.claude/skills.backup-2025-11-11T16-42-43-212Z/epic-planning/SKILL.md +0 -297
- package/.claude/skills.backup-2025-11-11T16-42-43-212Z/feature-planning/SKILL.md +0 -464
- package/.claude/skills.backup-2025-11-11T16-42-43-212Z/speed-mode/SKILL.md +0 -467
- package/.claude/skills.backup-2025-11-11T16-42-43-212Z/stable-mode/SKILL.md +0 -673
- package/.claude/skills.backup-2025-11-11T17-06-09-783Z/epic-planning/SKILL.md +0 -297
- package/.claude/skills.backup-2025-11-11T17-06-09-783Z/feature-planning/SKILL.md +0 -464
- package/.claude/skills.backup-2025-11-11T17-06-09-783Z/speed-mode/SKILL.md +0 -467
- package/.claude/skills.backup-2025-11-11T17-06-09-783Z/stable-mode/SKILL.md +0 -673
- package/.devpod/current-work.json +0 -10
- package/.devpod/work.db +0 -0
- package/.github/workflows/test-safety.yml +0 -85
- package/.jettypod/config.json +0 -5
- package/.jettypod/current-work.json +0 -10
- package/.jettypod/hooks/README.md +0 -77
- package/.jettypod/hooks/protect-claude-md.js +0 -338
- package/.jettypod/test-work.db +0 -0
- package/.jettypod/work.db +0 -0
- package/CLAUDE.md +0 -49
- package/SPEED-STABLE-AUDIT.md +0 -853
- package/SYSTEM-BEHAVIOR.md +0 -2199
- package/TEST_SAFETY_AUDIT.md +0 -314
- package/TEST_SAFETY_IMPLEMENTATION.md +0 -97
- package/cucumber-report.html +0 -45
- package/dist/devpod-linux +0 -0
- package/dist/devpod-macos +0 -0
- package/dist/devpod-win.exe +0 -0
- package/docs/features/jettypod-standards-explained.md +0 -543
- package/docs/features/standards-inventory.md +0 -257
- package/features/auto-generate-production-chores.feature +0 -13
- package/features/backlog-command.feature +0 -26
- package/features/backlog-filtering-production.feature +0 -10
- package/features/claude-md-protection/steps.js +0 -498
- package/features/decisions/index.js +0 -490
- package/features/decisions/index.test.js +0 -208
- package/features/fix-text-wrapping.feature +0 -42
- package/features/git-hooks/git-hooks.feature +0 -30
- package/features/git-hooks/index.js +0 -93
- package/features/git-hooks/index.test.js +0 -137
- package/features/git-hooks/post-commit +0 -56
- package/features/git-hooks/post-merge +0 -47
- package/features/git-hooks/pre-commit +0 -28
- package/features/git-hooks/simple-steps.js +0 -53
- package/features/git-hooks/simple-test.feature +0 -10
- package/features/git-hooks/steps.js +0 -196
- package/features/jettypod-update-command.feature +0 -46
- package/features/mode-prompts/index.js +0 -95
- package/features/mode-prompts/simple-steps.js +0 -44
- package/features/mode-prompts/simple-test.feature +0 -9
- package/features/mode-prompts/validation.test.js +0 -120
- package/features/multiple-claude-instances.feature +0 -121
- package/features/production-mode-skill.feature +0 -121
- package/features/refactor-mode/steps.js +0 -217
- package/features/refactor-mode.feature +0 -49
- package/features/simplify-external-transition.feature +0 -166
- package/features/skills-update/index.test.js +0 -216
- package/features/step_definitions/backlog-command.steps.js +0 -37
- package/features/step_definitions/fix-text-wrapping.steps.js +0 -271
- package/features/step_definitions/multiple-claude-instances.steps.js +0 -621
- package/features/step_definitions/production-mode-skill.steps.js +0 -862
- package/features/step_definitions/simplify-external-transition.steps.js +0 -370
- package/features/step_definitions/terminal-logo.steps.js +0 -145
- package/features/step_definitions/update-command.steps.js +0 -183
- package/features/support/hooks.js +0 -9
- package/features/terminal-logo/index.js +0 -39
- package/features/terminal-logo/terminal-logo.feature +0 -30
- package/features/update-command/index.js +0 -181
- package/features/update-command/index.test.js +0 -225
- package/features/work-commands/bug-workflow-display.feature +0 -22
- package/features/work-commands/index.js +0 -498
- package/features/work-commands/simple-steps.js +0 -69
- package/features/work-commands/stable-tests.feature +0 -57
- package/features/work-commands/steps.js +0 -1174
- package/features/work-commands/validation.test.js +0 -88
- package/features/work-commands/work-commands.feature +0 -13
- package/features/work-tracking/discovery-validation.test.js +0 -228
- package/features/work-tracking/index.js +0 -1921
- package/features/work-tracking/mode-required.feature +0 -112
- package/features/work-tracking/phase-tracking.test.js +0 -482
- package/features/work-tracking/prototype-tracking.test.js +0 -485
- package/features/work-tracking/tree-view.test.js +0 -310
- package/features/work-tracking/work-set-mode.feature +0 -71
- package/features/work-tracking/work-start-mode.feature +0 -88
- package/full-test.txt +0 -0
- package/lib/bug-workflow.test.js +0 -177
- package/lib/claudemd.test.js +0 -195
- package/lib/config.test.js +0 -511
- package/lib/constants.test.js +0 -164
- package/lib/current-work.test.js +0 -146
- package/lib/database-project-config.test.js +0 -111
- package/lib/database.test.js +0 -106
- package/lib/decisions-generator.test.js +0 -457
- package/lib/decisions-helpers.test.js +0 -310
- package/lib/git-coordinator.js +0 -167
- package/lib/git.test.js +0 -145
- package/lib/migrations/002-default-work-item-modes.test.js +0 -351
- package/lib/production-chore-generator.test.js +0 -432
- package/lib/production-context-detector.test.js +0 -277
- package/lib/production-scenario-appender.test.js +0 -235
- package/lib/production-scenario-validator.test.js +0 -246
- package/lib/production-standards-reader.test.js +0 -270
- package/lib/project-state.test.js +0 -92
- package/lib/push-queue.js +0 -417
- package/lib/queue-processor.js +0 -74
- package/lib/test-helpers.js +0 -202
- package/lib/test-helpers.test.js +0 -255
- package/prototypes/2025-01-11-production-mode-autonomous.js +0 -119
- package/prototypes/2025-01-11-production-mode-collaborative.js +0 -166
- package/prototypes/2025-01-11-production-mode-guided.js +0 -217
- package/prototypes/2025-01-11-production-mode-smart-context.js +0 -347
- package/prototypes/2025-01-11-production-standards-example.md +0 -204
- package/prototypes/2025-11-10-backlog-filtering-tree-aware.js +0 -242
- package/prototypes/test/index.html +0 -1
- package/setup-dist-repo.sh +0 -68
- package/test-production-standards-engine.js +0 -130
- package/test-results.json +0 -2195
- package/test-safety-check.sh +0 -80
- package/work-item-tracking-plan.md +0 -199
- /package/{.jettypod/devpod.db → jettypod.db} +0 -0
package/docs/DECISIONS.md
CHANGED
|
@@ -4,18 +4,6 @@ This document records key decisions made during project discovery and epic plann
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
## Project-Level Decisions
|
|
8
|
-
|
|
9
|
-
### UX Approach & Tech Stack
|
|
10
|
-
|
|
11
|
-
**Decision:** prototypes/test
|
|
12
|
-
|
|
13
|
-
**Rationale:** Testing
|
|
14
|
-
|
|
15
|
-
**Date:** 10/30/2025
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
7
|
## Epic-Level Decisions
|
|
20
8
|
|
|
21
9
|
### Epic #237: Real-time Collaboration
|
|
@@ -66,3 +54,13 @@ This document records key decisions made during project discovery and epic plann
|
|
|
66
54
|
|
|
67
55
|
---
|
|
68
56
|
|
|
57
|
+
### Epic #1840: Multiple AI Coding Assistant Instances
|
|
58
|
+
|
|
59
|
+
**Concurrent Merge Architecture:** Database-backed merge queue with rebase-first strategy and smart conflict resolution
|
|
60
|
+
|
|
61
|
+
*Rationale:* Multiple Claude Code instances need coordinated access to main branch. Using database as coordination point provides simple, reliable serialization without complex distributed locking. Rebase-first strategy ensures linear history and makes conflicts easier to reason about. Smart conflict resolution (auto-resolve trivial, LLM-assist complex) enables autonomous operation while escalating truly ambiguous cases. Graceful degradation ensures system never enters unrecoverable state.
|
|
62
|
+
|
|
63
|
+
*Date:* 11/14/2025
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Node.js Version Requirements
|
|
2
|
+
|
|
3
|
+
## Required Version: Node.js 22.x
|
|
4
|
+
|
|
5
|
+
This project requires **Node.js 22.x** due to a compatibility issue with the `sqlite3` npm package and Node.js v24.
|
|
6
|
+
|
|
7
|
+
## The Issue
|
|
8
|
+
|
|
9
|
+
When running tests with Node.js v24, you'll encounter a FATAL ERROR during Node's cleanup phase:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
FATAL ERROR: Error::ThrowAsJavaScriptException napi_throw
|
|
13
|
+
----- Native stack trace -----
|
|
14
|
+
1: node::OnFatalError(char const*, char const*)
|
|
15
|
+
2: napi_fatal_error
|
|
16
|
+
3: Napi::Error::Fatal(char const*, char const*)
|
|
17
|
+
4: Napi::Error::ThrowAsJavaScriptException() const
|
|
18
|
+
5: node_sqlite3::Statement::CleanQueue()
|
|
19
|
+
6: node_sqlite3::Statement::~Statement()
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
This crash occurs AFTER all tests complete and results are reported. It happens during Node's garbage collection when Statement objects are being finalized.
|
|
23
|
+
|
|
24
|
+
## Root Cause
|
|
25
|
+
|
|
26
|
+
Node.js v24 removed several deprecated V8 APIs that sqlite3 v5.1.7 relies on:
|
|
27
|
+
- `v8::CopyablePersistentTraits` (replaced with `NonCopyablePersistentTraits`)
|
|
28
|
+
- `v8::AccessorGetterCallback` (replaced with `v8::AccessorNameGetterCallback`)
|
|
29
|
+
- Changes to `v8::String::Utf8Value` and `v8::Object::Get` signatures
|
|
30
|
+
|
|
31
|
+
## Why Node 22 Instead of Node 24?
|
|
32
|
+
|
|
33
|
+
While Node.js v24 includes a built-in `node:sqlite` module that eliminates the need for the `sqlite3` npm package, migrating to it would require:
|
|
34
|
+
1. Significant refactoring of all database code
|
|
35
|
+
2. Rewriting all tests that use sqlite3
|
|
36
|
+
3. Changing the API from callback-based to the new native API
|
|
37
|
+
|
|
38
|
+
Using Node.js 22 LTS (the current stable LTS version) is the pragmatic solution that:
|
|
39
|
+
- Avoids the sqlite3/Node v24 incompatibility
|
|
40
|
+
- Requires no code changes
|
|
41
|
+
- Provides a stable, well-tested Node.js version
|
|
42
|
+
- Will be supported until April 2027
|
|
43
|
+
|
|
44
|
+
## Setup
|
|
45
|
+
|
|
46
|
+
### Using nvm (recommended)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# Install the required version
|
|
50
|
+
nvm install
|
|
51
|
+
|
|
52
|
+
# Use the required version
|
|
53
|
+
nvm use
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Manual Installation
|
|
57
|
+
|
|
58
|
+
Install Node.js 22.x from [nodejs.org](https://nodejs.org/) or using your package manager:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# macOS (Homebrew)
|
|
62
|
+
brew install node@22
|
|
63
|
+
|
|
64
|
+
# Ubuntu/Debian
|
|
65
|
+
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
|
|
66
|
+
sudo apt-get install -y nodejs
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Future Migration
|
|
70
|
+
|
|
71
|
+
When ready to migrate to Node.js v24+, consider switching from `sqlite3` npm package to the built-in `node:sqlite` module:
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
// Old (sqlite3 npm package)
|
|
75
|
+
const sqlite3 = require('sqlite3');
|
|
76
|
+
const db = new sqlite3.Database(':memory:');
|
|
77
|
+
|
|
78
|
+
// New (Node.js v24+ built-in)
|
|
79
|
+
const { DatabaseSync } = require('node:sqlite');
|
|
80
|
+
const db = new DatabaseSync(':memory:');
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
See [Node.js v24 sqlite documentation](https://nodejs.org/api/sqlite.html) for details.
|