@lumenflow/core 2.19.0 → 2.20.1
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/dist/active-wu-detector.d.ts +2 -2
- package/dist/active-wu-detector.d.ts.map +1 -1
- package/dist/active-wu-detector.js +1 -1
- package/dist/active-wu-detector.js.map +1 -1
- package/dist/adapters/context-adapters.d.ts +10 -0
- package/dist/adapters/context-adapters.d.ts.map +1 -1
- package/dist/adapters/context-adapters.js +15 -3
- package/dist/adapters/context-adapters.js.map +1 -1
- package/dist/adapters/filesystem-metrics.adapter.d.ts.map +1 -1
- package/dist/adapters/filesystem-metrics.adapter.js +13 -7
- package/dist/adapters/filesystem-metrics.adapter.js.map +1 -1
- package/dist/adapters/mock-dashboard-renderer.adapter.d.ts +1 -1
- package/dist/adapters/mock-dashboard-renderer.adapter.js +1 -1
- package/dist/agent-patterns-registry.d.ts +2 -2
- package/dist/agent-patterns-registry.js +5 -5
- package/dist/agent-patterns-registry.js.map +1 -1
- package/dist/arg-parser.d.ts.map +1 -1
- package/dist/arg-parser.js +4 -2
- package/dist/arg-parser.js.map +1 -1
- package/dist/backlog-editor.d.ts +21 -17
- package/dist/backlog-editor.d.ts.map +1 -1
- package/dist/backlog-editor.js +6 -29
- package/dist/backlog-editor.js.map +1 -1
- package/dist/backlog-generator.d.ts +14 -8
- package/dist/backlog-generator.d.ts.map +1 -1
- package/dist/backlog-generator.js +53 -20
- package/dist/backlog-generator.js.map +1 -1
- package/dist/backlog-parser.d.ts +2 -2
- package/dist/backlog-parser.d.ts.map +1 -1
- package/dist/backlog-parser.js.map +1 -1
- package/dist/backlog-sync-validator.d.ts +19 -10
- package/dist/backlog-sync-validator.d.ts.map +1 -1
- package/dist/backlog-sync-validator.js +41 -16
- package/dist/backlog-sync-validator.js.map +1 -1
- package/dist/branch-drift.d.ts +1 -1
- package/dist/branch-drift.d.ts.map +1 -1
- package/dist/branch-drift.js.map +1 -1
- package/dist/cleanup-lock.d.ts +4 -4
- package/dist/cleanup-lock.d.ts.map +1 -1
- package/dist/cleanup-lock.js.map +1 -1
- package/dist/cloud-detect.d.ts +1 -1
- package/dist/cloud-detect.d.ts.map +1 -1
- package/dist/code-path-validator.d.ts.map +1 -1
- package/dist/code-path-validator.js +15 -4
- package/dist/code-path-validator.js.map +1 -1
- package/dist/code-paths-overlap.d.ts +6 -3
- package/dist/code-paths-overlap.d.ts.map +1 -1
- package/dist/code-paths-overlap.js +1 -1
- package/dist/code-paths-overlap.js.map +1 -1
- package/dist/color-support.d.ts +1 -1
- package/dist/color-support.js +2 -2
- package/dist/color-support.js.map +1 -1
- package/dist/commands-logger.d.ts +11 -4
- package/dist/commands-logger.d.ts.map +1 -1
- package/dist/commands-logger.js +1 -1
- package/dist/commands-logger.js.map +1 -1
- package/dist/commit-message-utils.d.ts +1 -1
- package/dist/commit-message-utils.d.ts.map +1 -1
- package/dist/commit-message-utils.js.map +1 -1
- package/dist/compliance-parser.d.ts +86 -112
- package/dist/compliance-parser.d.ts.map +1 -1
- package/dist/compliance-parser.js +10 -61
- package/dist/compliance-parser.js.map +1 -1
- package/dist/constants/backlog-patterns.d.ts +1 -1
- package/dist/constants/backlog-patterns.d.ts.map +1 -1
- package/dist/constants/backlog-patterns.js.map +1 -1
- package/dist/context/location-resolver.js +1 -1
- package/dist/context/location-resolver.js.map +1 -1
- package/dist/context/wu-state-reader.d.ts +2 -0
- package/dist/context/wu-state-reader.d.ts.map +1 -1
- package/dist/context/wu-state-reader.js +3 -0
- package/dist/context/wu-state-reader.js.map +1 -1
- package/dist/context-validation-integration.d.ts +1 -1
- package/dist/context-validation-integration.d.ts.map +1 -1
- package/dist/context-validation-integration.js +1 -1
- package/dist/context-validation-integration.js.map +1 -1
- package/dist/core/scope-checker.d.ts +4 -4
- package/dist/core/scope-checker.d.ts.map +1 -1
- package/dist/core/scope-checker.js.map +1 -1
- package/dist/core/tool.schemas.d.ts +1 -1
- package/dist/core/tool.schemas.d.ts.map +1 -1
- package/dist/core/worktree-guard.d.ts +1 -1
- package/dist/core/worktree-guard.d.ts.map +1 -1
- package/dist/core/worktree-guard.js.map +1 -1
- package/dist/coverage-gate.d.ts +14 -9
- package/dist/coverage-gate.d.ts.map +1 -1
- package/dist/coverage-gate.js +2 -2
- package/dist/coverage-gate.js.map +1 -1
- package/dist/date-utils.d.ts +3 -3
- package/dist/date-utils.d.ts.map +1 -1
- package/dist/date-utils.js.map +1 -1
- package/dist/delegation-escalation.d.ts +2 -2
- package/dist/delegation-escalation.d.ts.map +1 -1
- package/dist/delegation-escalation.js +6 -2
- package/dist/delegation-escalation.js.map +1 -1
- package/dist/delegation-monitor.d.ts +76 -22
- package/dist/delegation-monitor.d.ts.map +1 -1
- package/dist/delegation-monitor.js +3 -2
- package/dist/delegation-monitor.js.map +1 -1
- package/dist/delegation-recovery.d.ts +2 -2
- package/dist/delegation-recovery.d.ts.map +1 -1
- package/dist/delegation-recovery.js +4 -1
- package/dist/delegation-recovery.js.map +1 -1
- package/dist/delegation-registry-schema.d.ts +4 -4
- package/dist/delegation-registry-store.d.ts.map +1 -1
- package/dist/delegation-registry-store.js +8 -1
- package/dist/delegation-registry-store.js.map +1 -1
- package/dist/delegation-tree.d.ts +1 -1
- package/dist/delegation-tree.d.ts.map +1 -1
- package/dist/delegation-tree.js.map +1 -1
- package/dist/dependency-graph.d.ts +44 -24
- package/dist/dependency-graph.d.ts.map +1 -1
- package/dist/dependency-graph.js +60 -32
- package/dist/dependency-graph.js.map +1 -1
- package/dist/dependency-guard.d.ts +2 -2
- package/dist/dependency-guard.d.ts.map +1 -1
- package/dist/dependency-guard.js.map +1 -1
- package/dist/dependency-validator.d.ts +4 -4
- package/dist/dependency-validator.d.ts.map +1 -1
- package/dist/dependency-validator.js +2 -1
- package/dist/dependency-validator.js.map +1 -1
- package/dist/docs-path-validator.d.ts +1 -1
- package/dist/docs-path-validator.d.ts.map +1 -1
- package/dist/docs-path-validator.js.map +1 -1
- package/dist/domain/orchestration.constants.d.ts +2 -2
- package/dist/domain/orchestration.constants.js +2 -2
- package/dist/domain/orchestration.schemas.d.ts +2 -2
- package/dist/domain/recovery.schemas.js +2 -2
- package/dist/domain/recovery.schemas.js.map +1 -1
- package/dist/domain/validation.schemas.js +1 -1
- package/dist/domain/validation.schemas.js.map +1 -1
- package/dist/error-handler.d.ts +3 -3
- package/dist/error-handler.d.ts.map +1 -1
- package/dist/error-handler.js.map +1 -1
- package/dist/file-classifiers.d.ts +3 -3
- package/dist/file-classifiers.d.ts.map +1 -1
- package/dist/file-classifiers.js.map +1 -1
- package/dist/force-bypass-audit.d.ts.map +1 -1
- package/dist/force-bypass-audit.js.map +1 -1
- package/dist/gates-config.d.ts +1 -1
- package/dist/gates-config.js +1 -1
- package/dist/gates-config.js.map +1 -1
- package/dist/generate-traceability.d.ts +61 -51
- package/dist/generate-traceability.d.ts.map +1 -1
- package/dist/generate-traceability.js +34 -61
- package/dist/generate-traceability.js.map +1 -1
- package/dist/git-adapter.d.ts +3 -16
- package/dist/git-adapter.d.ts.map +1 -1
- package/dist/git-adapter.js +1 -1
- package/dist/git-adapter.js.map +1 -1
- package/dist/git-context-extractor.d.ts.map +1 -1
- package/dist/git-context-extractor.js +21 -10
- package/dist/git-context-extractor.js.map +1 -1
- package/dist/git-staged-validator.d.ts +1 -1
- package/dist/git-staged-validator.d.ts.map +1 -1
- package/dist/git-staged-validator.js +3 -2
- package/dist/git-staged-validator.js.map +1 -1
- package/dist/hardcoded-strings.d.ts +8 -3
- package/dist/hardcoded-strings.d.ts.map +1 -1
- package/dist/hardcoded-strings.js +4 -1
- package/dist/hardcoded-strings.js.map +1 -1
- package/dist/incremental-lint.d.ts +2 -2
- package/dist/incremental-lint.d.ts.map +1 -1
- package/dist/incremental-lint.js.map +1 -1
- package/dist/incremental-test.d.ts +1 -1
- package/dist/incremental-test.d.ts.map +1 -1
- package/dist/incremental-test.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/invariants/check-automated-tests.d.ts +11 -4
- package/dist/invariants/check-automated-tests.d.ts.map +1 -1
- package/dist/invariants/check-automated-tests.js +1 -1
- package/dist/invariants/check-automated-tests.js.map +1 -1
- package/dist/invariants-runner.d.ts +32 -7
- package/dist/invariants-runner.d.ts.map +1 -1
- package/dist/invariants-runner.js +20 -6
- package/dist/invariants-runner.js.map +1 -1
- package/dist/lane-checker.d.ts.map +1 -1
- package/dist/lane-checker.js +3 -0
- package/dist/lane-checker.js.map +1 -1
- package/dist/lane-inference.d.ts +7 -6
- package/dist/lane-inference.d.ts.map +1 -1
- package/dist/lane-inference.js +16 -9
- package/dist/lane-inference.js.map +1 -1
- package/dist/lane-suggest-prompt.d.ts +1 -1
- package/dist/lane-suggest-prompt.d.ts.map +1 -1
- package/dist/lane-validator.d.ts +5 -5
- package/dist/lane-validator.d.ts.map +1 -1
- package/dist/lane-validator.js +6 -6
- package/dist/lane-validator.js.map +1 -1
- package/dist/logs-lib.d.ts +1 -1
- package/dist/logs-lib.d.ts.map +1 -1
- package/dist/logs-lib.js +4 -1
- package/dist/logs-lib.js.map +1 -1
- package/dist/lumenflow-config-schema.d.ts +57 -57
- package/dist/lumenflow-config-schema.js +1 -1
- package/dist/lumenflow-config-schema.js.map +1 -1
- package/dist/manual-test-validator.d.ts +9 -9
- package/dist/manual-test-validator.d.ts.map +1 -1
- package/dist/manual-test-validator.js +4 -4
- package/dist/manual-test-validator.js.map +1 -1
- package/dist/merge-lock.d.ts +2 -2
- package/dist/merge-lock.d.ts.map +1 -1
- package/dist/merge-lock.js.map +1 -1
- package/dist/micro-worktree.d.ts +2 -2
- package/dist/micro-worktree.js +3 -3
- package/dist/micro-worktree.js.map +1 -1
- package/dist/orchestration-advisory-loader.d.ts +2 -2
- package/dist/orchestration-advisory-loader.d.ts.map +1 -1
- package/dist/orchestration-advisory-loader.js +1 -1
- package/dist/orchestration-advisory-loader.js.map +1 -1
- package/dist/orchestration-rules.d.ts +21 -9
- package/dist/orchestration-rules.d.ts.map +1 -1
- package/dist/orchestration-rules.js +1 -1
- package/dist/orchestration-rules.js.map +1 -1
- package/dist/orphan-detector.d.ts +11 -11
- package/dist/orphan-detector.d.ts.map +1 -1
- package/dist/orphan-detector.js.map +1 -1
- package/dist/path-classifiers.d.ts +2 -2
- package/dist/path-classifiers.d.ts.map +1 -1
- package/dist/path-classifiers.js.map +1 -1
- package/dist/piped-command-detector.d.ts +3 -3
- package/dist/piped-command-detector.d.ts.map +1 -1
- package/dist/piped-command-detector.js +1 -1
- package/dist/piped-command-detector.js.map +1 -1
- package/dist/ports/core-tools.ports.d.ts +1 -1
- package/dist/ports/core-tools.ports.js +1 -1
- package/dist/ports/dashboard-renderer.port.d.ts +2 -2
- package/dist/ports/dashboard-renderer.port.js +1 -1
- package/dist/ports/git-validator.ports.d.ts +70 -271
- package/dist/ports/git-validator.ports.d.ts.map +1 -1
- package/dist/ports/git-validator.ports.js +4 -5
- package/dist/ports/git-validator.ports.js.map +1 -1
- package/dist/ports/validation.ports.d.ts +1 -1
- package/dist/process-detector.d.ts +6 -10
- package/dist/process-detector.d.ts.map +1 -1
- package/dist/process-detector.js.map +1 -1
- package/dist/prompt-linter.d.ts +1 -1
- package/dist/prompt-linter.d.ts.map +1 -1
- package/dist/prompt-linter.js +4 -3
- package/dist/prompt-linter.js.map +1 -1
- package/dist/prompt-monitor.d.ts.map +1 -1
- package/dist/prompt-monitor.js +2 -2
- package/dist/prompt-monitor.js.map +1 -1
- package/dist/rebase-artifact-cleanup.d.ts +42 -33
- package/dist/rebase-artifact-cleanup.d.ts.map +1 -1
- package/dist/rebase-artifact-cleanup.js +8 -9
- package/dist/rebase-artifact-cleanup.js.map +1 -1
- package/dist/recovery/recovery-analyzer.d.ts +2 -2
- package/dist/recovery/recovery-analyzer.d.ts.map +1 -1
- package/dist/recovery/recovery-analyzer.js +1 -1
- package/dist/recovery/recovery-analyzer.js.map +1 -1
- package/dist/resolve-policy.d.ts +1 -1
- package/dist/resolve-policy.d.ts.map +1 -1
- package/dist/resolve-policy.js +3 -5
- package/dist/resolve-policy.js.map +1 -1
- package/dist/retry-strategy.d.ts +43 -27
- package/dist/retry-strategy.d.ts.map +1 -1
- package/dist/retry-strategy.js.map +1 -1
- package/dist/risk-detector.d.ts +1 -1
- package/dist/risk-detector.js +1 -1
- package/dist/rollback-utils.d.ts +6 -6
- package/dist/rollback-utils.d.ts.map +1 -1
- package/dist/rollback-utils.js +2 -2
- package/dist/rollback-utils.js.map +1 -1
- package/dist/sandbox-allowlist.d.ts +16 -0
- package/dist/sandbox-allowlist.d.ts.map +1 -0
- package/dist/sandbox-allowlist.js +75 -0
- package/dist/sandbox-allowlist.js.map +1 -0
- package/dist/sandbox-backend-linux.d.ts +6 -0
- package/dist/sandbox-backend-linux.d.ts.map +1 -0
- package/dist/sandbox-backend-linux.js +65 -0
- package/dist/sandbox-backend-linux.js.map +1 -0
- package/dist/sandbox-backend-macos.d.ts +6 -0
- package/dist/sandbox-backend-macos.d.ts.map +1 -0
- package/dist/sandbox-backend-macos.js +64 -0
- package/dist/sandbox-backend-macos.js.map +1 -0
- package/dist/sandbox-backend-windows.d.ts +6 -0
- package/dist/sandbox-backend-windows.d.ts.map +1 -0
- package/dist/sandbox-backend-windows.js +28 -0
- package/dist/sandbox-backend-windows.js.map +1 -0
- package/dist/sandbox-profile.d.ts +53 -0
- package/dist/sandbox-profile.d.ts.map +1 -0
- package/dist/sandbox-profile.js +62 -0
- package/dist/sandbox-profile.js.map +1 -0
- package/dist/schemas/flow-arg-validators.d.ts +18 -18
- package/dist/schemas/initiative-arg-validators.d.ts +28 -28
- package/dist/schemas/memory-arg-validators.d.ts +40 -40
- package/dist/schemas/schema-utils.js.map +1 -1
- package/dist/schemas/setup-arg-validators.d.ts +32 -32
- package/dist/schemas/setup-schemas.js +1 -1
- package/dist/schemas/setup-schemas.js.map +1 -1
- package/dist/schemas/validation-arg-validators.d.ts +4 -4
- package/dist/schemas/wu-lifecycle-arg-validators.d.ts +51 -51
- package/dist/schemas/wu-lifecycle-schemas.js +1 -1
- package/dist/schemas/wu-lifecycle-schemas.js.map +1 -1
- package/dist/section-headings.d.ts +6 -6
- package/dist/section-headings.d.ts.map +1 -1
- package/dist/section-headings.js +7 -5
- package/dist/section-headings.js.map +1 -1
- package/dist/spawn-strategy.d.ts +1 -1
- package/dist/spawn-strategy.js +1 -1
- package/dist/stamp-status-validator.d.ts +7 -4
- package/dist/stamp-status-validator.d.ts.map +1 -1
- package/dist/stamp-status-validator.js.map +1 -1
- package/dist/stamp-utils.d.ts +15 -21
- package/dist/stamp-utils.d.ts.map +1 -1
- package/dist/stamp-utils.js +21 -5
- package/dist/stamp-utils.js.map +1 -1
- package/dist/state-machine.d.ts +1 -1
- package/dist/state-machine.d.ts.map +1 -1
- package/dist/state-machine.js +4 -2
- package/dist/state-machine.js.map +1 -1
- package/dist/system-map-validator.d.ts +25 -13
- package/dist/system-map-validator.d.ts.map +1 -1
- package/dist/system-map-validator.js +43 -21
- package/dist/system-map-validator.js.map +1 -1
- package/dist/telemetry.d.ts +9 -9
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +6 -5
- package/dist/telemetry.js.map +1 -1
- package/dist/template-loader.d.ts.map +1 -1
- package/dist/template-loader.js +13 -8
- package/dist/template-loader.js.map +1 -1
- package/dist/token-counter.d.ts +19 -13
- package/dist/token-counter.d.ts.map +1 -1
- package/dist/token-counter.js +1 -1
- package/dist/token-counter.js.map +1 -1
- package/dist/usecases/get-dashboard-data.usecase.d.ts +1 -1
- package/dist/usecases/get-dashboard-data.usecase.js +1 -1
- package/dist/usecases/get-suggestions.usecase.d.ts.map +1 -1
- package/dist/usecases/get-suggestions.usecase.js +4 -2
- package/dist/usecases/get-suggestions.usecase.js.map +1 -1
- package/dist/user-normalizer.d.ts +4 -4
- package/dist/user-normalizer.d.ts.map +1 -1
- package/dist/user-normalizer.js +2 -2
- package/dist/user-normalizer.js.map +1 -1
- package/dist/validation/command-registry.d.ts +1 -1
- package/dist/validation/command-registry.js +3 -3
- package/dist/validation/command-registry.js.map +1 -1
- package/dist/validation/types.d.ts +3 -1
- package/dist/validation/types.d.ts.map +1 -1
- package/dist/worktree-ownership.d.ts +4 -4
- package/dist/worktree-ownership.d.ts.map +1 -1
- package/dist/worktree-ownership.js +1 -1
- package/dist/worktree-ownership.js.map +1 -1
- package/dist/worktree-scanner.d.ts +36 -8
- package/dist/worktree-scanner.d.ts.map +1 -1
- package/dist/worktree-scanner.js +2 -2
- package/dist/worktree-scanner.js.map +1 -1
- package/dist/worktree-symlink.d.ts +25 -29
- package/dist/worktree-symlink.d.ts.map +1 -1
- package/dist/worktree-symlink.js +12 -7
- package/dist/worktree-symlink.js.map +1 -1
- package/dist/wu-backlog-updater.d.ts +1 -1
- package/dist/wu-backlog-updater.d.ts.map +1 -1
- package/dist/wu-backlog-updater.js.map +1 -1
- package/dist/wu-checkpoint.d.ts +6 -6
- package/dist/wu-checkpoint.d.ts.map +1 -1
- package/dist/wu-checkpoint.js.map +1 -1
- package/dist/wu-claim-helpers.d.ts +2 -2
- package/dist/wu-claim-helpers.d.ts.map +1 -1
- package/dist/wu-claim-helpers.js.map +1 -1
- package/dist/wu-claim-resume.d.ts +22 -8
- package/dist/wu-claim-resume.d.ts.map +1 -1
- package/dist/wu-claim-resume.js.map +1 -1
- package/dist/wu-cli-constants.d.ts +1 -3
- package/dist/wu-cli-constants.d.ts.map +1 -1
- package/dist/wu-cli-constants.js +1 -3
- package/dist/wu-cli-constants.js.map +1 -1
- package/dist/wu-consistency-checker.d.ts +83 -8
- package/dist/wu-consistency-checker.d.ts.map +1 -1
- package/dist/wu-consistency-checker.js +15 -8
- package/dist/wu-consistency-checker.js.map +1 -1
- package/dist/wu-constants.d.ts +2 -2
- package/dist/wu-constants.d.ts.map +1 -1
- package/dist/wu-constants.js +2 -2
- package/dist/wu-constants.js.map +1 -1
- package/dist/wu-context-constants.d.ts +4 -0
- package/dist/wu-context-constants.d.ts.map +1 -1
- package/dist/wu-context-constants.js +4 -0
- package/dist/wu-context-constants.js.map +1 -1
- package/dist/wu-create-validators.d.ts +3 -3
- package/dist/wu-create-validators.d.ts.map +1 -1
- package/dist/wu-create-validators.js +1 -1
- package/dist/wu-create-validators.js.map +1 -1
- package/dist/wu-domain-constants.d.ts +3 -3
- package/dist/wu-domain-constants.d.ts.map +1 -1
- package/dist/wu-domain-constants.js +7 -11
- package/dist/wu-domain-constants.js.map +1 -1
- package/dist/wu-done-branch-only.d.ts +16 -13
- package/dist/wu-done-branch-only.d.ts.map +1 -1
- package/dist/wu-done-branch-only.js +1 -1
- package/dist/wu-done-branch-only.js.map +1 -1
- package/dist/wu-done-branch-utils.d.ts +1 -1
- package/dist/wu-done-branch-utils.d.ts.map +1 -1
- package/dist/wu-done-branch-utils.js.map +1 -1
- package/dist/wu-done-cleanup.d.ts +1 -1
- package/dist/wu-done-cleanup.d.ts.map +1 -1
- package/dist/wu-done-cleanup.js.map +1 -1
- package/dist/wu-done-concurrent-merge.d.ts +1 -1
- package/dist/wu-done-concurrent-merge.d.ts.map +1 -1
- package/dist/wu-done-concurrent-merge.js +4 -2
- package/dist/wu-done-concurrent-merge.js.map +1 -1
- package/dist/wu-done-docs-generate.d.ts +2 -2
- package/dist/wu-done-docs-generate.js +2 -2
- package/dist/wu-done-docs-only.d.ts +1 -1
- package/dist/wu-done-docs-only.d.ts.map +1 -1
- package/dist/wu-done-docs-only.js.map +1 -1
- package/dist/wu-done-errors.d.ts +3 -3
- package/dist/wu-done-errors.d.ts.map +1 -1
- package/dist/wu-done-errors.js.map +1 -1
- package/dist/wu-done-inputs.d.ts +1 -1
- package/dist/wu-done-inputs.d.ts.map +1 -1
- package/dist/wu-done-inputs.js.map +1 -1
- package/dist/wu-done-machine.d.ts +2 -2
- package/dist/wu-done-messages.d.ts +30 -30
- package/dist/wu-done-messages.d.ts.map +1 -1
- package/dist/wu-done-messages.js +16 -13
- package/dist/wu-done-messages.js.map +1 -1
- package/dist/wu-done-metadata.d.ts +46 -35
- package/dist/wu-done-metadata.d.ts.map +1 -1
- package/dist/wu-done-metadata.js +12 -10
- package/dist/wu-done-metadata.js.map +1 -1
- package/dist/wu-done-paths.d.ts +33 -19
- package/dist/wu-done-paths.d.ts.map +1 -1
- package/dist/wu-done-paths.js +15 -9
- package/dist/wu-done-paths.js.map +1 -1
- package/dist/wu-done-pr.d.ts +9 -5
- package/dist/wu-done-pr.d.ts.map +1 -1
- package/dist/wu-done-pr.js +1 -1
- package/dist/wu-done-pr.js.map +1 -1
- package/dist/wu-done-preflight.d.ts +33 -27
- package/dist/wu-done-preflight.d.ts.map +1 -1
- package/dist/wu-done-preflight.js +24 -8
- package/dist/wu-done-preflight.js.map +1 -1
- package/dist/wu-done-retry-helpers.d.ts +5 -5
- package/dist/wu-done-retry-helpers.d.ts.map +1 -1
- package/dist/wu-done-retry-helpers.js +2 -2
- package/dist/wu-done-retry-helpers.js.map +1 -1
- package/dist/wu-done-ui.d.ts +5 -5
- package/dist/wu-done-ui.d.ts.map +1 -1
- package/dist/wu-done-ui.js +4 -2
- package/dist/wu-done-ui.js.map +1 -1
- package/dist/wu-done-validation.d.ts +34 -18
- package/dist/wu-done-validation.d.ts.map +1 -1
- package/dist/wu-done-validation.js +30 -16
- package/dist/wu-done-validation.js.map +1 -1
- package/dist/wu-done-worktree-services.d.ts +1 -1
- package/dist/wu-done-worktree-services.js +2 -2
- package/dist/wu-done-worktree-services.js.map +1 -1
- package/dist/wu-done-worktree.d.ts +60 -29
- package/dist/wu-done-worktree.d.ts.map +1 -1
- package/dist/wu-done-worktree.js +62 -45
- package/dist/wu-done-worktree.js.map +1 -1
- package/dist/wu-events-cleanup.d.ts.map +1 -1
- package/dist/wu-events-cleanup.js +6 -2
- package/dist/wu-events-cleanup.js.map +1 -1
- package/dist/wu-helpers.d.ts +21 -25
- package/dist/wu-helpers.d.ts.map +1 -1
- package/dist/wu-helpers.js +6 -4
- package/dist/wu-helpers.js.map +1 -1
- package/dist/wu-id-generator.d.ts.map +1 -1
- package/dist/wu-id-generator.js +5 -1
- package/dist/wu-id-generator.js.map +1 -1
- package/dist/wu-lint.d.ts +110 -48
- package/dist/wu-lint.d.ts.map +1 -1
- package/dist/wu-lint.js +86 -143
- package/dist/wu-lint.js.map +1 -1
- package/dist/wu-paths-constants.d.ts +1 -39
- package/dist/wu-paths-constants.d.ts.map +1 -1
- package/dist/wu-paths-constants.js +1 -39
- package/dist/wu-paths-constants.js.map +1 -1
- package/dist/wu-preflight-validators.d.ts +49 -107
- package/dist/wu-preflight-validators.d.ts.map +1 -1
- package/dist/wu-preflight-validators.js +97 -134
- package/dist/wu-preflight-validators.js.map +1 -1
- package/dist/wu-recovery.d.ts +49 -36
- package/dist/wu-recovery.d.ts.map +1 -1
- package/dist/wu-recovery.js +22 -14
- package/dist/wu-recovery.js.map +1 -1
- package/dist/wu-repair-core.d.ts +62 -32
- package/dist/wu-repair-core.d.ts.map +1 -1
- package/dist/wu-repair-core.js +31 -19
- package/dist/wu-repair-core.js.map +1 -1
- package/dist/wu-rules-core.d.ts +95 -0
- package/dist/wu-rules-core.d.ts.map +1 -0
- package/dist/wu-rules-core.js +399 -0
- package/dist/wu-rules-core.js.map +1 -0
- package/dist/wu-rules-engine.d.ts +29 -0
- package/dist/wu-rules-engine.d.ts.map +1 -0
- package/dist/wu-rules-engine.js +59 -0
- package/dist/wu-rules-engine.js.map +1 -0
- package/dist/wu-rules-resolvers.d.ts +19 -0
- package/dist/wu-rules-resolvers.d.ts.map +1 -0
- package/dist/wu-rules-resolvers.js +208 -0
- package/dist/wu-rules-resolvers.js.map +1 -0
- package/dist/wu-schema-normalization.d.ts +1 -1
- package/dist/wu-schema-normalization.d.ts.map +1 -1
- package/dist/wu-schema-normalization.js +5 -2
- package/dist/wu-schema-normalization.js.map +1 -1
- package/dist/wu-schema.d.ts +155 -186
- package/dist/wu-schema.d.ts.map +1 -1
- package/dist/wu-schema.js +36 -36
- package/dist/wu-schema.js.map +1 -1
- package/dist/wu-spawn-helpers.d.ts +7 -7
- package/dist/wu-spawn-helpers.d.ts.map +1 -1
- package/dist/wu-spawn-helpers.js.map +1 -1
- package/dist/wu-spawn-skills.d.ts +6 -6
- package/dist/wu-spawn-skills.d.ts.map +1 -1
- package/dist/wu-spawn-skills.js.map +1 -1
- package/dist/wu-spawn.d.ts +29 -8
- package/dist/wu-spawn.d.ts.map +1 -1
- package/dist/wu-spawn.js +33 -20
- package/dist/wu-spawn.js.map +1 -1
- package/dist/wu-state-schema.d.ts +4 -4
- package/dist/wu-state-schema.d.ts.map +1 -1
- package/dist/wu-state-schema.js.map +1 -1
- package/dist/wu-state-store.d.ts.map +1 -1
- package/dist/wu-state-store.js +10 -2
- package/dist/wu-state-store.js.map +1 -1
- package/dist/wu-status-transition.d.ts +21 -13
- package/dist/wu-status-transition.d.ts.map +1 -1
- package/dist/wu-status-transition.js +15 -8
- package/dist/wu-status-transition.js.map +1 -1
- package/dist/wu-status-updater.d.ts +2 -2
- package/dist/wu-status-updater.d.ts.map +1 -1
- package/dist/wu-status-updater.js +7 -2
- package/dist/wu-status-updater.js.map +1 -1
- package/dist/wu-transaction-collectors.d.ts +35 -37
- package/dist/wu-transaction-collectors.d.ts.map +1 -1
- package/dist/wu-transaction-collectors.js +7 -2
- package/dist/wu-transaction-collectors.js.map +1 -1
- package/dist/wu-transaction.d.ts +3 -3
- package/dist/wu-transaction.d.ts.map +1 -1
- package/dist/wu-transaction.js +4 -9
- package/dist/wu-transaction.js.map +1 -1
- package/dist/wu-type-helpers.d.ts +1 -1
- package/dist/wu-type-helpers.js +1 -1
- package/dist/wu-validation.d.ts +26 -10
- package/dist/wu-validation.d.ts.map +1 -1
- package/dist/wu-validation.js +3 -3
- package/dist/wu-validation.js.map +1 -1
- package/dist/wu-validator.d.ts +29 -15
- package/dist/wu-validator.d.ts.map +1 -1
- package/dist/wu-validator.js +23 -15
- package/dist/wu-validator.js.map +1 -1
- package/dist/wu-yaml-fixer.d.ts +26 -35
- package/dist/wu-yaml-fixer.d.ts.map +1 -1
- package/dist/wu-yaml-fixer.js +8 -5
- package/dist/wu-yaml-fixer.js.map +1 -1
- package/dist/wu-yaml.d.ts +9 -9
- package/dist/wu-yaml.d.ts.map +1 -1
- package/dist/wu-yaml.js +2 -1
- package/dist/wu-yaml.js.map +1 -1
- package/package.json +5 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-preflight.d.ts","sourceRoot":"","sources":["../src/wu-done-preflight.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKjE;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"wu-done-preflight.d.ts","sourceRoot":"","sources":["../src/wu-done-preflight.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAKjE,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,UAAU,iCAAiC;IACzC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,6BAA6B;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAqC/E;AAED;;GAEG;AACH,MAAM,WAAW,yCAAyC;IACxD,6CAA6C;IAC7C,mBAAmB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IAC/C,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,kCAAkC,CACtD,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,yCAA8C,GACtD,OAAO,CAAC,iCAAiC,CAAC,CAuC5C;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAChD,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,iCAAiC,GACxC,MAAM,CA8ER;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,MAAM,GAAG,6BAA6B,CA0BrF;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/F;AAED,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,MAAM,EACV,YAAY,GAAE,MAAM,GAAG,IAAW,EAClC,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAqC/C"}
|
|
@@ -9,15 +9,15 @@ import { validateSingleWU } from './validators/wu-tasks.js';
|
|
|
9
9
|
* WU-1781: Build preflight error message with actionable guidance
|
|
10
10
|
*/
|
|
11
11
|
export function buildPreflightErrorMessage(id, errors) {
|
|
12
|
-
const hasStampStatusError = errors.some((
|
|
12
|
+
const hasStampStatusError = errors.some((error) => error.includes('stamp but status is not done'));
|
|
13
13
|
let message = `
|
|
14
14
|
❌ PREFLIGHT VALIDATION FAILED
|
|
15
15
|
|
|
16
16
|
wu:validate found errors that would block pre-push hooks.
|
|
17
|
-
Aborting wu:done BEFORE
|
|
17
|
+
Aborting wu:done BEFORE UnsafeAny merge operations to prevent deadlocks.
|
|
18
18
|
|
|
19
19
|
Errors:
|
|
20
|
-
${errors.map((
|
|
20
|
+
${errors.map((error) => ` - ${error}`).join('\n')}
|
|
21
21
|
|
|
22
22
|
Fix options:
|
|
23
23
|
`;
|
|
@@ -47,13 +47,18 @@ export async function executePreflightCodePathValidation(id, paths, options = {}
|
|
|
47
47
|
const result = await validatePreflightFn(id, {
|
|
48
48
|
rootDir: paths.rootDir,
|
|
49
49
|
worktreePath: paths.worktreePath,
|
|
50
|
+
phase: 'reality',
|
|
51
|
+
baseRef: options.baseRef,
|
|
52
|
+
headRef: options.headRef,
|
|
50
53
|
});
|
|
51
54
|
if (result.valid) {
|
|
52
55
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.SUCCESS} Preflight code_paths validation passed`);
|
|
53
56
|
return {
|
|
54
57
|
valid: true,
|
|
55
58
|
errors: [],
|
|
59
|
+
warnings: result.warnings || [],
|
|
56
60
|
missingCodePaths: [],
|
|
61
|
+
missingCoverageCodePaths: [],
|
|
57
62
|
missingTestPaths: [],
|
|
58
63
|
abortedBeforeGates: false,
|
|
59
64
|
};
|
|
@@ -62,7 +67,9 @@ export async function executePreflightCodePathValidation(id, paths, options = {}
|
|
|
62
67
|
return {
|
|
63
68
|
valid: false,
|
|
64
69
|
errors: result.errors,
|
|
70
|
+
warnings: result.warnings || [],
|
|
65
71
|
missingCodePaths: result.missingCodePaths || [],
|
|
72
|
+
missingCoverageCodePaths: result.missingCoverageCodePaths || [],
|
|
66
73
|
missingTestPaths: result.missingTestPaths || [],
|
|
67
74
|
suggestedTestPaths: result.suggestedTestPaths || {},
|
|
68
75
|
abortedBeforeGates: true,
|
|
@@ -72,7 +79,7 @@ export async function executePreflightCodePathValidation(id, paths, options = {}
|
|
|
72
79
|
* WU-1805: Build preflight code_paths error message with actionable guidance
|
|
73
80
|
*/
|
|
74
81
|
export function buildPreflightCodePathErrorMessage(id, result) {
|
|
75
|
-
const { errors, missingCodePaths = [], missingTestPaths = [], suggestedTestPaths = {}, } = result;
|
|
82
|
+
const { errors, missingCodePaths = [], missingCoverageCodePaths = [], missingTestPaths = [], suggestedTestPaths = {}, } = result;
|
|
76
83
|
let message = `
|
|
77
84
|
❌ PREFLIGHT CODE_PATHS VALIDATION FAILED
|
|
78
85
|
|
|
@@ -80,7 +87,7 @@ code_paths/test_paths validation found errors that would cause gates to fail.
|
|
|
80
87
|
Aborting wu:done BEFORE running gates to save time.
|
|
81
88
|
|
|
82
89
|
Errors:
|
|
83
|
-
${errors.map((
|
|
90
|
+
${errors.map((error) => ` ${error}`).join('\n')}
|
|
84
91
|
|
|
85
92
|
`;
|
|
86
93
|
if (missingCodePaths.length > 0) {
|
|
@@ -90,6 +97,15 @@ Fix options for missing code_paths:
|
|
|
90
97
|
2. Update code_paths in ${id}.yaml using: pnpm wu:edit --id ${id} --code-paths "<corrected-paths>"
|
|
91
98
|
3. Remove paths that were intentionally not created
|
|
92
99
|
|
|
100
|
+
`;
|
|
101
|
+
}
|
|
102
|
+
if (missingCoverageCodePaths.length > 0) {
|
|
103
|
+
message += `
|
|
104
|
+
Fix options for code_paths coverage (branch diff):
|
|
105
|
+
1. Commit changes that touch each missing scoped code_path
|
|
106
|
+
2. Update code_paths in ${id}.yaml to match actual branch scope
|
|
107
|
+
3. Re-run: pnpm wu:prep --id ${id} (or wu:done when ready)
|
|
108
|
+
|
|
93
109
|
`;
|
|
94
110
|
}
|
|
95
111
|
if (missingTestPaths.length > 0) {
|
|
@@ -103,7 +119,7 @@ Fix options for missing test_paths:
|
|
|
103
119
|
}
|
|
104
120
|
// Add suggested paths if available
|
|
105
121
|
const suggestionsMap = suggestedTestPaths;
|
|
106
|
-
const hasSuggestions = Object.keys(suggestionsMap).some((missingPath) => suggestionsMap[missingPath]
|
|
122
|
+
const hasSuggestions = Object.keys(suggestionsMap).some((missingPath) => (suggestionsMap[missingPath] ?? []).length > 0);
|
|
107
123
|
if (hasSuggestions) {
|
|
108
124
|
message += `Suggested alternatives found:
|
|
109
125
|
`;
|
|
@@ -126,7 +142,7 @@ See: https://lumenflow.dev/reference/troubleshooting-wu-done/ for more recovery
|
|
|
126
142
|
return message;
|
|
127
143
|
}
|
|
128
144
|
/**
|
|
129
|
-
* WU-1781: Run wu:validate as preflight check before
|
|
145
|
+
* WU-1781: Run wu:validate as preflight check before UnsafeAny git operations
|
|
130
146
|
*/
|
|
131
147
|
export function runPreflightTasksValidation(id) {
|
|
132
148
|
console.log(`\n${LOG_PREFIX.DONE} 🔍 Preflight: running wu:validate...`);
|
|
@@ -145,7 +161,7 @@ export function runPreflightTasksValidation(id) {
|
|
|
145
161
|
console.error(`\n${LOG_PREFIX.DONE} ${EMOJI.FAILURE} Preflight wu:validate failed`);
|
|
146
162
|
return {
|
|
147
163
|
valid: false,
|
|
148
|
-
errors: result.errors,
|
|
164
|
+
errors: result.errors ?? [],
|
|
149
165
|
abortedBeforeMerge: true,
|
|
150
166
|
localMainModified: false,
|
|
151
167
|
hasStampStatusError: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-preflight.js","sourceRoot":"","sources":["../src/wu-done-preflight.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"wu-done-preflight.js","sourceRoot":"","sources":["../src/wu-done-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
* @param {object} gitAdapter - Git adapter instance
|
|
22
22
|
* @returns {Promise<number>} Number of completion attempt commits found
|
|
23
23
|
*/
|
|
24
|
-
export declare function countPreviousCompletionAttempts(wuId:
|
|
24
|
+
export declare function countPreviousCompletionAttempts(wuId: UnsafeAny, gitAdapter: UnsafeAny): Promise<number>;
|
|
25
25
|
/**
|
|
26
26
|
* Squash previous completion attempt commits into a single commit
|
|
27
27
|
*
|
|
@@ -40,7 +40,7 @@ export interface SquashCompletionAttemptsOptions {
|
|
|
40
40
|
/** Use --soft when true; --hard when false (recovery) */
|
|
41
41
|
preserveIndex?: boolean;
|
|
42
42
|
}
|
|
43
|
-
export declare function squashPreviousCompletionAttempts(wuId:
|
|
43
|
+
export declare function squashPreviousCompletionAttempts(wuId: UnsafeAny, count: UnsafeAny, gitAdapter: UnsafeAny, options?: SquashCompletionAttemptsOptions): Promise<{
|
|
44
44
|
squashed: boolean;
|
|
45
45
|
count: any;
|
|
46
46
|
}>;
|
|
@@ -50,13 +50,13 @@ export declare function squashPreviousCompletionAttempts(wuId: any, count: any,
|
|
|
50
50
|
* WU-1584 Fix #2: Recovery loop should squash previous attempt commits
|
|
51
51
|
*
|
|
52
52
|
* When recovering from zombie state (status=done but worktree exists),
|
|
53
|
-
* first squash
|
|
53
|
+
* first squash UnsafeAny previous completion attempts to avoid "rebase hell".
|
|
54
54
|
*
|
|
55
55
|
* @param {string} wuId - WU ID
|
|
56
56
|
* @param {object} gitAdapter - Git adapter instance
|
|
57
57
|
* @returns {Promise<{ squashedCount: number }>} Result
|
|
58
58
|
*/
|
|
59
|
-
export declare function prepareRecoveryWithSquash(wuId:
|
|
59
|
+
export declare function prepareRecoveryWithSquash(wuId: UnsafeAny, gitAdapter: UnsafeAny): Promise<{
|
|
60
60
|
squashedCount: any;
|
|
61
61
|
}>;
|
|
62
62
|
/**
|
|
@@ -79,7 +79,7 @@ export interface HandleParallelCompletionsOptions {
|
|
|
79
79
|
/** Whether auto-rebase is enabled (default: true) */
|
|
80
80
|
autoRebase?: boolean;
|
|
81
81
|
}
|
|
82
|
-
export declare function handleParallelCompletions(wuId:
|
|
82
|
+
export declare function handleParallelCompletions(wuId: UnsafeAny, doc: UnsafeAny, gitAdapter: UnsafeAny, options?: HandleParallelCompletionsOptions): Promise<{
|
|
83
83
|
parallelDetected: boolean;
|
|
84
84
|
rebaseTriggered: boolean;
|
|
85
85
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-retry-helpers.d.ts","sourceRoot":"","sources":["../src/wu-done-retry-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwBH;;;;;;;;;;;GAWG;AACH,wBAAsB,+BAA+B,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"wu-done-retry-helpers.d.ts","sourceRoot":"","sources":["../src/wu-done-retry-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAwBH;;;;;;;;;;;GAWG;AACH,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,mBAgC3F;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,+BAA+B;IAC9C,yDAAyD;IACzD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,SAAS,EACrB,OAAO,GAAE,+BAAoC;;;GAmD9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS;;GAqBrF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gCAAgC;IAC/C,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,SAAS,EACd,UAAU,EAAE,SAAS,EACrB,OAAO,GAAE,gCAAqC;;;GA6E/C"}
|
|
@@ -101,7 +101,7 @@ export async function squashPreviousCompletionAttempts(wuId, count, gitAdapter,
|
|
|
101
101
|
* WU-1584 Fix #2: Recovery loop should squash previous attempt commits
|
|
102
102
|
*
|
|
103
103
|
* When recovering from zombie state (status=done but worktree exists),
|
|
104
|
-
* first squash
|
|
104
|
+
* first squash UnsafeAny previous completion attempts to avoid "rebase hell".
|
|
105
105
|
*
|
|
106
106
|
* @param {string} wuId - WU ID
|
|
107
107
|
* @param {object} gitAdapter - Git adapter instance
|
|
@@ -166,7 +166,7 @@ export async function handleParallelCompletions(wuId, doc, gitAdapter, options =
|
|
|
166
166
|
`Manual resolution required:\n` +
|
|
167
167
|
`1. cd ${worktreePath || 'your-worktree'}\n` +
|
|
168
168
|
`2. git fetch origin && git rebase origin/main\n` +
|
|
169
|
-
`3. Resolve conflicts if
|
|
169
|
+
`3. Resolve conflicts if UnsafeAny\n` +
|
|
170
170
|
`4. Retry wu:done`, { wuId, originalError: error.message });
|
|
171
171
|
}
|
|
172
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-retry-helpers.js","sourceRoot":"","sources":["../src/wu-done-retry-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,EACL,GAAG,EACH,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,yBAAyB,GAAG,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,
|
|
1
|
+
{"version":3,"file":"wu-done-retry-helpers.js","sourceRoot":"","sources":["../src/wu-done-retry-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/wu-done-ui.d.ts
CHANGED
|
@@ -20,10 +20,10 @@
|
|
|
20
20
|
* @param {number} options.durationMs - Duration in milliseconds
|
|
21
21
|
* @param {boolean} [options.isWorktreeMode=true] - True for worktree mode, false for branch-only
|
|
22
22
|
*/
|
|
23
|
-
export declare function printGateFailureBox({ id, location, durationMs, isWorktreeMode }: {
|
|
24
|
-
id:
|
|
25
|
-
location:
|
|
26
|
-
durationMs:
|
|
23
|
+
export declare function printGateFailureBox({ id, location, durationMs, isWorktreeMode, }: {
|
|
24
|
+
id: string;
|
|
25
|
+
location: string;
|
|
26
|
+
durationMs: number;
|
|
27
27
|
isWorktreeMode?: boolean;
|
|
28
28
|
}): void;
|
|
29
29
|
/**
|
|
@@ -34,5 +34,5 @@ export declare function printGateFailureBox({ id, location, durationMs, isWorktr
|
|
|
34
34
|
*
|
|
35
35
|
* @param {string} statusOutput - Raw git status --porcelain output
|
|
36
36
|
*/
|
|
37
|
-
export declare function printStatusPreview(statusOutput:
|
|
37
|
+
export declare function printStatusPreview(statusOutput: UnsafeAny): void;
|
|
38
38
|
//# sourceMappingURL=wu-done-ui.d.ts.map
|
package/dist/wu-done-ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-ui.d.ts","sourceRoot":"","sources":["../src/wu-done-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"wu-done-ui.d.ts","sourceRoot":"","sources":["../src/wu-done-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,EAAE,EACF,QAAQ,EACR,UAAU,EACV,cAAqB,GACtB,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,QA6BA;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,SAAS,QAczD"}
|
package/dist/wu-done-ui.js
CHANGED
|
@@ -22,7 +22,7 @@ import { UI, LOG_PREFIX, STRING_LITERALS } from './wu-constants.js';
|
|
|
22
22
|
* @param {number} options.durationMs - Duration in milliseconds
|
|
23
23
|
* @param {boolean} [options.isWorktreeMode=true] - True for worktree mode, false for branch-only
|
|
24
24
|
*/
|
|
25
|
-
export function printGateFailureBox({ id, location, durationMs, isWorktreeMode = true }) {
|
|
25
|
+
export function printGateFailureBox({ id, location, durationMs, isWorktreeMode = true, }) {
|
|
26
26
|
const width = UI.ERROR_BOX_WIDTH;
|
|
27
27
|
const duration = prettyMs(durationMs, { secondsDecimalDigits: 0 });
|
|
28
28
|
console.error(`\n${'═'.repeat(width)}`);
|
|
@@ -57,7 +57,9 @@ export function printGateFailureBox({ id, location, durationMs, isWorktreeMode =
|
|
|
57
57
|
* @param {string} statusOutput - Raw git status --porcelain output
|
|
58
58
|
*/
|
|
59
59
|
export function printStatusPreview(statusOutput) {
|
|
60
|
-
const lines = statusOutput
|
|
60
|
+
const lines = statusOutput
|
|
61
|
+
.split(STRING_LITERALS.NEWLINE)
|
|
62
|
+
.filter((line) => line.trim());
|
|
61
63
|
const previewLimit = UI.STATUS_PREVIEW_LINES;
|
|
62
64
|
const preview = lines.slice(0, previewLimit);
|
|
63
65
|
console.warn(`${LOG_PREFIX.DONE} ⚠️ Working tree still has changes after rollback:`);
|
package/dist/wu-done-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-ui.js","sourceRoot":"","sources":["../src/wu-done-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"wu-done-ui.js","sourceRoot":"","sources":["../src/wu-done-ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,28 @@ interface ExposureDefaultResult {
|
|
|
5
5
|
applied: boolean;
|
|
6
6
|
exposure?: string;
|
|
7
7
|
}
|
|
8
|
-
|
|
8
|
+
interface WUDoneValidationDoc {
|
|
9
|
+
id?: string;
|
|
10
|
+
lane?: string;
|
|
11
|
+
type?: string;
|
|
12
|
+
exposure?: string;
|
|
13
|
+
status?: string;
|
|
14
|
+
locked?: boolean;
|
|
15
|
+
completed?: string;
|
|
16
|
+
completed_at?: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
acceptance?: unknown;
|
|
19
|
+
code_paths?: unknown;
|
|
20
|
+
tests?: unknown;
|
|
21
|
+
test_paths?: unknown;
|
|
22
|
+
}
|
|
23
|
+
interface ValidatePostMutationInput {
|
|
24
|
+
id: string;
|
|
25
|
+
wuPath: string;
|
|
26
|
+
stampPath: string;
|
|
27
|
+
eventsPath?: string | null;
|
|
28
|
+
}
|
|
29
|
+
export declare function applyExposureDefaults(doc: WUDoneValidationDoc | null | undefined): ExposureDefaultResult;
|
|
9
30
|
/**
|
|
10
31
|
* WU-1351: Validate code_paths files exist on main branch
|
|
11
32
|
*
|
|
@@ -22,10 +43,10 @@ export interface ValidateCodePathsExistOptions {
|
|
|
22
43
|
/** Worktree path for worktree mode */
|
|
23
44
|
worktreePath?: string | null;
|
|
24
45
|
}
|
|
25
|
-
export declare function validateCodePathsExist(doc:
|
|
46
|
+
export declare function validateCodePathsExist(doc: WUDoneValidationDoc, id: string, options?: ValidateCodePathsExistOptions): Promise<{
|
|
26
47
|
valid: boolean;
|
|
27
|
-
errors:
|
|
28
|
-
missing:
|
|
48
|
+
errors: string[];
|
|
49
|
+
missing: string[];
|
|
29
50
|
}>;
|
|
30
51
|
/**
|
|
31
52
|
* Validate WU spec completeness (WU-1162, WU-1280)
|
|
@@ -33,9 +54,9 @@ export declare function validateCodePathsExist(doc: any, id: any, options?: Vali
|
|
|
33
54
|
* Ensures WU specifications are complete before allowing wu:done to proceed.
|
|
34
55
|
* Prevents placeholder WUs from being marked as done.
|
|
35
56
|
*/
|
|
36
|
-
export declare function validateSpecCompleteness(doc:
|
|
57
|
+
export declare function validateSpecCompleteness(doc: WUDoneValidationDoc, _id: string): {
|
|
37
58
|
valid: boolean;
|
|
38
|
-
errors:
|
|
59
|
+
errors: string[];
|
|
39
60
|
};
|
|
40
61
|
/**
|
|
41
62
|
* WU-1617: Post-mutation validation for wu:done
|
|
@@ -46,14 +67,9 @@ export declare function validateSpecCompleteness(doc: any, _id: any): {
|
|
|
46
67
|
* 3. Stamp file exists
|
|
47
68
|
* 4. State store derives to done (when eventsPath is provided)
|
|
48
69
|
*/
|
|
49
|
-
export declare function validatePostMutation({ id, wuPath, stampPath, eventsPath }: {
|
|
50
|
-
id: any;
|
|
51
|
-
wuPath: any;
|
|
52
|
-
stampPath: any;
|
|
53
|
-
eventsPath?: any;
|
|
54
|
-
}): {
|
|
70
|
+
export declare function validatePostMutation({ id, wuPath, stampPath, eventsPath, }: ValidatePostMutationInput): {
|
|
55
71
|
valid: boolean;
|
|
56
|
-
errors:
|
|
72
|
+
errors: string[];
|
|
57
73
|
};
|
|
58
74
|
/**
|
|
59
75
|
* WU-2242: Validate that test_paths is required for non-doc WUs
|
|
@@ -61,7 +77,7 @@ export declare function validatePostMutation({ id, wuPath, stampPath, eventsPath
|
|
|
61
77
|
* Enforces that WUs with code changes (non-documentation types with code_paths
|
|
62
78
|
* that contain actual code) have at least one test path specified.
|
|
63
79
|
*/
|
|
64
|
-
export declare function validateTestPathsRequired(wu:
|
|
80
|
+
export declare function validateTestPathsRequired(wu: WUDoneValidationDoc): {
|
|
65
81
|
valid: boolean;
|
|
66
82
|
error?: undefined;
|
|
67
83
|
} | {
|
|
@@ -71,16 +87,16 @@ export declare function validateTestPathsRequired(wu: any): {
|
|
|
71
87
|
/**
|
|
72
88
|
* WU-2310: Validate type vs code_paths at preflight (before transaction starts).
|
|
73
89
|
*/
|
|
74
|
-
export declare function validateTypeVsCodePathsPreflight(wu:
|
|
90
|
+
export declare function validateTypeVsCodePathsPreflight(wu: WUDoneValidationDoc): {
|
|
75
91
|
valid: boolean;
|
|
76
|
-
errors:
|
|
77
|
-
blockedPaths:
|
|
92
|
+
errors: string[];
|
|
93
|
+
blockedPaths: string[];
|
|
78
94
|
abortedBeforeTransaction: boolean;
|
|
79
95
|
};
|
|
80
96
|
/**
|
|
81
97
|
* WU-2310: Build error message for type vs code_paths preflight failure.
|
|
82
98
|
*/
|
|
83
|
-
export declare function buildTypeVsCodePathsErrorMessage(id:
|
|
99
|
+
export declare function buildTypeVsCodePathsErrorMessage(id: string, blockedPaths: string[]): string;
|
|
84
100
|
/**
|
|
85
101
|
* WU-1153: Validate that code_paths are committed before wu:done metadata updates
|
|
86
102
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wu-done-validation.d.ts","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"wu-done-validation.d.ts","sourceRoot":"","sources":["../src/wu-done-validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,yBAAyB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAC1C,qBAAqB,CAgBvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,6BAA6B;IAC5C,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,mBAAmB,EACxB,EAAE,EAAE,MAAM,EACV,OAAO,GAAE,6BAAkC;;;;GAoF5C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,MAAM;;;EAwE7E;AAwCD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,EAAE,EACF,MAAM,EACN,SAAS,EACT,UAAiB,GAClB,EAAE,yBAAyB;;;EAiF3B;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,mBAAmB;;;;;;EAuDhE;AA+BD;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,mBAAmB;;;;;EAgCvE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CA6B3F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,oCAAoC,CACxD,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3B,UAAU,EAAE;IAAE,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,EAChD,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiE3E;AAED;;;;;;GAMG;AACH,wBAAgB,mCAAmC,CACjD,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CA6BR"}
|
|
@@ -30,7 +30,9 @@ export async function validateCodePathsExist(doc, id, options = {}) {
|
|
|
30
30
|
const { targetBranch = BRANCHES.MAIN, worktreePath = null } = options;
|
|
31
31
|
const errors = [];
|
|
32
32
|
const missing = [];
|
|
33
|
-
const codePaths = doc.code_paths
|
|
33
|
+
const codePaths = Array.isArray(doc.code_paths)
|
|
34
|
+
? doc.code_paths.filter((entry) => typeof entry === 'string')
|
|
35
|
+
: [];
|
|
34
36
|
// Skip validation for WUs without code_paths (docs-only, process WUs)
|
|
35
37
|
if (codePaths.length === 0) {
|
|
36
38
|
console.log(`${LOG_PREFIX.DONE} ${EMOJI.INFO} No code_paths to validate for ${id}`);
|
|
@@ -85,7 +87,8 @@ export async function validateCodePathsExist(doc, id, options = {}) {
|
|
|
85
87
|
}
|
|
86
88
|
catch (err) {
|
|
87
89
|
// Non-fatal: warn but don't block if git command fails
|
|
88
|
-
|
|
90
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
91
|
+
console.warn(`${LOG_PREFIX.DONE} ${EMOJI.WARNING} Could not validate code_paths: ${message}`);
|
|
89
92
|
return { valid: true, errors: [], missing: [] };
|
|
90
93
|
}
|
|
91
94
|
}
|
|
@@ -131,12 +134,17 @@ export function validateSpecCompleteness(doc, _id) {
|
|
|
131
134
|
}
|
|
132
135
|
// Check code_paths for non-documentation WUs
|
|
133
136
|
if (doc.type !== WU_TYPES.DOCUMENTATION && doc.type !== WU_TYPES.PROCESS) {
|
|
134
|
-
|
|
137
|
+
const codePaths = Array.isArray(doc.code_paths) ? doc.code_paths : [];
|
|
138
|
+
if (codePaths.length === 0) {
|
|
135
139
|
errors.push('Code paths required for non-documentation WUs');
|
|
136
140
|
}
|
|
137
141
|
// WU-1280: Check tests array for non-documentation WUs
|
|
138
142
|
// Support both tests: (current) and test_paths: (legacy)
|
|
139
|
-
const testObj = doc.tests
|
|
143
|
+
const testObj = doc.tests && typeof doc.tests === 'object'
|
|
144
|
+
? doc.tests
|
|
145
|
+
: doc.test_paths && typeof doc.test_paths === 'object'
|
|
146
|
+
? doc.test_paths
|
|
147
|
+
: {};
|
|
140
148
|
// Helper to check if array has items
|
|
141
149
|
const hasItems = (arr) => Array.isArray(arr) && arr.length > 0;
|
|
142
150
|
const hasUnitTests = hasItems(testObj[TEST_TYPES.UNIT]);
|
|
@@ -198,7 +206,7 @@ function deriveStatusFromEventsContent(eventsContent, wuId) {
|
|
|
198
206
|
* 3. Stamp file exists
|
|
199
207
|
* 4. State store derives to done (when eventsPath is provided)
|
|
200
208
|
*/
|
|
201
|
-
export function validatePostMutation({ id, wuPath, stampPath, eventsPath = null }) {
|
|
209
|
+
export function validatePostMutation({ id, wuPath, stampPath, eventsPath = null, }) {
|
|
202
210
|
const errors = [];
|
|
203
211
|
// Check stamp file exists
|
|
204
212
|
if (!existsSync(stampPath)) {
|
|
@@ -246,7 +254,8 @@ export function validatePostMutation({ id, wuPath, stampPath, eventsPath = null
|
|
|
246
254
|
}
|
|
247
255
|
}
|
|
248
256
|
catch (err) {
|
|
249
|
-
|
|
257
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
258
|
+
errors.push(`Failed to parse WU YAML after mutation: ${message}`);
|
|
250
259
|
}
|
|
251
260
|
if (eventsPath) {
|
|
252
261
|
if (!existsSync(eventsPath)) {
|
|
@@ -263,7 +272,8 @@ export function validatePostMutation({ id, wuPath, stampPath, eventsPath = null
|
|
|
263
272
|
}
|
|
264
273
|
}
|
|
265
274
|
catch (err) {
|
|
266
|
-
|
|
275
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
276
|
+
errors.push(`Failed to parse state store after mutation: ${message}`);
|
|
267
277
|
}
|
|
268
278
|
}
|
|
269
279
|
}
|
|
@@ -276,22 +286,25 @@ export function validatePostMutation({ id, wuPath, stampPath, eventsPath = null
|
|
|
276
286
|
* that contain actual code) have at least one test path specified.
|
|
277
287
|
*/
|
|
278
288
|
export function validateTestPathsRequired(wu) {
|
|
289
|
+
const wuId = typeof wu.id === 'string' ? wu.id : 'WU-unknown';
|
|
279
290
|
// Skip validation for documentation and process WUs
|
|
280
291
|
if (wu.type === WU_TYPES.DOCUMENTATION || wu.type === WU_TYPES.PROCESS) {
|
|
281
292
|
return { valid: true };
|
|
282
293
|
}
|
|
283
294
|
// Skip if code_paths is empty or undefined
|
|
284
|
-
const codePaths = wu.code_paths
|
|
295
|
+
const codePaths = Array.isArray(wu.code_paths)
|
|
296
|
+
? wu.code_paths.filter((entry) => typeof entry === 'string')
|
|
297
|
+
: [];
|
|
285
298
|
if (codePaths.length === 0) {
|
|
286
299
|
return { valid: true };
|
|
287
300
|
}
|
|
288
301
|
// Skip if all code_paths are documentation paths
|
|
289
|
-
const hasCodeChanges = codePaths.some((
|
|
302
|
+
const hasCodeChanges = codePaths.some((codePath) => !isDocumentationPath(codePath));
|
|
290
303
|
if (!hasCodeChanges) {
|
|
291
304
|
return { valid: true };
|
|
292
305
|
}
|
|
293
306
|
// Check if tests object exists and has at least one test
|
|
294
|
-
const testObj = wu.tests
|
|
307
|
+
const testObj = wu.tests && typeof wu.tests === 'object' ? wu.tests : {};
|
|
295
308
|
// Helper to check if array has items
|
|
296
309
|
const hasItems = (arr) => Array.isArray(arr) && arr.length > 0;
|
|
297
310
|
const hasUnitTests = hasItems(testObj[TEST_TYPES.UNIT]);
|
|
@@ -302,7 +315,7 @@ export function validateTestPathsRequired(wu) {
|
|
|
302
315
|
if (!(hasUnitTests || hasE2ETests || hasManualTests || hasIntegrationTests)) {
|
|
303
316
|
return {
|
|
304
317
|
valid: false,
|
|
305
|
-
error: `${
|
|
318
|
+
error: `${wuId} requires test_paths: WU has code_paths but no tests specified. Add unit, e2e, integration, or manual tests.`,
|
|
306
319
|
};
|
|
307
320
|
}
|
|
308
321
|
// WU-2332: If we have tests, also check automated test requirement for code files
|
|
@@ -313,7 +326,7 @@ export function validateTestPathsRequired(wu) {
|
|
|
313
326
|
const errorSummary = automatedTestResult.errors[0]?.split('\n')[0] || 'Automated tests required';
|
|
314
327
|
return {
|
|
315
328
|
valid: false,
|
|
316
|
-
error: `${
|
|
329
|
+
error: `${wuId}: ${errorSummary}`,
|
|
317
330
|
};
|
|
318
331
|
}
|
|
319
332
|
return { valid: true };
|
|
@@ -352,6 +365,7 @@ function isAllowedDocsPath(filePath) {
|
|
|
352
365
|
export function validateTypeVsCodePathsPreflight(wu) {
|
|
353
366
|
const errors = [];
|
|
354
367
|
const blockedPaths = [];
|
|
368
|
+
const wuId = typeof wu.id === 'string' ? wu.id : 'WU-unknown';
|
|
355
369
|
// Only validate documentation WUs
|
|
356
370
|
if (wu.type !== WU_TYPES.DOCUMENTATION) {
|
|
357
371
|
return { valid: true, errors: [], blockedPaths: [], abortedBeforeTransaction: false };
|
|
@@ -369,7 +383,7 @@ export function validateTypeVsCodePathsPreflight(wu) {
|
|
|
369
383
|
}
|
|
370
384
|
if (blockedPaths.length > 0) {
|
|
371
385
|
const pathsList = blockedPaths.map((p) => ` - ${p}`).join('\n');
|
|
372
|
-
errors.push(`Documentation WU ${
|
|
386
|
+
errors.push(`Documentation WU ${wuId} has code_paths that would fail pre-commit hook:\n${pathsList}`);
|
|
373
387
|
return { valid: false, errors, blockedPaths, abortedBeforeTransaction: true };
|
|
374
388
|
}
|
|
375
389
|
return { valid: true, errors: [], blockedPaths: [], abortedBeforeTransaction: false };
|
|
@@ -440,9 +454,9 @@ export async function validateCodePathsCommittedBeforeDone(wu, gitAdapter, optio
|
|
|
440
454
|
// Git status porcelain format:
|
|
441
455
|
// XY PATH
|
|
442
456
|
// where X = staged, Y = working tree
|
|
443
|
-
// We care about
|
|
457
|
+
// We care about UnsafeAny file that's not in a clean state
|
|
444
458
|
const match = line.match(/^.{2}\s+(.+)$/);
|
|
445
|
-
if (match) {
|
|
459
|
+
if (match && match[1]) {
|
|
446
460
|
const filePath = match[1];
|
|
447
461
|
uncommittedFiles.add(filePath);
|
|
448
462
|
}
|
|
@@ -453,7 +467,7 @@ export async function validateCodePathsCommittedBeforeDone(wu, gitAdapter, optio
|
|
|
453
467
|
uncommittedPaths.push(codePath);
|
|
454
468
|
}
|
|
455
469
|
}
|
|
456
|
-
// If
|
|
470
|
+
// If UnsafeAny code_paths are uncommitted, validation fails
|
|
457
471
|
if (uncommittedPaths.length > 0) {
|
|
458
472
|
const count = uncommittedPaths.length;
|
|
459
473
|
const pathList = uncommittedPaths.map((p) => ` - ${p}`).join('\n');
|