@tekyzinc/gsd-t 2.23.0 → 2.24.7

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/CHANGELOG.md CHANGED
@@ -2,6 +2,105 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [2.24.7] - 2026-02-18
6
+
7
+ ### Changed
8
+ - **Next Command Hint redesigned**: Replaced plain `Next →` text with GSD-style "Next Up" visual block — divider lines, `▶ Next Up` header, phase name with description, command in backticks, and alternatives section. Format designed to trigger Claude Code's prompt suggestion engine, making the next command appear as ghost text in the user's input field
9
+
10
+ ## [2.24.6] - 2026-02-18
11
+
12
+ ### Added
13
+ - **Auto-update on session start**: SessionStart hook now automatically installs new GSD-T versions when detected — runs `npm install -g` + `gsd-t update-all`. Falls back to manual instructions if auto-update fails
14
+ - **Changelog link in all version messages**: All three output modes (`[GSD-T AUTO-UPDATE]`, `[GSD-T UPDATE]`, `[GSD-T]`) now include the changelog URL
15
+ - **Update check installer**: `bin/gsd-t.js` now deploys the update check script and configures the SessionStart hook automatically during install, with auto-fix for incorrect matchers
16
+
17
+ ### Fixed
18
+ - **SessionStart hook matcher**: Changed from `"startup"` to `""` (empty) to match all session types including compact/resumed sessions
19
+
20
+ ## [2.24.5] - 2026-02-18
21
+
22
+ ### Fixed
23
+ - **Dead code removed**: `PKG_EXAMPLES` constant in `bin/gsd-t.js` and dead imports (`writeTemplateFile`, `showStatusVersion`) in `test/cli-quality.test.js` (TD-057, TD-058)
24
+ - **summarize() case fallthrough**: Combined identical `Read`/`Edit`/`Write` cases using switch fallthrough, saving 4 lines (TD-056)
25
+ - **checkForUpdates() condition**: Simplified redundant `!cached && isStale` to `if (!cached) ... else if (stale)` (TD-061)
26
+ - **Notification title scrubbing**: Applied `scrubSecrets()` to `h.title` in heartbeat notification handler (TD-063)
27
+ - **SEC-N16 note corrected**: Updated informational note during scan #5 (TD-062)
28
+ - **Wave integrity check contract**: Updated `wave-phase-sequence.md` to match actual implementation — checks Status, Milestone name, Domains table (not version) (TD-064)
29
+ - **Duplicate format contract**: Deleted `file-format-contract.md` — `backlog-file-formats.md` is authoritative (TD-065)
30
+
31
+ ### Added
32
+ - 9 new tests: 3 `readSettingsJson()` tests in `cli-quality.test.js`, 6 `shortPath()` tests in `security.test.js` (TD-059, TD-060)
33
+ - Total tests: 125 (was 116)
34
+
35
+ ## [2.24.4] - 2026-02-18
36
+
37
+ ### Fixed
38
+ - **progress.md status**: Now uses contract-recognized values (READY between milestones, not ACTIVE)
39
+ - **CLAUDE.md version**: Removed hardcoded version — references `package.json` directly to prevent recurring drift (TD-048)
40
+ - **CHANGELOG.md**: Added missing entries for v2.23.1 through v2.24.3 covering milestones 3-7 (TD-045)
41
+ - **Orphaned domains**: Deleted stale `cli-quality/` and `cmd-cleanup/` directories from previous milestones (TD-046)
42
+ - **Git line endings**: Applied `git add --renormalize .` to enforce LF across all tracked files (TD-049)
43
+ - **Notification scrubbing**: Applied `scrubSecrets()` to heartbeat notification messages (TD-052)
44
+
45
+ ### Changed
46
+ - **Contracts synced**: `progress-file-format.md` enriched with milestone table + optional fields. `wave-phase-sequence.md` updated with integrity check (M7) and security considerations (M5). `command-interface-contract.md` renamed to `backlog-command-interface.md`. `integration-points.md` rewritten to reflect current state (TD-047, TD-053, TD-054, TD-055)
47
+ - **readSettingsJson()**: Extracted helper to deduplicate 3 `JSON.parse(readFileSync)` call sites in CLI (TD-050)
48
+ - **prepublishOnly**: Added `npm test` gate before `npm publish` (TD-051)
49
+ - **TD-029 (TOCTOU)**: Formally accepted as risk with 5-point rationale — single-threaded Node.js, user-owned dirs, Windows symlink requires admin
50
+
51
+ ## [2.24.3] - 2026-02-19
52
+
53
+ ### Changed
54
+ - **Command file cleanup**: 85 fractional step numbers renumbered to integers across 17 command files. Autonomy Behavior sections added to `gsd-t-discuss` and `gsd-t-impact`. QA agent hardened with file-path boundary constraints, multi-framework test detection, and Document Ripple section. Wave integrity check validates progress.md fields before starting. Structured 3-condition discuss-skip heuristic. Consistent "QA failure blocks" language across all 10 QA-spawning commands
55
+
56
+ ### Fixed
57
+ - 8 tech debt items resolved: TD-030, TD-031, TD-036, TD-037, TD-038, TD-039, TD-040, TD-041
58
+
59
+ ## [2.24.2] - 2026-02-19
60
+
61
+ ### Changed
62
+ - **CLI quality improvement**: All 86 functions across `bin/gsd-t.js` (80) and `scripts/gsd-t-heartbeat.js` (6) are now <= 30 lines. 3 code duplication patterns resolved (`readProjectDeps`, `writeTemplateFile`, `readPyContent` extracted). `buildEvent()` refactored to handler map pattern. `checkForUpdates` inline JS extracted to `scripts/gsd-t-fetch-version.js`. `doUpdateAll` has per-project error isolation
63
+
64
+ ### Added
65
+ - `.gitattributes` and `.editorconfig` for consistent file formatting
66
+ - 22 new tests in `test/cli-quality.test.js` (buildEvent, readProjectDeps, readPyContent, insertGuardSection, readUpdateCache, addHeartbeatHook)
67
+
68
+ ### Fixed
69
+ - Heartbeat cleanup now only runs on SessionStart (not every event)
70
+ - 7 tech debt items resolved: TD-017, TD-021, TD-024, TD-025, TD-032, TD-033, TD-034
71
+
72
+ ## [2.24.1] - 2026-02-18
73
+
74
+ ### Added
75
+ - **Security hardening**: `scrubSecrets()` and `scrubUrl()` in heartbeat script scrub sensitive data (passwords, tokens, API keys, bearer tokens) before logging. 30 new security tests in `test/security.test.js`
76
+ - `hasSymlinkInPath()` validates parent directories for symlink attacks
77
+ - HTTP response accumulation bounded to 1MB in both fetch paths
78
+ - Security Considerations section in `gsd-t-wave.md` documenting `bypassPermissions` implications
79
+
80
+ ### Fixed
81
+ - `npm-update-check.js` validates cache path within `~/.claude/` and checks for symlinks before writing
82
+ - 6 tech debt items resolved: TD-019, TD-020, TD-026, TD-027, TD-028, TD-035
83
+
84
+ ## [2.24.0] - 2026-02-18
85
+
86
+ ### Added
87
+ - **Testing foundation**: 64 automated tests in 2 test files (`test/helpers.test.js`: 27 tests, `test/filesystem.test.js`: 37 tests) using Node.js built-in test runner (`node --test`). Zero external test dependencies
88
+ - `module.exports` added to `bin/gsd-t.js` for 20 testable functions with `require.main` guard
89
+ - CLI subcommand tests (--version, help, status, doctor)
90
+ - Helper function tests (validateProjectName, applyTokens, normalizeEol, validateVersion, isNewerVersion)
91
+ - Filesystem tests (isSymlink, ensureDir, validateProjectPath, copyFile, hasPlaywright, hasSwagger, hasApi)
92
+ - Command listing tests (getCommandFiles, getGsdtCommands, getUtilityCommands with count validation)
93
+
94
+ ### Fixed
95
+ - Tech debt item TD-003 (no test coverage) resolved
96
+
97
+ ## [2.23.1] - 2026-02-18
98
+
99
+ ### Fixed
100
+ - **Count fix**: All command count references updated to 43/39/4 across CLAUDE.md, README.md, package.json, and docs (TD-022)
101
+ - QA agent contract now includes test-sync phase with "During Test-Sync" section and updated output table (TD-042)
102
+ - Orphaned domain files from previous milestones archived to `.gsd-t/milestones/` (TD-043)
103
+
5
104
  ## [2.23.0] - 2026-02-17
