chore(release): prepare v0.1.12#4
Merged
Merged
Conversation
HenryLach
added a commit
that referenced
this pull request
Mar 17, 2026
…(number validation > 0), dynamic JSON-only footer
HenryLach
added a commit
that referenced
this pull request
Mar 17, 2026
* checkpoint: TP-014 fix R006 revisions — explicit key mapping preserves record keys in YAML→camelCase and camelCase→snake_case adapters, resolveConfigRoot uses per-file precedence * checkpoint: TP-014 Step 2 R006 revisions complete - all 3 issues fixed * hydrate: expand Step 3 checkboxes per R007 review * test(TP-014): add project-config-loader tests — precedence/error matrix (50 tests passing) * checkpoint: TP-014 workspace root resolution tests verified * checkpoint: TP-014 key-preservation and adapter regression tests verified * checkpoint: TP-014 defaults non-mutation and backward-compat wrappers verified * checkpoint: TP-014 Step 3 complete — all 434 tests passing (16 files) * hydrate: add R008 revision items to Step 3 * test(TP-014): fix test 4.5 to exercise loadProjectConfig throw + default fallback per R008 * test(TP-014): fix test 4.5 to actually call task-runner loadConfig with malformed JSON * checkpoint: TP-014 Step 3 R008 revisions complete — all 434 tests passing * test(TP-014): clean up test 4.5 to use static import of loadConfig instead of require() * hydrate: expand Step 4 checkboxes per R009 review * docs(TP-014): add JSON config section to task-runner.yaml.md reference * docs(TP-014): add JSON config section to task-orchestrator.yaml.md reference * checkpoint: TP-014 install.md checked - no update needed, YAML scaffolding references still correct * checkpoint: TP-014 task artifacts (.DONE, STATUS.md) * feat(TP-014): complete Step 4 - documentation & delivery, .DONE created * hydrate: TP-017 expand Step 0 checkboxes per R001 review * hydrate: TP-015 expand Step 0 checkboxes per R001 review * checkpoint: TP-017 preflight path convention confirmed with PI_CODING_AGENT_DIR override and cross-platform resolution * checkpoint: TP-015 read current cmdInit() implementation * checkpoint: TP-015 read spec auto-detection and gitignore sections * checkpoint: TP-015 verify spec reachability (found in main repo .pi/local/docs/) * checkpoint: TP-015 verify TP-014 config loader/schema contract * checkpoint: TP-015 record current cmdInit() behavior to preserve * checkpoint: TP-015 identify downstream validation (no init-specific tests exist) * checkpoint: TP-015 Step 0 Preflight complete * checkpoint: TP-015 Step 0 preflight complete - all items verified * hydrate: TP-017 expand Step 1 checkboxes with R002 review feedback * checkpoint: TP-017 preferences schema, allowlist, and types defined in preferences.ts * checkpoint: TP-017 loadUserPreferences and resolveUserPreferencesPath implemented * hydrate: TP-015 add R002 revision items to Step 0 * checkpoint: TP-015 revert TP-014 file changes from TP-015 commits (R002 fix) * checkpoint: TP-015 fix malformed STATUS.md tables (R002 revision) * checkpoint: TP-015 Step 0 complete, orchestrator advancing to Step 1 * checkpoint: TP-017 merge logic updated with mergeModel, dashboardPort, empty-string semantics * checkpoint: TP-017 Step 1 complete — exports wired, all 434 tests pass * checkpoint: TP-017 Step 1 verified complete — all checkboxes done, 434 tests pass * hydrate: expand Step 1 checkboxes per R003 review * hydrate: TP-017 expand Step 2 checkboxes per R003 review * checkpoint: TP-015 detection logic implemented (isGitRepo, findSubdirectoryGitRepos, detectInitMode) * checkpoint: TP-015 error path verified (no git repo, no subdirectory repos) * checkpoint: TP-015 ambiguous case handled (prompt + preset bypass) * checkpoint: TP-015 Scenario B already-initialized detection verified * checkpoint: TP-017 tests for path resolution, loading edge cases, unknown-key dropping * checkpoint: TP-017 Layer 2 guardrails tests confirmed * checkpoint: TP-017 merge integration tests confirmed (JSON + YAML backed, e2e) * checkpoint: TP-017 Step 2 complete — full test suite passes (17 files, 461 tests) * checkpoint: TP-015 all mode detection branches validated (repo, workspace, ambiguous, error) * checkpoint: TP-015 Step 1 Mode Auto-Detection complete * hydrate: TP-017 expand Step 3 checkboxes per R004 review * checkpoint: TP-017 task artifacts (.DONE, STATUS.md) * checkpoint: TP-017 verified completion criteria * checkpoint: TP-017 confirmed no docs need updating * checkpoint: TP-017 .DONE created * feat(TP-017): user preferences layer complete * hydrate: TP-015 add R004 revision items to Step 1 * checkpoint: TP-017 Step 3 complete — all items verified * checkpoint: TP-015 fix findSubdirectoryGitRepos to use isGitRepoRoot * checkpoint: TP-015 fix existingConfigPath mismatch for ambiguous→workspace resolution * checkpoint: TP-015 Step 1 complete — all R004 revision items addressed * hydrate: expand Step 2 checkboxes based on R005 review * checkpoint: TP-015 define gitignore constants and reusable helpers * checkpoint: TP-015 ensureGitignoreEntries and detectAndOfferUntrackArtifacts helpers implemented * checkpoint: TP-015 integrate gitignore enforcement into cmdInit repo-mode flow * checkpoint: TP-015 tracked-artifact detection and git rm --cached offer implemented * checkpoint: TP-015 Step 2 complete — gitignore enforcement with dry-run output * checkpoint: TP-015 Step 2 verified complete — all gitignore enforcement items done * hydrate: TP-015 add R006 revision items to Step 2 * hydrate: TP-015 add R006 revision items to Step 2 * checkpoint: TP-015 fix patternToRegex directory prefix matching and switch to execFileSync * checkpoint: TP-015 remove dead buildGitignoreBlock function * checkpoint: TP-015 add gitignore pattern matching tests (18 tests), Step 2 R006 revisions complete * feat(TP-015): R006 extract gitignore patterns to testable module with 26 tests * hydrate: TP-015 expand Step 3 checkboxes based on R007 review * checkpoint: TP-015 implement detectSpawnMode() reusable helper * checkpoint: TP-015 wire spawn_mode into generateOrchestratorYaml via vars * checkpoint: TP-015 tmux guidance message with preset/runner-only/dry-run handling * checkpoint: TP-015 Step 3 verified and complete — tmux/spawn mode detection * checkpoint: TP-015 Step 3 verification complete — all tmux detection behaviors verified * hydrate: expand Step 4 checkboxes based on R009 review * checkpoint: TP-015 config repo selection prompt and workspace vars gathering verified * checkpoint: TP-015 .taskplane/ scaffolding in config repo verified * checkpoint: TP-015 gitignore enforcement in config repo verified * checkpoint: TP-015 pointer file creation verified * checkpoint: TP-015 dry-run/preset/force compatibility for workspace mode verified * checkpoint: TP-015 Step 4 complete — workspace mode init (Scenario C) * hydrate: add R010 revision items to Step 4 * checkpoint: TP-015 R010 fix workspace gitignore prefix and tracked-artifact scanning * checkpoint: TP-015 R010 include .gitignore in workspace auto-commit staging * checkpoint: TP-015 R010 fix overwrite confirmation skipIfExists + execFileSync for git ls-files * hydrate: expand Step 5 checkboxes for Scenario D * feat(TP-015): implement Scenario D workspace join — pointer-only early return * checkpoint: TP-015 pointer idempotency implemented * checkpoint: TP-015 user confirmation messaging implemented * checkpoint: TP-015 Step 5 complete — Scenario D workspace join verified * hydrate: TP-015 add R012 revision items to Step 5 * checkpoint: TP-015 R012 fix --force bypassing Scenario D control flow * checkpoint: TP-015 R012 wrap pointer JSON.parse in try/catch, Step 5 complete * hydrate: expand Step 6 checkboxes per R013 review * checkpoint: TP-015 baseline validation gates pass (478 tests, help, doctor) * checkpoint: TP-015 Scenario A dry-run verified (repo mode, all presets) * checkpoint: TP-015 all three presets verified (minimal, full, runner-only) * checkpoint: TP-015 YAML output verified alongside JSON (both repo and workspace modes) * feat(TP-015): add init-mode-detection tests (34 tests) and fix Windows 8.3 path bug in isGitRepoRoot * checkpoint: TP-015 Step 6 complete — all testing & verification done * hydrate: TP-015 add R014 revision items to Step 6 * checkpoint: TP-015 fix mirrored isGitRepoRoot() in test to match production realpathSync.native normalization, add regression test 1.8 * checkpoint: TP-015 full vitest suite passes (19 files, 513 tests) after R014 fixes * checkpoint: TP-015 Step 6 complete, all R014 revision items addressed * hydrate: expand Step 7 checkboxes per R015 review * docs(TP-015): update install tutorial for init-v2 flow * docs(TP-015): update commands.md init reference for mode detection and new behaviors * docs(TP-015): update README quickstart with mode detection and gitignore note * checkpoint: TP-015 final verification — 513 tests pass, CLI help/doctor OK, all commits use TP-015 prefix * checkpoint: TP-015 task artifacts (.DONE, STATUS.md) * feat(TP-015): task complete — .DONE created, all steps finished * hydrate: TP-018 expand Step 0 checkboxes per R001 review * checkpoint: TP-018 read pi ctx.ui API capabilities * checkpoint: TP-018 read config schema from TP-014 * checkpoint: TP-018 reviewed Layer 2 allowlist and preferences boundary * hydrate: TP-016 expand Step 0 checkboxes per R001 review * checkpoint: TP-018 reviewed config root/path semantics in workspace mode * checkpoint: TP-018 reviewed config root/path semantics in workspace mode * checkpoint: TP-018 reviewed JSON-first + YAML fallback write-back behavior * checkpoint: TP-018 reviewed JSON-first + YAML fallback for write-back alignment * checkpoint: TP-016 inventoried all config/agent/state resolution call sites * checkpoint: TP-016 resolver inventory table complete * checkpoint: TP-018 preflight findings - field/source inventory with UI control types and layer mapping * checkpoint: TP-016 documented mode matrix for pointer resolution * checkpoint: TP-016 mode matrix documented * checkpoint: TP-016 Step 0 preflight complete — resolution map, mode matrix, env-var precedence documented * checkpoint: TP-018 reviewed JSON-first + YAML fallback behavior (already done) * checkpoint: TP-016 env-var precedence documented, Step 0 complete * hydrate: TP-018 add R002 revision items to Step 0 * checkpoint: TP-016 R002 revisions - unified pointer failure semantics, fixed STATUS.md formatting * checkpoint: TP-018 R002 fixes — added missing fields (worker.spawnMode, context.maxWorkerMinutes, preWarm.autoDetect), CONTEXT.md review, schema coverage checklist * checkpoint: TP-018 Step 0 R002 revisions complete — field inventory updated with missing fields and schema coverage checklist * checkpoint: TP-016 R002 revision - unified pointer failure semantics, fixed function names, deduped log, merged mode matrices * hydrate: TP-018 expand Step 1 checkboxes per R003 review * hydrate: TP-016 expand Step 1 checkboxes per R003 review * checkpoint: TP-018 section taxonomy, ordering, field-to-section assignment, and UI controls documented * checkpoint: TP-018 source-indicator behavior rules documented for all layer combinations * checkpoint: TP-018 schema coverage validated, Step 1 complete * checkpoint: TP-016 resolvePointer() function implemented in workspace.ts * checkpoint: TP-016 return contract verified - config/agent follow pointer, state stays at workspace .pi/ * checkpoint: TP-016 Step 1 complete - PointerResolution type and resolvePointer() implemented * hydrate: add R003 revision items to Step 1 * checkpoint: TP-016 Step 1 confirmed complete on re-entry * checkpoint: TP-018 Step 1 complete - R003 revisions applied (worker.spawnMode L1 fix, field contract table, non-editable surfacing) * hydrate: TP-018 add R004 revision items to Step 1 * checkpoint: TP-018 R004 fix - consolidated canonical navigation map (12 sections) * checkpoint: TP-018 R004 fix - aligned source-badge rules with type-specific merge semantics * hydrate: TP-016 add R004 revision items to Step 1 * checkpoint: TP-016 fix config_path containment for Windows absolute paths and add defense-in-depth relative() check * checkpoint: TP-018 R004 fix - canonical source rule matrix, spawnMode enum disambiguation * hydrate: TP-018 expand Step 2 checkboxes with R005 items * checkpoint: TP-016 add resolvePointer test suite (6.x) with 18 tests covering all failure modes + valid resolution * hydrate: TP-016 expand Step 2 checkboxes per R005 review * checkpoint: TP-018 create settings-tui.ts with section navigation, field display, source badges, and validation * checkpoint: TP-016 thread pointer into resolveConfigRoot and loadProjectConfig * checkpoint: TP-016 thread pointer into loadAgentDef for workspace agent resolution * feat(TP-018): register /settings command with section navigation TUI * checkpoint: TP-016 verified repo mode parity — all 576 tests pass * checkpoint: TP-018 Step 2 complete - /settings command with TUI, source badges, validation * checkpoint: TP-018 Step 2 complete - settings-tui.ts, /settings command, all tests pass (540/540) * checkpoint: TP-016 Step 2 tests for pointer-threaded config resolution (5.x series in project-config-loader.test.ts) * checkpoint: TP-016 Step 2 complete * checkpoint: TP-016 Step 2 verified complete — all 593 tests passing * hydrate: TP-018 add R006 revision items to Step 2 * checkpoint: TP-018 R006 fix #1 - use workspaceRoot for /settings config reads * hydrate: TP-016 add R006 revision items to Step 2 * hydrate: TP-018 add R006 revision items for Step 2 * checkpoint: TP-018 R006 fix #2 - dynamic Advanced section discovery from schema * checkpoint: TP-018 R006 fixes verified - all 540 tests pass, Step 2 complete * checkpoint: TP-016 fix dual-layout config file resolution (standard .pi/ and flat pointer layout) * checkpoint: TP-016 surface pointer warnings to stderr (once per session) * checkpoint: TP-018 R006 fixes #3 (source detection type guards) and #4 (number validation > 0), dynamic JSON-only footer * hydrate: TP-018 expand Step 3 checkboxes per R007 review * checkpoint: TP-016 consolidate test suites, add flat-layout pointer tests, all 591 tests green * checkpoint: TP-018 R006 fix #5 — add 58 unit tests for settings-tui pure functions * checkpoint: TP-018 implement write-back destination matrix (L1/L2/L1+L2) * checkpoint: TP-018 L1 writes to resolveConfigRoot JSON with atomic write pattern * checkpoint: TP-018 L2 writes to resolveUserPreferencesPath with mkdir+atomic * checkpoint: TP-016 add 6.x agent resolution + warning surfacing tests for Step 2 R006 coverage * hydrate: expand Step 3 checkboxes with R007 revision items * checkpoint: TP-018 confirmation gate already implemented in showSectionSettingsLoop * feat(TP-018): R007 fix — YAML-only bootstrap writes full L1 snapshot via loadLayer1Config * hydrate: TP-016 expand Step 3 checkboxes based on R007 review * checkpoint: TP-018 Step 3 complete — all write-back items done, 598 tests pass * feat(TP-018): fix ctx.ui.select/confirm API signatures and deep-clone safety * checkpoint: TP-016 buildExecutionContext already resolves pointer and passes configRoot to loaders * checkpoint: TP-016 spawnMergeAgent already uses pointer agentRoot, state files at stateRoot * checkpoint: TP-016 pointer warning already logged at orchestrator startup via buildExecutionContext * checkpoint: TP-016 verified state/sidecar paths invariant - never follow pointer * hydrate: TP-018 add R008 revision items to Step 3 * checkpoint: TP-018 R008 fix #1 — malformed JSON throws explicit error (already implemented), fix stale module header * checkpoint: TP-018 R008 fix #2 — unlinkSync already in place for temp-file cleanup * checkpoint: TP-018 R008 fix #3 — add 30 unit tests for write-back helpers (coerceValueForWrite, writeProjectConfigField, writeUserPreference) * checkpoint: TP-016 fix and deduplicate orchestrator pointer tests, all 597 tests passing * hydrate: expand Step 4 checkboxes per R009 review * checkpoint: TP-016 Step 3 complete - orchestrator pointer threading verified with 11 new tests * checkpoint: TP-018 add YAML source-badge tests (16.x series — JSON-only, YAML-only, JSON+YAML precedence) * checkpoint: TP-018 add zero-mutation path tests (17.x series — cancel/decline confirmation) * checkpoint: TP-018 add Advanced section discoverability tests (18.x series) * hydrate: TP-016 expand Step 4 checkboxes based on R009 review * checkpoint: TP-018 remove duplicate test sections (16-18.x) from prior iteration * checkpoint: TP-016 dashboard state paths verified as pointer-invariant, added clarifying comments * checkpoint: TP-018 Step 4 complete — 682 tests pass (54 new: YAML source detection, zero-mutation paths, Advanced discoverability) * checkpoint: TP-016 verified STATUS.md/task-folder resolution is pointer-independent in dashboard * checkpoint: TP-016 Step 4 complete — dashboard pointer threading verified * hydrate: TP-016 add R008 revision items to Step 3 * hydrate: add R010 revision items to Step 4 * feat(TP-016): thread workspaceRoot into resumeOrchBatch for consistent stateRoot * feat(TP-018): extract resolveWriteAction decision logic, replace tautological tests with real decision-tree tests * checkpoint: TP-018 Step 4 complete - fix test count, mark R010 revisions done * feat(TP-016): replace source-text test assertions with behavioral state-root consistency tests * hydrate: expand Step 5 checkboxes for TP-016 * hydrate: TP-018 expand Step 5 checkboxes per R011 review * checkpoint: TP-016 verified test 7.11 is behavioral, Step 3 R008 already closed * checkpoint: TP-018 add /settings to commands reference * checkpoint: TP-016 verified pointer failure/parity matrix test coverage * checkpoint: TP-018 add /settings to README command table * checkpoint: TP-018 add /settings mention to install tutorial * checkpoint: TP-016 verified integration split invariant test coverage * checkpoint: TP-018 normalize STATUS.md top-level status field * checkpoint: TP-016 Step 5 complete — all 609 tests passing * checkpoint: TP-018 task artifacts (.DONE, STATUS.md) * feat(TP-018): complete /settings TUI command — docs, README, .DONE * hydrate: TP-018 add R012 revision items to Step 5 * hydrate: TP-016 add R012 revision items to Step 5 * hydrate: TP-016 add R012 revision items to Step 5 * checkpoint: TP-018 fix /settings common responses to match actual error paths * checkpoint: TP-018 update commands.md intro and move Configuration Commands above CLI * checkpoint: TP-018 add Example block to /settings command reference * docs(TP-018): refine /settings Advanced description and Common responses per R012 review * checkpoint: TP-016 R012 replace signature tests 7.11/7.12 with behavioral state-root tests * checkpoint: TP-016 R012 full test suite passing (609 tests) * checkpoint: TP-016 R012 — add VERIFICATION.md with full test coverage matrix for Step 5 * hydrate: TP-016 expand Step 6 checkboxes per R013 review * checkpoint: TP-016 architecture doc impact check - no update needed * checkpoint: TP-016 final acceptance reconciliation - all criteria met * checkpoint: TP-016 task artifacts (.DONE, STATUS.md) * checkpoint: TP-016 .DONE created - task complete * feat: configurable merge agent timeout, default 10 min (was 5 min) - OrchestratorConfig.merge.timeout_minutes field (default: 10) - waitForMergeResult() uses config value instead of hardcoded constant - Exposed in /settings TUI under Merge section - Updated task-orchestrator.yaml template Fixes merge agent timeouts on large batches.
HenryLach
added a commit
that referenced
this pull request
Mar 18, 2026
…9) (#53) * hydrate: expand Step 4 checkboxes per R009 review * docs(TP-014): add JSON config section to task-runner.yaml.md reference * docs(TP-014): add JSON config section to task-orchestrator.yaml.md reference * checkpoint: TP-014 install.md checked - no update needed, YAML scaffolding references still correct * checkpoint: TP-014 task artifacts (.DONE, STATUS.md) * feat(TP-014): complete Step 4 - documentation & delivery, .DONE created * hydrate: TP-017 expand Step 0 checkboxes per R001 review * hydrate: TP-015 expand Step 0 checkboxes per R001 review * checkpoint: TP-017 preflight path convention confirmed with PI_CODING_AGENT_DIR override and cross-platform resolution * checkpoint: TP-015 read current cmdInit() implementation * checkpoint: TP-015 read spec auto-detection and gitignore sections * checkpoint: TP-015 verify spec reachability (found in main repo .pi/local/docs/) * checkpoint: TP-015 verify TP-014 config loader/schema contract * checkpoint: TP-015 record current cmdInit() behavior to preserve * checkpoint: TP-015 identify downstream validation (no init-specific tests exist) * checkpoint: TP-015 Step 0 Preflight complete * checkpoint: TP-015 Step 0 preflight complete - all items verified * hydrate: TP-017 expand Step 1 checkboxes with R002 review feedback * checkpoint: TP-017 preferences schema, allowlist, and types defined in preferences.ts * checkpoint: TP-017 loadUserPreferences and resolveUserPreferencesPath implemented * hydrate: TP-015 add R002 revision items to Step 0 * checkpoint: TP-015 revert TP-014 file changes from TP-015 commits (R002 fix) * checkpoint: TP-015 fix malformed STATUS.md tables (R002 revision) * checkpoint: TP-015 Step 0 complete, orchestrator advancing to Step 1 * checkpoint: TP-017 merge logic updated with mergeModel, dashboardPort, empty-string semantics * checkpoint: TP-017 Step 1 complete — exports wired, all 434 tests pass * checkpoint: TP-017 Step 1 verified complete — all checkboxes done, 434 tests pass * hydrate: expand Step 1 checkboxes per R003 review * hydrate: TP-017 expand Step 2 checkboxes per R003 review * checkpoint: TP-015 detection logic implemented (isGitRepo, findSubdirectoryGitRepos, detectInitMode) * checkpoint: TP-015 error path verified (no git repo, no subdirectory repos) * checkpoint: TP-015 ambiguous case handled (prompt + preset bypass) * checkpoint: TP-015 Scenario B already-initialized detection verified * checkpoint: TP-017 tests for path resolution, loading edge cases, unknown-key dropping * checkpoint: TP-017 Layer 2 guardrails tests confirmed * checkpoint: TP-017 merge integration tests confirmed (JSON + YAML backed, e2e) * checkpoint: TP-017 Step 2 complete — full test suite passes (17 files, 461 tests) * checkpoint: TP-015 all mode detection branches validated (repo, workspace, ambiguous, error) * checkpoint: TP-015 Step 1 Mode Auto-Detection complete * hydrate: TP-017 expand Step 3 checkboxes per R004 review * checkpoint: TP-017 task artifacts (.DONE, STATUS.md) * checkpoint: TP-017 verified completion criteria * checkpoint: TP-017 confirmed no docs need updating * checkpoint: TP-017 .DONE created * feat(TP-017): user preferences layer complete * hydrate: TP-015 add R004 revision items to Step 1 * checkpoint: TP-017 Step 3 complete — all items verified * checkpoint: TP-015 fix findSubdirectoryGitRepos to use isGitRepoRoot * checkpoint: TP-015 fix existingConfigPath mismatch for ambiguous→workspace resolution * checkpoint: TP-015 Step 1 complete — all R004 revision items addressed * hydrate: expand Step 2 checkboxes based on R005 review * checkpoint: TP-015 define gitignore constants and reusable helpers * checkpoint: TP-015 ensureGitignoreEntries and detectAndOfferUntrackArtifacts helpers implemented * checkpoint: TP-015 integrate gitignore enforcement into cmdInit repo-mode flow * checkpoint: TP-015 tracked-artifact detection and git rm --cached offer implemented * checkpoint: TP-015 Step 2 complete — gitignore enforcement with dry-run output * checkpoint: TP-015 Step 2 verified complete — all gitignore enforcement items done * hydrate: TP-015 add R006 revision items to Step 2 * hydrate: TP-015 add R006 revision items to Step 2 * checkpoint: TP-015 fix patternToRegex directory prefix matching and switch to execFileSync * checkpoint: TP-015 remove dead buildGitignoreBlock function * checkpoint: TP-015 add gitignore pattern matching tests (18 tests), Step 2 R006 revisions complete * feat(TP-015): R006 extract gitignore patterns to testable module with 26 tests * hydrate: TP-015 expand Step 3 checkboxes based on R007 review * checkpoint: TP-015 implement detectSpawnMode() reusable helper * checkpoint: TP-015 wire spawn_mode into generateOrchestratorYaml via vars * checkpoint: TP-015 tmux guidance message with preset/runner-only/dry-run handling * checkpoint: TP-015 Step 3 verified and complete — tmux/spawn mode detection * checkpoint: TP-015 Step 3 verification complete — all tmux detection behaviors verified * hydrate: expand Step 4 checkboxes based on R009 review * checkpoint: TP-015 config repo selection prompt and workspace vars gathering verified * checkpoint: TP-015 .taskplane/ scaffolding in config repo verified * checkpoint: TP-015 gitignore enforcement in config repo verified * checkpoint: TP-015 pointer file creation verified * checkpoint: TP-015 dry-run/preset/force compatibility for workspace mode verified * checkpoint: TP-015 Step 4 complete — workspace mode init (Scenario C) * hydrate: add R010 revision items to Step 4 * checkpoint: TP-015 R010 fix workspace gitignore prefix and tracked-artifact scanning * checkpoint: TP-015 R010 include .gitignore in workspace auto-commit staging * checkpoint: TP-015 R010 fix overwrite confirmation skipIfExists + execFileSync for git ls-files * hydrate: expand Step 5 checkboxes for Scenario D * feat(TP-015): implement Scenario D workspace join — pointer-only early return * checkpoint: TP-015 pointer idempotency implemented * checkpoint: TP-015 user confirmation messaging implemented * checkpoint: TP-015 Step 5 complete — Scenario D workspace join verified * hydrate: TP-015 add R012 revision items to Step 5 * checkpoint: TP-015 R012 fix --force bypassing Scenario D control flow * checkpoint: TP-015 R012 wrap pointer JSON.parse in try/catch, Step 5 complete * hydrate: expand Step 6 checkboxes per R013 review * checkpoint: TP-015 baseline validation gates pass (478 tests, help, doctor) * checkpoint: TP-015 Scenario A dry-run verified (repo mode, all presets) * checkpoint: TP-015 all three presets verified (minimal, full, runner-only) * checkpoint: TP-015 YAML output verified alongside JSON (both repo and workspace modes) * feat(TP-015): add init-mode-detection tests (34 tests) and fix Windows 8.3 path bug in isGitRepoRoot * checkpoint: TP-015 Step 6 complete — all testing & verification done * hydrate: TP-015 add R014 revision items to Step 6 * checkpoint: TP-015 fix mirrored isGitRepoRoot() in test to match production realpathSync.native normalization, add regression test 1.8 * checkpoint: TP-015 full vitest suite passes (19 files, 513 tests) after R014 fixes * checkpoint: TP-015 Step 6 complete, all R014 revision items addressed * hydrate: expand Step 7 checkboxes per R015 review * docs(TP-015): update install tutorial for init-v2 flow * docs(TP-015): update commands.md init reference for mode detection and new behaviors * docs(TP-015): update README quickstart with mode detection and gitignore note * checkpoint: TP-015 final verification — 513 tests pass, CLI help/doctor OK, all commits use TP-015 prefix * checkpoint: TP-015 task artifacts (.DONE, STATUS.md) * feat(TP-015): task complete — .DONE created, all steps finished * hydrate: TP-018 expand Step 0 checkboxes per R001 review * checkpoint: TP-018 read pi ctx.ui API capabilities * checkpoint: TP-018 read config schema from TP-014 * checkpoint: TP-018 reviewed Layer 2 allowlist and preferences boundary * hydrate: TP-016 expand Step 0 checkboxes per R001 review * checkpoint: TP-018 reviewed config root/path semantics in workspace mode * checkpoint: TP-018 reviewed config root/path semantics in workspace mode * checkpoint: TP-018 reviewed JSON-first + YAML fallback write-back behavior * checkpoint: TP-018 reviewed JSON-first + YAML fallback for write-back alignment * checkpoint: TP-016 inventoried all config/agent/state resolution call sites * checkpoint: TP-016 resolver inventory table complete * checkpoint: TP-018 preflight findings - field/source inventory with UI control types and layer mapping * checkpoint: TP-016 documented mode matrix for pointer resolution * checkpoint: TP-016 mode matrix documented * checkpoint: TP-016 Step 0 preflight complete — resolution map, mode matrix, env-var precedence documented * checkpoint: TP-018 reviewed JSON-first + YAML fallback behavior (already done) * checkpoint: TP-016 env-var precedence documented, Step 0 complete * hydrate: TP-018 add R002 revision items to Step 0 * checkpoint: TP-016 R002 revisions - unified pointer failure semantics, fixed STATUS.md formatting * checkpoint: TP-018 R002 fixes — added missing fields (worker.spawnMode, context.maxWorkerMinutes, preWarm.autoDetect), CONTEXT.md review, schema coverage checklist * checkpoint: TP-018 Step 0 R002 revisions complete — field inventory updated with missing fields and schema coverage checklist * checkpoint: TP-016 R002 revision - unified pointer failure semantics, fixed function names, deduped log, merged mode matrices * hydrate: TP-018 expand Step 1 checkboxes per R003 review * hydrate: TP-016 expand Step 1 checkboxes per R003 review * checkpoint: TP-018 section taxonomy, ordering, field-to-section assignment, and UI controls documented * checkpoint: TP-018 source-indicator behavior rules documented for all layer combinations * checkpoint: TP-018 schema coverage validated, Step 1 complete * checkpoint: TP-016 resolvePointer() function implemented in workspace.ts * checkpoint: TP-016 return contract verified - config/agent follow pointer, state stays at workspace .pi/ * checkpoint: TP-016 Step 1 complete - PointerResolution type and resolvePointer() implemented * hydrate: add R003 revision items to Step 1 * checkpoint: TP-016 Step 1 confirmed complete on re-entry * checkpoint: TP-018 Step 1 complete - R003 revisions applied (worker.spawnMode L1 fix, field contract table, non-editable surfacing) * hydrate: TP-018 add R004 revision items to Step 1 * checkpoint: TP-018 R004 fix - consolidated canonical navigation map (12 sections) * checkpoint: TP-018 R004 fix - aligned source-badge rules with type-specific merge semantics * hydrate: TP-016 add R004 revision items to Step 1 * checkpoint: TP-016 fix config_path containment for Windows absolute paths and add defense-in-depth relative() check * checkpoint: TP-018 R004 fix - canonical source rule matrix, spawnMode enum disambiguation * hydrate: TP-018 expand Step 2 checkboxes with R005 items * checkpoint: TP-016 add resolvePointer test suite (6.x) with 18 tests covering all failure modes + valid resolution * hydrate: TP-016 expand Step 2 checkboxes per R005 review * checkpoint: TP-018 create settings-tui.ts with section navigation, field display, source badges, and validation * checkpoint: TP-016 thread pointer into resolveConfigRoot and loadProjectConfig * checkpoint: TP-016 thread pointer into loadAgentDef for workspace agent resolution * feat(TP-018): register /settings command with section navigation TUI * checkpoint: TP-016 verified repo mode parity — all 576 tests pass * checkpoint: TP-018 Step 2 complete - /settings command with TUI, source badges, validation * checkpoint: TP-018 Step 2 complete - settings-tui.ts, /settings command, all tests pass (540/540) * checkpoint: TP-016 Step 2 tests for pointer-threaded config resolution (5.x series in project-config-loader.test.ts) * checkpoint: TP-016 Step 2 complete * checkpoint: TP-016 Step 2 verified complete — all 593 tests passing * hydrate: TP-018 add R006 revision items to Step 2 * checkpoint: TP-018 R006 fix #1 - use workspaceRoot for /settings config reads * hydrate: TP-016 add R006 revision items to Step 2 * hydrate: TP-018 add R006 revision items for Step 2 * checkpoint: TP-018 R006 fix #2 - dynamic Advanced section discovery from schema * checkpoint: TP-018 R006 fixes verified - all 540 tests pass, Step 2 complete * checkpoint: TP-016 fix dual-layout config file resolution (standard .pi/ and flat pointer layout) * checkpoint: TP-016 surface pointer warnings to stderr (once per session) * checkpoint: TP-018 R006 fixes #3 (source detection type guards) and #4 (number validation > 0), dynamic JSON-only footer * hydrate: TP-018 expand Step 3 checkboxes per R007 review * checkpoint: TP-016 consolidate test suites, add flat-layout pointer tests, all 591 tests green * checkpoint: TP-018 R006 fix #5 — add 58 unit tests for settings-tui pure functions * checkpoint: TP-018 implement write-back destination matrix (L1/L2/L1+L2) * checkpoint: TP-018 L1 writes to resolveConfigRoot JSON with atomic write pattern * checkpoint: TP-018 L2 writes to resolveUserPreferencesPath with mkdir+atomic * checkpoint: TP-016 add 6.x agent resolution + warning surfacing tests for Step 2 R006 coverage * hydrate: expand Step 3 checkboxes with R007 revision items * checkpoint: TP-018 confirmation gate already implemented in showSectionSettingsLoop * feat(TP-018): R007 fix — YAML-only bootstrap writes full L1 snapshot via loadLayer1Config * hydrate: TP-016 expand Step 3 checkboxes based on R007 review * checkpoint: TP-018 Step 3 complete — all write-back items done, 598 tests pass * feat(TP-018): fix ctx.ui.select/confirm API signatures and deep-clone safety * checkpoint: TP-016 buildExecutionContext already resolves pointer and passes configRoot to loaders * checkpoint: TP-016 spawnMergeAgent already uses pointer agentRoot, state files at stateRoot * checkpoint: TP-016 pointer warning already logged at orchestrator startup via buildExecutionContext * checkpoint: TP-016 verified state/sidecar paths invariant - never follow pointer * hydrate: TP-018 add R008 revision items to Step 3 * checkpoint: TP-018 R008 fix #1 — malformed JSON throws explicit error (already implemented), fix stale module header * checkpoint: TP-018 R008 fix #2 — unlinkSync already in place for temp-file cleanup * checkpoint: TP-018 R008 fix #3 — add 30 unit tests for write-back helpers (coerceValueForWrite, writeProjectConfigField, writeUserPreference) * checkpoint: TP-016 fix and deduplicate orchestrator pointer tests, all 597 tests passing * hydrate: expand Step 4 checkboxes per R009 review * checkpoint: TP-016 Step 3 complete - orchestrator pointer threading verified with 11 new tests * checkpoint: TP-018 add YAML source-badge tests (16.x series — JSON-only, YAML-only, JSON+YAML precedence) * checkpoint: TP-018 add zero-mutation path tests (17.x series — cancel/decline confirmation) * checkpoint: TP-018 add Advanced section discoverability tests (18.x series) * hydrate: TP-016 expand Step 4 checkboxes based on R009 review * checkpoint: TP-018 remove duplicate test sections (16-18.x) from prior iteration * checkpoint: TP-016 dashboard state paths verified as pointer-invariant, added clarifying comments * checkpoint: TP-018 Step 4 complete — 682 tests pass (54 new: YAML source detection, zero-mutation paths, Advanced discoverability) * checkpoint: TP-016 verified STATUS.md/task-folder resolution is pointer-independent in dashboard * checkpoint: TP-016 Step 4 complete — dashboard pointer threading verified * hydrate: TP-016 add R008 revision items to Step 3 * hydrate: add R010 revision items to Step 4 * feat(TP-016): thread workspaceRoot into resumeOrchBatch for consistent stateRoot * feat(TP-018): extract resolveWriteAction decision logic, replace tautological tests with real decision-tree tests * checkpoint: TP-018 Step 4 complete - fix test count, mark R010 revisions done * feat(TP-016): replace source-text test assertions with behavioral state-root consistency tests * hydrate: expand Step 5 checkboxes for TP-016 * hydrate: TP-018 expand Step 5 checkboxes per R011 review * checkpoint: TP-016 verified test 7.11 is behavioral, Step 3 R008 already closed * checkpoint: TP-018 add /settings to commands reference * checkpoint: TP-016 verified pointer failure/parity matrix test coverage * checkpoint: TP-018 add /settings to README command table * checkpoint: TP-018 add /settings mention to install tutorial * checkpoint: TP-016 verified integration split invariant test coverage * checkpoint: TP-018 normalize STATUS.md top-level status field * checkpoint: TP-016 Step 5 complete — all 609 tests passing * checkpoint: TP-018 task artifacts (.DONE, STATUS.md) * feat(TP-018): complete /settings TUI command — docs, README, .DONE * hydrate: TP-018 add R012 revision items to Step 5 * hydrate: TP-016 add R012 revision items to Step 5 * hydrate: TP-016 add R012 revision items to Step 5 * checkpoint: TP-018 fix /settings common responses to match actual error paths * checkpoint: TP-018 update commands.md intro and move Configuration Commands above CLI * checkpoint: TP-018 add Example block to /settings command reference * docs(TP-018): refine /settings Advanced description and Common responses per R012 review * checkpoint: TP-016 R012 replace signature tests 7.11/7.12 with behavioral state-root tests * checkpoint: TP-016 R012 full test suite passing (609 tests) * checkpoint: TP-016 R012 — add VERIFICATION.md with full test coverage matrix for Step 5 * hydrate: TP-016 expand Step 6 checkboxes per R013 review * checkpoint: TP-016 architecture doc impact check - no update needed * checkpoint: TP-016 final acceptance reconciliation - all criteria met * checkpoint: TP-016 task artifacts (.DONE, STATUS.md) * checkpoint: TP-016 .DONE created - task complete * feat: configurable merge agent timeout, default 10 min (was 5 min) (#52) * checkpoint: TP-014 fix R006 revisions — explicit key mapping preserves record keys in YAML→camelCase and camelCase→snake_case adapters, resolveConfigRoot uses per-file precedence * checkpoint: TP-014 Step 2 R006 revisions complete - all 3 issues fixed * hydrate: expand Step 3 checkboxes per R007 review * test(TP-014): add project-config-loader tests — precedence/error matrix (50 tests passing) * checkpoint: TP-014 workspace root resolution tests verified * checkpoint: TP-014 key-preservation and adapter regression tests verified * checkpoint: TP-014 defaults non-mutation and backward-compat wrappers verified * checkpoint: TP-014 Step 3 complete — all 434 tests passing (16 files) * hydrate: add R008 revision items to Step 3 * test(TP-014): fix test 4.5 to exercise loadProjectConfig throw + default fallback per R008 * test(TP-014): fix test 4.5 to actually call task-runner loadConfig with malformed JSON * checkpoint: TP-014 Step 3 R008 revisions complete — all 434 tests passing * test(TP-014): clean up test 4.5 to use static import of loadConfig instead of require() * hydrate: expand Step 4 checkboxes per R009 review * docs(TP-014): add JSON config section to task-runner.yaml.md reference * docs(TP-014): add JSON config section to task-orchestrator.yaml.md reference * checkpoint: TP-014 install.md checked - no update needed, YAML scaffolding references still correct * checkpoint: TP-014 task artifacts (.DONE, STATUS.md) * feat(TP-014): complete Step 4 - documentation & delivery, .DONE created * hydrate: TP-017 expand Step 0 checkboxes per R001 review * hydrate: TP-015 expand Step 0 checkboxes per R001 review * checkpoint: TP-017 preflight path convention confirmed with PI_CODING_AGENT_DIR override and cross-platform resolution * checkpoint: TP-015 read current cmdInit() implementation * checkpoint: TP-015 read spec auto-detection and gitignore sections * checkpoint: TP-015 verify spec reachability (found in main repo .pi/local/docs/) * checkpoint: TP-015 verify TP-014 config loader/schema contract * checkpoint: TP-015 record current cmdInit() behavior to preserve * checkpoint: TP-015 identify downstream validation (no init-specific tests exist) * checkpoint: TP-015 Step 0 Preflight complete * checkpoint: TP-015 Step 0 preflight complete - all items verified * hydrate: TP-017 expand Step 1 checkboxes with R002 review feedback * checkpoint: TP-017 preferences schema, allowlist, and types defined in preferences.ts * checkpoint: TP-017 loadUserPreferences and resolveUserPreferencesPath implemented * hydrate: TP-015 add R002 revision items to Step 0 * checkpoint: TP-015 revert TP-014 file changes from TP-015 commits (R002 fix) * checkpoint: TP-015 fix malformed STATUS.md tables (R002 revision) * checkpoint: TP-015 Step 0 complete, orchestrator advancing to Step 1 * checkpoint: TP-017 merge logic updated with mergeModel, dashboardPort, empty-string semantics * checkpoint: TP-017 Step 1 complete — exports wired, all 434 tests pass * checkpoint: TP-017 Step 1 verified complete — all checkboxes done, 434 tests pass * hydrate: expand Step 1 checkboxes per R003 review * hydrate: TP-017 expand Step 2 checkboxes per R003 review * checkpoint: TP-015 detection logic implemented (isGitRepo, findSubdirectoryGitRepos, detectInitMode) * checkpoint: TP-015 error path verified (no git repo, no subdirectory repos) * checkpoint: TP-015 ambiguous case handled (prompt + preset bypass) * checkpoint: TP-015 Scenario B already-initialized detection verified * checkpoint: TP-017 tests for path resolution, loading edge cases, unknown-key dropping * checkpoint: TP-017 Layer 2 guardrails tests confirmed * checkpoint: TP-017 merge integration tests confirmed (JSON + YAML backed, e2e) * checkpoint: TP-017 Step 2 complete — full test suite passes (17 files, 461 tests) * checkpoint: TP-015 all mode detection branches validated (repo, workspace, ambiguous, error) * checkpoint: TP-015 Step 1 Mode Auto-Detection complete * hydrate: TP-017 expand Step 3 checkboxes per R004 review * checkpoint: TP-017 task artifacts (.DONE, STATUS.md) * checkpoint: TP-017 verified completion criteria * checkpoint: TP-017 confirmed no docs need updating * checkpoint: TP-017 .DONE created * feat(TP-017): user preferences layer complete * hydrate: TP-015 add R004 revision items to Step 1 * checkpoint: TP-017 Step 3 complete — all items verified * checkpoint: TP-015 fix findSubdirectoryGitRepos to use isGitRepoRoot * checkpoint: TP-015 fix existingConfigPath mismatch for ambiguous→workspace resolution * checkpoint: TP-015 Step 1 complete — all R004 revision items addressed * hydrate: expand Step 2 checkboxes based on R005 review * checkpoint: TP-015 define gitignore constants and reusable helpers * checkpoint: TP-015 ensureGitignoreEntries and detectAndOfferUntrackArtifacts helpers implemented * checkpoint: TP-015 integrate gitignore enforcement into cmdInit repo-mode flow * checkpoint: TP-015 tracked-artifact detection and git rm --cached offer implemented * checkpoint: TP-015 Step 2 complete — gitignore enforcement with dry-run output * checkpoint: TP-015 Step 2 verified complete — all gitignore enforcement items done * hydrate: TP-015 add R006 revision items to Step 2 * hydrate: TP-015 add R006 revision items to Step 2 * checkpoint: TP-015 fix patternToRegex directory prefix matching and switch to execFileSync * checkpoint: TP-015 remove dead buildGitignoreBlock function * checkpoint: TP-015 add gitignore pattern matching tests (18 tests), Step 2 R006 revisions complete * feat(TP-015): R006 extract gitignore patterns to testable module with 26 tests * hydrate: TP-015 expand Step 3 checkboxes based on R007 review * checkpoint: TP-015 implement detectSpawnMode() reusable helper * checkpoint: TP-015 wire spawn_mode into generateOrchestratorYaml via vars * checkpoint: TP-015 tmux guidance message with preset/runner-only/dry-run handling * checkpoint: TP-015 Step 3 verified and complete — tmux/spawn mode detection * checkpoint: TP-015 Step 3 verification complete — all tmux detection behaviors verified * hydrate: expand Step 4 checkboxes based on R009 review * checkpoint: TP-015 config repo selection prompt and workspace vars gathering verified * checkpoint: TP-015 .taskplane/ scaffolding in config repo verified * checkpoint: TP-015 gitignore enforcement in config repo verified * checkpoint: TP-015 pointer file creation verified * checkpoint: TP-015 dry-run/preset/force compatibility for workspace mode verified * checkpoint: TP-015 Step 4 complete — workspace mode init (Scenario C) * hydrate: add R010 revision items to Step 4 * checkpoint: TP-015 R010 fix workspace gitignore prefix and tracked-artifact scanning * checkpoint: TP-015 R010 include .gitignore in workspace auto-commit staging * checkpoint: TP-015 R010 fix overwrite confirmation skipIfExists + execFileSync for git ls-files * hydrate: expand Step 5 checkboxes for Scenario D * feat(TP-015): implement Scenario D workspace join — pointer-only early return * checkpoint: TP-015 pointer idempotency implemented * checkpoint: TP-015 user confirmation messaging implemented * checkpoint: TP-015 Step 5 complete — Scenario D workspace join verified * hydrate: TP-015 add R012 revision items to Step 5 * checkpoint: TP-015 R012 fix --force bypassing Scenario D control flow * checkpoint: TP-015 R012 wrap pointer JSON.parse in try/catch, Step 5 complete * hydrate: expand Step 6 checkboxes per R013 review * checkpoint: TP-015 baseline validation gates pass (478 tests, help, doctor) * checkpoint: TP-015 Scenario A dry-run verified (repo mode, all presets) * checkpoint: TP-015 all three presets verified (minimal, full, runner-only) * checkpoint: TP-015 YAML output verified alongside JSON (both repo and workspace modes) * feat(TP-015): add init-mode-detection tests (34 tests) and fix Windows 8.3 path bug in isGitRepoRoot * checkpoint: TP-015 Step 6 complete — all testing & verification done * hydrate: TP-015 add R014 revision items to Step 6 * checkpoint: TP-015 fix mirrored isGitRepoRoot() in test to match production realpathSync.native normalization, add regression test 1.8 * checkpoint: TP-015 full vitest suite passes (19 files, 513 tests) after R014 fixes * checkpoint: TP-015 Step 6 complete, all R014 revision items addressed * hydrate: expand Step 7 checkboxes per R015 review * docs(TP-015): update install tutorial for init-v2 flow * docs(TP-015): update commands.md init reference for mode detection and new behaviors * docs(TP-015): update README quickstart with mode detection and gitignore note * checkpoint: TP-015 final verification — 513 tests pass, CLI help/doctor OK, all commits use TP-015 prefix * checkpoint: TP-015 task artifacts (.DONE, STATUS.md) * feat(TP-015): task complete — .DONE created, all steps finished * hydrate: TP-018 expand Step 0 checkboxes per R001 review * checkpoint: TP-018 read pi ctx.ui API capabilities * checkpoint: TP-018 read config schema from TP-014 * checkpoint: TP-018 reviewed Layer 2 allowlist and preferences boundary * hydrate: TP-016 expand Step 0 checkboxes per R001 review * checkpoint: TP-018 reviewed config root/path semantics in workspace mode * checkpoint: TP-018 reviewed config root/path semantics in workspace mode * checkpoint: TP-018 reviewed JSON-first + YAML fallback write-back behavior * checkpoint: TP-018 reviewed JSON-first + YAML fallback for write-back alignment * checkpoint: TP-016 inventoried all config/agent/state resolution call sites * checkpoint: TP-016 resolver inventory table complete * checkpoint: TP-018 preflight findings - field/source inventory with UI control types and layer mapping * checkpoint: TP-016 documented mode matrix for pointer resolution * checkpoint: TP-016 mode matrix documented * checkpoint: TP-016 Step 0 preflight complete — resolution map, mode matrix, env-var precedence documented * checkpoint: TP-018 reviewed JSON-first + YAML fallback behavior (already done) * checkpoint: TP-016 env-var precedence documented, Step 0 complete * hydrate: TP-018 add R002 revision items to Step 0 * checkpoint: TP-016 R002 revisions - unified pointer failure semantics, fixed STATUS.md formatting * checkpoint: TP-018 R002 fixes — added missing fields (worker.spawnMode, context.maxWorkerMinutes, preWarm.autoDetect), CONTEXT.md review, schema coverage checklist * checkpoint: TP-018 Step 0 R002 revisions complete — field inventory updated with missing fields and schema coverage checklist * checkpoint: TP-016 R002 revision - unified pointer failure semantics, fixed function names, deduped log, merged mode matrices * hydrate: TP-018 expand Step 1 checkboxes per R003 review * hydrate: TP-016 expand Step 1 checkboxes per R003 review * checkpoint: TP-018 section taxonomy, ordering, field-to-section assignment, and UI controls documented * checkpoint: TP-018 source-indicator behavior rules documented for all layer combinations * checkpoint: TP-018 schema coverage validated, Step 1 complete * checkpoint: TP-016 resolvePointer() function implemented in workspace.ts * checkpoint: TP-016 return contract verified - config/agent follow pointer, state stays at workspace .pi/ * checkpoint: TP-016 Step 1 complete - PointerResolution type and resolvePointer() implemented * hydrate: add R003 revision items to Step 1 * checkpoint: TP-016 Step 1 confirmed complete on re-entry * checkpoint: TP-018 Step 1 complete - R003 revisions applied (worker.spawnMode L1 fix, field contract table, non-editable surfacing) * hydrate: TP-018 add R004 revision items to Step 1 * checkpoint: TP-018 R004 fix - consolidated canonical navigation map (12 sections) * checkpoint: TP-018 R004 fix - aligned source-badge rules with type-specific merge semantics * hydrate: TP-016 add R004 revision items to Step 1 * checkpoint: TP-016 fix config_path containment for Windows absolute paths and add defense-in-depth relative() check * checkpoint: TP-018 R004 fix - canonical source rule matrix, spawnMode enum disambiguation * hydrate: TP-018 expand Step 2 checkboxes with R005 items * checkpoint: TP-016 add resolvePointer test suite (6.x) with 18 tests covering all failure modes + valid resolution * hydrate: TP-016 expand Step 2 checkboxes per R005 review * checkpoint: TP-018 create settings-tui.ts with section navigation, field display, source badges, and validation * checkpoint: TP-016 thread pointer into resolveConfigRoot and loadProjectConfig * checkpoint: TP-016 thread pointer into loadAgentDef for workspace agent resolution * feat(TP-018): register /settings command with section navigation TUI * checkpoint: TP-016 verified repo mode parity — all 576 tests pass * checkpoint: TP-018 Step 2 complete - /settings command with TUI, source badges, validation * checkpoint: TP-018 Step 2 complete - settings-tui.ts, /settings command, all tests pass (540/540) * checkpoint: TP-016 Step 2 tests for pointer-threaded config resolution (5.x series in project-config-loader.test.ts) * checkpoint: TP-016 Step 2 complete * checkpoint: TP-016 Step 2 verified complete — all 593 tests passing * hydrate: TP-018 add R006 revision items to Step 2 * checkpoint: TP-018 R006 fix #1 - use workspaceRoot for /settings config reads * hydrate: TP-016 add R006 revision items to Step 2 * hydrate: TP-018 add R006 revision items for Step 2 * checkpoint: TP-018 R006 fix #2 - dynamic Advanced section discovery from schema * checkpoint: TP-018 R006 fixes verified - all 540 tests pass, Step 2 complete * checkpoint: TP-016 fix dual-layout config file resolution (standard .pi/ and flat pointer layout) * checkpoint: TP-016 surface pointer warnings to stderr (once per session) * checkpoint: TP-018 R006 fixes #3 (source detection type guards) and #4 (number validation > 0), dynamic JSON-only footer * hydrate: TP-018 expand Step 3 checkboxes per R007 review * checkpoint: TP-016 consolidate test suites, add flat-layout pointer tests, all 591 tests green * checkpoint: TP-018 R006 fix #5 — add 58 unit tests for settings-tui pure functions * checkpoint: TP-018 implement write-back destination matrix (L1/L2/L1+L2) * checkpoint: TP-018 L1 writes to resolveConfigRoot JSON with atomic write pattern * checkpoint: TP-018 L2 writes to resolveUserPreferencesPath with mkdir+atomic * checkpoint: TP-016 add 6.x agent resolution + warning surfacing tests for Step 2 R006 coverage * hydrate: expand Step 3 checkboxes with R007 revision items * checkpoint: TP-018 confirmation gate already implemented in showSectionSettingsLoop * feat(TP-018): R007 fix — YAML-only bootstrap writes full L1 snapshot via loadLayer1Config * hydrate: TP-016 expand Step 3 checkboxes based on R007 review * checkpoint: TP-018 Step 3 complete — all write-back items done, 598 tests pass * feat(TP-018): fix ctx.ui.select/confirm API signatures and deep-clone safety * checkpoint: TP-016 buildExecutionContext already resolves pointer and passes configRoot to loaders * checkpoint: TP-016 spawnMergeAgent already uses pointer agentRoot, state files at stateRoot * checkpoint: TP-016 pointer warning already logged at orchestrator startup via buildExecutionContext * checkpoint: TP-016 verified state/sidecar paths invariant - never follow pointer * hydrate: TP-018 add R008 revision items to Step 3 * checkpoint: TP-018 R008 fix #1 — malformed JSON throws explicit error (already implemented), fix stale module header * checkpoint: TP-018 R008 fix #2 — unlinkSync already in place for temp-file cleanup * checkpoint: TP-018 R008 fix #3 — add 30 unit tests for write-back helpers (coerceValueForWrite, writeProjectConfigField, writeUserPreference) * checkpoint: TP-016 fix and deduplicate orchestrator pointer tests, all 597 tests passing * hydrate: expand Step 4 checkboxes per R009 review * checkpoint: TP-016 Step 3 complete - orchestrator pointer threading verified with 11 new tests * checkpoint: TP-018 add YAML source-badge tests (16.x series — JSON-only, YAML-only, JSON+YAML precedence) * checkpoint: TP-018 add zero-mutation path tests (17.x series — cancel/decline confirmation) * checkpoint: TP-018 add Advanced section discoverability tests (18.x series) * hydrate: TP-016 expand Step 4 checkboxes based on R009 review * checkpoint: TP-018 remove duplicate test sections (16-18.x) from prior iteration * checkpoint: TP-016 dashboard state paths verified as pointer-invariant, added clarifying comments * checkpoint: TP-018 Step 4 complete — 682 tests pass (54 new: YAML source detection, zero-mutation paths, Advanced discoverability) * checkpoint: TP-016 verified STATUS.md/task-folder resolution is pointer-independent in dashboard * checkpoint: TP-016 Step 4 complete — dashboard pointer threading verified * hydrate: TP-016 add R008 revision items to Step 3 * hydrate: add R010 revision items to Step 4 * feat(TP-016): thread workspaceRoot into resumeOrchBatch for consistent stateRoot * feat(TP-018): extract resolveWriteAction decision logic, replace tautological tests with real decision-tree tests * checkpoint: TP-018 Step 4 complete - fix test count, mark R010 revisions done * feat(TP-016): replace source-text test assertions with behavioral state-root consistency tests * hydrate: expand Step 5 checkboxes for TP-016 * hydrate: TP-018 expand Step 5 checkboxes per R011 review * checkpoint: TP-016 verified test 7.11 is behavioral, Step 3 R008 already closed * checkpoint: TP-018 add /settings to commands reference * checkpoint: TP-016 verified pointer failure/parity matrix test coverage * checkpoint: TP-018 add /settings to README command table * checkpoint: TP-018 add /settings mention to install tutorial * checkpoint: TP-016 verified integration split invariant test coverage * checkpoint: TP-018 normalize STATUS.md top-level status field * checkpoint: TP-016 Step 5 complete — all 609 tests passing * checkpoint: TP-018 task artifacts (.DONE, STATUS.md) * feat(TP-018): complete /settings TUI command — docs, README, .DONE * hydrate: TP-018 add R012 revision items to Step 5 * hydrate: TP-016 add R012 revision items to Step 5 * hydrate: TP-016 add R012 revision items to Step 5 * checkpoint: TP-018 fix /settings common responses to match actual error paths * checkpoint: TP-018 update commands.md intro and move Configuration Commands above CLI * checkpoint: TP-018 add Example block to /settings command reference * docs(TP-018): refine /settings Advanced description and Common responses per R012 review * checkpoint: TP-016 R012 replace signature tests 7.11/7.12 with behavioral state-root tests * checkpoint: TP-016 R012 full test suite passing (609 tests) * checkpoint: TP-016 R012 — add VERIFICATION.md with full test coverage matrix for Step 5 * hydrate: TP-016 expand Step 6 checkboxes per R013 review * checkpoint: TP-016 architecture doc impact check - no update needed * checkpoint: TP-016 final acceptance reconciliation - all criteria met * checkpoint: TP-016 task artifacts (.DONE, STATUS.md) * checkpoint: TP-016 .DONE created - task complete * feat: configurable merge agent timeout, default 10 min (was 5 min) - OrchestratorConfig.merge.timeout_minutes field (default: 10) - waitForMergeResult() uses config value instead of hardcoded constant - Exposed in /settings TUI under Merge section - Updated task-orchestrator.yaml template Fixes merge agent timeouts on large batches. * hydrate: TP-019 expand Step 0 checkboxes per R001 review * checkpoint: TP-019 read cmdDoctor, spec, and reusable helpers * checkpoint: TP-019 preflight complete — baseline, helpers, and spec criteria documented * checkpoint: TP-019 gitignore entry validation in cmdDoctor * checkpoint: TP-019 tracked artifact detection with remediation verified complete * checkpoint: TP-019 workspace pointer chain validation (pointer → config repo → .taskplane/) * checkpoint: TP-019 default branch check for .taskplane/ config presence * checkpoint: TP-019 legacy YAML config migration warning in doctor * feat: change checkpoint discipline from per-checkbox to per-step commits Workers now commit at step boundaries instead of after every checkbox. STATUS.md is still updated after each checkbox (that's the worker's memory), but git commits only happen when a step is complete. Exceptions that still get immediate commits: - Hydration (STATUS.md expansion before implementing) - REVISE response (adding reviewer revision items) - Wrap-up signal (stopping mid-step) This reduces git overhead by ~70-80% per task without losing any recovery capability — STATUS.md on disk is the resumability mechanism, not git. Updated: - templates/agents/task-worker.md (base worker prompt) - skills/create-taskplane-task/references/prompt-template.md (PROMPT template) - skills/create-taskplane-task/SKILL.md (skill docs) * feat(TP-019): complete Step 4 — tmux vs spawn_mode mismatch check in doctor Doctor now reads project config spawn_mode and warns if set to 'tmux' but tmux is not installed, with platform-specific install guidance. Step 4 completed manually (worker stalled on API errors after 3 iterations). Steps 5-6 verified and closed. * fix(settings-onboarding): align workspace init, /settings pointer resolution, and doctor JSON checks * docs: update CHANGELOG.md through v0.3.1 and strengthen release checklist in AGENTS.md CHANGELOG was stale since v0.1.14 — added entries for v0.1.15 through v0.3.1 plus unreleased changes. AGENTS.md release sequence now has mandatory CHANGELOG step with formatting guidance and pre-release checklist.
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.
Summary\nPrepare the v0.1.12 release by updating package version and changelog.\n\n## Changes\n- bump package version to 0.1.12\n- add 0.1.12 changelog section\n- roll Unreleased notes forward\n\n## Validation\n- npm pack --dry-run\n- npm publish --dry-run\n- node bin/taskplane.mjs version\n- npm --prefix extensions exec vitest --version\n\n## Notes\nThis PR intentionally does not create/push a git tag. Tag + npm publish + GitHub release will happen after merge from protected main.\n