6
105
 
7
106
  ### Changed
package/README.md CHANGED
@@ -18,7 +18,7 @@ A methodology for reliable, parallelizable development using Claude Code with op
18
18
  npx @tekyzinc/gsd-t install
19
19
  ```
20
20
 
21
- This installs 39 GSD-T commands + 3 utility commands to `~/.claude/commands/` and the global CLAUDE.md to `~/.claude/CLAUDE.md`. Works on Windows, Mac, and Linux.
21
+ This installs 39 GSD-T commands + 4 utility commands (43 total) to `~/.claude/commands/` and the global CLAUDE.md to `~/.claude/CLAUDE.md`. Works on Windows, Mac, and Linux.
22
22
 
23
23
  ### Start Using It
24
24
 
@@ -246,6 +246,17 @@ your-project/
246
246
 
247
247
  ---
248
248
 
249
+ ## Security
250
+
251
+ - **Wave mode** spawns phase agents with `bypassPermissions` — agents execute without per-action user approval. Use Level 1 or Level 2 autonomy for sensitive projects to review each phase.
252
+ - **Heartbeat logs** scrub sensitive patterns (passwords, tokens, API keys) from bash commands and mask URL query parameters before writing to `.gsd-t/heartbeat-*.jsonl`.
253
+ - **File write paths** are validated (within `~/.claude/`) and checked for symlinks before writing.
254
+ - **HTTP responses** are bounded at 1MB to prevent memory exhaustion from oversized registry responses.
255
+ - **Directory creation** validates parent path components for symlinks to prevent path traversal.
256
+ - Run `gsd-t doctor` to verify installation integrity. Keep GSD-T updated with `gsd-t update`.
257
+
258
+ ---
259
+
249
260
  ## Enabling Agent Teams
250
261
 
251
262
  ```json
@@ -283,8 +294,8 @@ get-stuff-done-teams/
283
294
  ├── LICENSE
284
295
  ├── bin/
285
296
  │ └── gsd-t.js # CLI installer
286
- ├── commands/ # 42 slash commands
287
- │ ├── gsd-t-*.md # 38 GSD-T workflow commands
297
+ ├── commands/ # 43 slash commands
298
+ │ ├── gsd-t-*.md # 39 GSD-T workflow commands
288
299
  │ ├── gsd.md # GSD-T smart router
289
300
  │ ├── branch.md # Git branch helper
290
301
  │ ├── checkin.md # Auto-version + commit/push helper