groundswell 0.0.2 → 1.0.0
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/LICENSE +21 -0
- package/README.md +26 -9
- package/dist/cache/cache-key.d.ts +86 -0
- package/dist/cache/cache-key.d.ts.map +1 -0
- package/dist/cache/cache-key.js +204 -0
- package/dist/cache/cache-key.js.map +1 -0
- package/dist/cache/cache.d.ts +104 -0
- package/dist/cache/cache.d.ts.map +1 -0
- package/dist/cache/cache.js +179 -0
- package/dist/cache/cache.js.map +1 -0
- package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/core/agent.d.ts +203 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +833 -0
- package/dist/core/agent.js.map +1 -0
- package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
- package/dist/core/context.d.ts.map +1 -0
- package/dist/core/context.js +80 -0
- package/dist/core/context.js.map +1 -0
- package/dist/core/event-tree.d.ts +72 -0
- package/dist/core/event-tree.d.ts.map +1 -0
- package/dist/core/event-tree.js +211 -0
- package/dist/core/event-tree.js.map +1 -0
- package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
- package/dist/core/factory.d.ts.map +1 -0
- package/dist/core/factory.js +110 -0
- package/dist/core/factory.js.map +1 -0
- package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/logger.d.ts +50 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +91 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/mcp-handler.d.ts +127 -0
- package/dist/core/mcp-handler.d.ts.map +1 -0
- package/dist/core/mcp-handler.js +323 -0
- package/dist/core/mcp-handler.js.map +1 -0
- package/dist/core/prompt.d.ts +80 -0
- package/dist/core/prompt.d.ts.map +1 -0
- package/dist/core/prompt.js +120 -0
- package/dist/core/prompt.js.map +1 -0
- package/dist/core/workflow-context.d.ts +61 -0
- package/dist/core/workflow-context.d.ts.map +1 -0
- package/dist/core/workflow-context.js +358 -0
- package/dist/core/workflow-context.js.map +1 -0
- package/dist/core/workflow.d.ts +543 -0
- package/dist/core/workflow.d.ts.map +1 -0
- package/dist/core/workflow.js +986 -0
- package/dist/core/workflow.js.map +1 -0
- package/dist/debugger/event-replayer.d.ts +422 -0
- package/dist/debugger/event-replayer.d.ts.map +1 -0
- package/dist/debugger/event-replayer.js +639 -0
- package/dist/debugger/event-replayer.js.map +1 -0
- package/dist/debugger/index.d.ts +2 -0
- package/dist/debugger/index.d.ts.map +1 -0
- package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
- package/dist/debugger/index.js.map +1 -0
- package/dist/debugger/tree-debugger.d.ts +240 -0
- package/dist/debugger/tree-debugger.d.ts.map +1 -0
- package/dist/debugger/tree-debugger.js +620 -0
- package/dist/debugger/tree-debugger.js.map +1 -0
- package/dist/decorators/index.d.ts +4 -0
- package/dist/decorators/index.d.ts.map +1 -0
- package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/observed-state.d.ts +32 -0
- package/dist/decorators/observed-state.d.ts.map +1 -0
- package/dist/decorators/observed-state.js +79 -0
- package/dist/decorators/observed-state.js.map +1 -0
- package/dist/decorators/step.d.ts +15 -0
- package/dist/decorators/step.d.ts.map +1 -0
- package/dist/decorators/step.js +192 -0
- package/dist/decorators/step.js.map +1 -0
- package/dist/decorators/task.d.ts +50 -0
- package/dist/decorators/task.d.ts.map +1 -0
- package/dist/decorators/task.js +118 -0
- package/dist/decorators/task.js.map +1 -0
- package/dist/examples/index.d.ts +3 -0
- package/dist/examples/index.d.ts.map +1 -0
- package/{src/examples/index.ts → dist/examples/index.js} +1 -0
- package/dist/examples/index.js.map +1 -0
- package/dist/examples/tdd-orchestrator.d.ts +15 -0
- package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
- package/dist/examples/tdd-orchestrator.js +121 -0
- package/dist/examples/tdd-orchestrator.js.map +1 -0
- package/dist/examples/test-cycle-workflow.d.ts +14 -0
- package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
- package/dist/examples/test-cycle-workflow.js +116 -0
- package/dist/examples/test-cycle-workflow.js.map +1 -0
- package/dist/harnesses/claude-code-harness.d.ts +391 -0
- package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
- package/dist/harnesses/claude-code-harness.js +1076 -0
- package/dist/harnesses/claude-code-harness.js.map +1 -0
- package/dist/harnesses/harness-registry.d.ts +440 -0
- package/dist/harnesses/harness-registry.d.ts.map +1 -0
- package/dist/harnesses/harness-registry.js +543 -0
- package/dist/harnesses/harness-registry.js.map +1 -0
- package/dist/harnesses/index.d.ts +12 -0
- package/dist/harnesses/index.d.ts.map +1 -0
- package/dist/harnesses/index.js +11 -0
- package/dist/harnesses/index.js.map +1 -0
- package/dist/harnesses/pi-harness.d.ts +219 -0
- package/dist/harnesses/pi-harness.d.ts.map +1 -0
- package/dist/harnesses/pi-harness.js +676 -0
- package/dist/harnesses/pi-harness.js.map +1 -0
- package/dist/harnesses/pi-schema-converter.d.ts +24 -0
- package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
- package/dist/harnesses/pi-schema-converter.js +81 -0
- package/dist/harnesses/pi-schema-converter.js.map +1 -0
- package/dist/harnesses/register-defaults.d.ts +24 -0
- package/dist/harnesses/register-defaults.d.ts.map +1 -0
- package/dist/harnesses/register-defaults.js +40 -0
- package/dist/harnesses/register-defaults.js.map +1 -0
- package/dist/harnesses/session-store.d.ts +201 -0
- package/dist/harnesses/session-store.d.ts.map +1 -0
- package/dist/harnesses/session-store.js +254 -0
- package/dist/harnesses/session-store.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/reflection/index.d.ts +5 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
- package/dist/reflection/index.js.map +1 -0
- package/dist/reflection/reflection.d.ts +84 -0
- package/dist/reflection/reflection.d.ts.map +1 -0
- package/dist/reflection/reflection.js +344 -0
- package/dist/reflection/reflection.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +11 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/introspection.d.ts +165 -0
- package/dist/tools/introspection.d.ts.map +1 -0
- package/dist/tools/introspection.js +324 -0
- package/dist/tools/introspection.js.map +1 -0
- package/dist/types/agent.d.ts +1317 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +423 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/decorators.d.ts +40 -0
- package/dist/types/decorators.d.ts.map +1 -0
- package/dist/types/decorators.js +2 -0
- package/dist/types/decorators.js.map +1 -0
- package/dist/types/error-strategy.d.ts +13 -0
- package/dist/types/error-strategy.d.ts.map +1 -0
- package/dist/types/error-strategy.js +2 -0
- package/dist/types/error-strategy.js.map +1 -0
- package/dist/types/error.d.ts +20 -0
- package/dist/types/error.d.ts.map +1 -0
- package/dist/types/error.js +2 -0
- package/dist/types/error.js.map +1 -0
- package/dist/types/events.d.ts +113 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +2 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/harnesses.d.ts +474 -0
- package/dist/types/harnesses.d.ts.map +1 -0
- package/dist/types/harnesses.js +2 -0
- package/dist/types/harnesses.js.map +1 -0
- package/dist/types/index.d.ts +23 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logging.d.ts +24 -0
- package/dist/types/logging.d.ts.map +1 -0
- package/dist/types/logging.js +2 -0
- package/dist/types/logging.js.map +1 -0
- package/dist/types/observer.d.ts +18 -0
- package/dist/types/observer.d.ts.map +1 -0
- package/dist/types/observer.js +2 -0
- package/dist/types/observer.js.map +1 -0
- package/dist/types/prompt.d.ts +31 -0
- package/dist/types/prompt.d.ts.map +1 -0
- package/dist/types/prompt.js +6 -0
- package/dist/types/prompt.js.map +1 -0
- package/dist/types/providers.d.ts +691 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/providers.js +14 -0
- package/dist/types/providers.js.map +1 -0
- package/dist/types/reflection.d.ts +96 -0
- package/dist/types/reflection.d.ts.map +1 -0
- package/dist/types/reflection.js +24 -0
- package/dist/types/reflection.js.map +1 -0
- package/dist/types/restart.d.ts +132 -0
- package/dist/types/restart.d.ts.map +1 -0
- package/dist/types/restart.js +2 -0
- package/dist/types/restart.js.map +1 -0
- package/dist/types/sdk-primitives.d.ts +118 -0
- package/dist/types/sdk-primitives.d.ts.map +1 -0
- package/dist/types/sdk-primitives.js +6 -0
- package/dist/types/sdk-primitives.js.map +1 -0
- package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
- package/dist/types/snapshot.d.ts.map +1 -0
- package/dist/types/snapshot.js +2 -0
- package/dist/types/snapshot.js.map +1 -0
- package/dist/types/streaming.d.ts +194 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/dist/types/streaming.js +67 -0
- package/dist/types/streaming.js.map +1 -0
- package/dist/types/workflow-context.d.ts +275 -0
- package/dist/types/workflow-context.d.ts.map +1 -0
- package/dist/types/workflow-context.js +8 -0
- package/dist/types/workflow-context.js.map +1 -0
- package/dist/types/workflow.d.ts +30 -0
- package/dist/types/workflow.d.ts.map +1 -0
- package/dist/types/workflow.js +2 -0
- package/dist/types/workflow.js.map +1 -0
- package/dist/utils/agent-validation.d.ts +88 -0
- package/dist/utils/agent-validation.d.ts.map +1 -0
- package/dist/utils/agent-validation.js +87 -0
- package/dist/utils/agent-validation.js.map +1 -0
- package/dist/utils/delay.d.ts +7 -0
- package/dist/utils/delay.d.ts.map +1 -0
- package/dist/utils/delay.js +9 -0
- package/dist/utils/delay.js.map +1 -0
- package/dist/utils/harness-config.d.ts +180 -0
- package/dist/utils/harness-config.d.ts.map +1 -0
- package/dist/utils/harness-config.js +311 -0
- package/dist/utils/harness-config.js.map +1 -0
- package/dist/utils/id.d.ts +6 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +12 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +13 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/model-spec.d.ts +110 -0
- package/dist/utils/model-spec.d.ts.map +1 -0
- package/dist/utils/model-spec.js +149 -0
- package/dist/utils/model-spec.js.map +1 -0
- package/dist/utils/observable.d.ts +54 -0
- package/dist/utils/observable.d.ts.map +1 -0
- package/dist/utils/observable.js +82 -0
- package/dist/utils/observable.js.map +1 -0
- package/dist/utils/provider-config.d.ts +10 -0
- package/dist/utils/provider-config.d.ts.map +1 -0
- package/dist/utils/provider-config.js +10 -0
- package/dist/utils/provider-config.js.map +1 -0
- package/dist/utils/restart-analysis.d.ts +202 -0
- package/dist/utils/restart-analysis.d.ts.map +1 -0
- package/dist/utils/restart-analysis.js +426 -0
- package/dist/utils/restart-analysis.js.map +1 -0
- package/dist/utils/session-serialization.d.ts +118 -0
- package/dist/utils/session-serialization.d.ts.map +1 -0
- package/dist/utils/session-serialization.js +217 -0
- package/dist/utils/session-serialization.js.map +1 -0
- package/dist/utils/workflow-error-utils.d.ts +22 -0
- package/dist/utils/workflow-error-utils.d.ts.map +1 -0
- package/dist/utils/workflow-error-utils.js +45 -0
- package/dist/utils/workflow-error-utils.js.map +1 -0
- package/package.json +34 -5
- package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
- package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
- package/.claude/commands/task-breakdown.md +0 -94
- package/.claude/settings.local.json +0 -9
- package/.claude/system_prompts/task-breakdown.md +0 -101
- package/CHANGELOG.md +0 -188
- package/PRD.md +0 -543
- package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
- package/PRPs/PRDs/002-agent-prompt.md +0 -390
- package/PRPs/PRDs/003-agent-prompt.md +0 -943
- package/PRPs/PRDs/004-agent-prompt.md +0 -1136
- package/PRPs/PRDs/tasks-001.json +0 -492
- package/PRPs/README.md +0 -83
- package/PRPs/templates/prp_base.md +0 -222
- package/docs/agent.md +0 -422
- package/docs/prompt.md +0 -419
- package/docs/workflow.md +0 -600
- package/examples/README.md +0 -258
- package/examples/examples/01-basic-workflow.ts +0 -100
- package/examples/examples/02-decorator-options.ts +0 -217
- package/examples/examples/03-parent-child.ts +0 -241
- package/examples/examples/04-observers-debugger.ts +0 -340
- package/examples/examples/05-error-handling.ts +0 -387
- package/examples/examples/06-concurrent-tasks.ts +0 -352
- package/examples/examples/07-agent-loops.ts +0 -432
- package/examples/examples/08-sdk-features.ts +0 -667
- package/examples/examples/09-reflection.ts +0 -573
- package/examples/examples/10-introspection.ts +0 -550
- package/examples/examples/11-reparenting-workflows.ts +0 -269
- package/examples/index.ts +0 -147
- package/examples/utils/helpers.ts +0 -57
- package/package-lock.json +0 -2398
- package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
- package/plan/001_d3bb02af4886/backlog.json +0 -867
- package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
- package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
- package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
- package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
- package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
- package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
- package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
- package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
- package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
- package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
- package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
- package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
- package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
- package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
- package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
- package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
- package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
- package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
- package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
- package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
- package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
- package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
- package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
- package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
- package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
- package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
- package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
- package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
- package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
- package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
- package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
- package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
- package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
- package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
- package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
- package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
- package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
- package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
- package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
- package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
- package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
- package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
- package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
- package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
- package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
- package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
- package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
- package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
- package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
- package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
- package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
- package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
- package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
- package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
- package/scripts/generate-llms-full.ts +0 -206
- package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
- package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
- package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
- package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
- package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
- package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
- package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
- package/src/__tests__/adversarial/edge-case.test.ts +0 -703
- package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
- package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
- package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
- package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
- package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
- package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
- package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
- package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
- package/src/__tests__/helpers/index.ts +0 -18
- package/src/__tests__/helpers/tree-verification.ts +0 -257
- package/src/__tests__/integration/agent-workflow.test.ts +0 -256
- package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
- package/src/__tests__/integration/observer-logging.test.ts +0 -643
- package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
- package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
- package/src/__tests__/unit/agent.test.ts +0 -169
- package/src/__tests__/unit/cache-key.test.ts +0 -182
- package/src/__tests__/unit/cache.test.ts +0 -172
- package/src/__tests__/unit/context.test.ts +0 -217
- package/src/__tests__/unit/decorators.test.ts +0 -100
- package/src/__tests__/unit/introspection-tools.test.ts +0 -277
- package/src/__tests__/unit/logger.test.ts +0 -293
- package/src/__tests__/unit/observable.test.ts +0 -321
- package/src/__tests__/unit/prompt.test.ts +0 -135
- package/src/__tests__/unit/reflection.test.ts +0 -210
- package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
- package/src/__tests__/unit/tree-debugger.test.ts +0 -85
- package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
- package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
- package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
- package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
- package/src/__tests__/unit/workflow.test.ts +0 -357
- package/src/cache/cache-key.ts +0 -244
- package/src/cache/cache.ts +0 -236
- package/src/core/agent.ts +0 -593
- package/src/core/event-tree.ts +0 -260
- package/src/core/logger.ts +0 -112
- package/src/core/mcp-handler.ts +0 -184
- package/src/core/prompt.ts +0 -150
- package/src/core/workflow-context.ts +0 -351
- package/src/core/workflow.ts +0 -540
- package/src/debugger/tree-debugger.ts +0 -255
- package/src/decorators/observed-state.ts +0 -95
- package/src/decorators/step.ts +0 -139
- package/src/decorators/task.ts +0 -159
- package/src/examples/tdd-orchestrator.ts +0 -65
- package/src/examples/test-cycle-workflow.ts +0 -64
- package/src/index.ts +0 -142
- package/src/reflection/reflection.ts +0 -407
- package/src/tools/index.ts +0 -36
- package/src/tools/introspection.ts +0 -464
- package/src/types/agent.ts +0 -90
- package/src/types/decorators.ts +0 -32
- package/src/types/error-strategy.ts +0 -13
- package/src/types/error.ts +0 -20
- package/src/types/events.ts +0 -75
- package/src/types/index.ts +0 -55
- package/src/types/logging.ts +0 -24
- package/src/types/observer.ts +0 -18
- package/src/types/prompt.ts +0 -40
- package/src/types/reflection.ts +0 -117
- package/src/types/sdk-primitives.ts +0 -128
- package/src/types/workflow-context.ts +0 -163
- package/src/types/workflow.ts +0 -37
- package/src/utils/id.ts +0 -11
- package/src/utils/index.ts +0 -4
- package/src/utils/observable.ts +0 -106
- package/src/utils/workflow-error-utils.ts +0 -56
- package/tsconfig.json +0 -22
- package/vitest.config.ts +0 -16
|
@@ -1,484 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"backlog": [
|
|
3
|
-
{
|
|
4
|
-
"type": "Phase",
|
|
5
|
-
"id": "P1",
|
|
6
|
-
"title": "Bug Fixes - Hierarchical Workflow Engine",
|
|
7
|
-
"status": "Complete",
|
|
8
|
-
"description": "Fix critical, major, and minor bugs identified during PRD validation testing. All fixes maintain backward compatibility and preserve the existing test suite's 100% pass rate.",
|
|
9
|
-
"milestones": [
|
|
10
|
-
{
|
|
11
|
-
"type": "Milestone",
|
|
12
|
-
"id": "P1.M1",
|
|
13
|
-
"title": "Critical Fixes - Signature Mismatches",
|
|
14
|
-
"status": "Complete",
|
|
15
|
-
"description": "Fix critical PRD signature mismatches that violate the public API contract.",
|
|
16
|
-
"tasks": [
|
|
17
|
-
{
|
|
18
|
-
"type": "Task",
|
|
19
|
-
"id": "P1.M1.T1",
|
|
20
|
-
"title": "Fix WorkflowLogger.child() Signature Mismatch",
|
|
21
|
-
"status": "Complete",
|
|
22
|
-
"description": "Update WorkflowLogger.child() signature from child(parentLogId: string) to child(meta: Partial<LogEntry>) to match PRD specification in Section 12.1.",
|
|
23
|
-
"subtasks": [
|
|
24
|
-
{
|
|
25
|
-
"type": "Subtask",
|
|
26
|
-
"id": "P1.M1.T1.S1",
|
|
27
|
-
"title": "Research PRD specification for child() signature",
|
|
28
|
-
"status": "Complete",
|
|
29
|
-
"story_points": 1,
|
|
30
|
-
"dependencies": [],
|
|
31
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, WorkflowLogger is at src/core/logger.ts with current signature child(parentLogId: string). PRD Section 12.1 specifies child(meta: Partial<LogEntry>).\n2. INPUT: Access to PRD documentation and existing logger implementation.\n3. LOGIC: Read PRD Section 12.1 to understand exact signature requirements. Compare with src/core/logger.ts:84 implementation. Document the differences and create a migration plan.\n4. OUTPUT: Create plan/bugfix/architecture/logger_child_signature_analysis.md documenting the PRD spec, current implementation, differences, and recommended approach."
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"type": "Subtask",
|
|
35
|
-
"id": "P1.M1.T1.S2",
|
|
36
|
-
"title": "Update WorkflowLogger.child() to accept Partial<LogEntry>",
|
|
37
|
-
"status": "Complete",
|
|
38
|
-
"story_points": 2,
|
|
39
|
-
"dependencies": [
|
|
40
|
-
"P1.M1.T1.S1"
|
|
41
|
-
],
|
|
42
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, LogEntry interface has fields: id, workflowId, timestamp, level, message, data, parentLogId. The child() method should extract parentLogId from meta parameter.\n2. INPUT: Analysis from S1 documenting the required signature change.\n3. LOGIC: Modify src/core/logger.ts:84 child() method signature from child(parentLogId: string) to child(meta: Partial<LogEntry>). Extract parentLogId from meta.parentLogId or generate from meta.id if parentLogId not provided. Maintain backward compatibility by accepting string as shorthand for parentLogId.\n4. OUTPUT: Updated child() method that accepts Partial<LogEntry> and is backward compatible with string argument. All existing calls to child() continue to work."
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"type": "Subtask",
|
|
46
|
-
"id": "P1.M1.T1.S3",
|
|
47
|
-
"title": "Add tests for new child() signature with Partial<LogEntry>",
|
|
48
|
-
"status": "Complete",
|
|
49
|
-
"story_points": 2,
|
|
50
|
-
"dependencies": [
|
|
51
|
-
"P1.M1.T1.S2"
|
|
52
|
-
],
|
|
53
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, logger tests are in src/__tests__/unit/ folder. Test patterns use vitest with describe/it blocks.\n2. INPUT: Updated child() implementation from S2.\n3. LOGIC: Create tests in appropriate test file covering: child() with Partial<LogEntry> containing parentLogId, child() with Partial<LogEntry> containing id (should use as parentLogId), child() with string (backward compatibility), child() with empty object (should generate parentLogId). Verify parentLogId is correctly set in child logger's log entries.\n4. OUTPUT: New test suite for child() method covering all scenarios. All tests pass including backward compatibility cases."
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
"type": "Subtask",
|
|
57
|
-
"id": "P1.M1.T1.S4",
|
|
58
|
-
"title": "Verify all existing child() calls still work",
|
|
59
|
-
"status": "Complete",
|
|
60
|
-
"story_points": 1,
|
|
61
|
-
"dependencies": [
|
|
62
|
-
"P1.M1.T1.S3"
|
|
63
|
-
],
|
|
64
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, child() is used internally in WorkflowLogger and potentially in examples/tests. Use Grep to find all usages.\n2. INPUT: Updated child() implementation from S2.\n3. LOGIC: Search codebase for all calls to .child() method. Manually verify each call works with new signature. Run full test suite to ensure 344 existing tests still pass. Fix any breaking issues found.\n4. OUTPUT: All 344 existing tests pass. Document any edge cases discovered and how they were handled."
|
|
65
|
-
}
|
|
66
|
-
]
|
|
67
|
-
}
|
|
68
|
-
]
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
"type": "Milestone",
|
|
72
|
-
"id": "P1.M2",
|
|
73
|
-
"title": "Major Fixes - Concurrent Execution & Error Handling",
|
|
74
|
-
"status": "Complete",
|
|
75
|
-
"description": "Fix concurrent task execution error handling and implement the missing ErrorMergeStrategy functionality.",
|
|
76
|
-
"tasks": [
|
|
77
|
-
{
|
|
78
|
-
"type": "Task",
|
|
79
|
-
"id": "P1.M2.T1",
|
|
80
|
-
"title": "Replace Promise.all with Promise.allSettled in Concurrent Tasks",
|
|
81
|
-
"status": "Complete",
|
|
82
|
-
"description": "Update @Task decorator to use Promise.allSettled() instead of Promise.all() for concurrent execution, ensuring all child workflows complete even if some fail.",
|
|
83
|
-
"subtasks": [
|
|
84
|
-
{
|
|
85
|
-
"type": "Subtask",
|
|
86
|
-
"id": "P1.M2.T1.S1",
|
|
87
|
-
"title": "Analyze current Promise.all implementation in @Task decorator",
|
|
88
|
-
"status": "Complete",
|
|
89
|
-
"story_points": 1,
|
|
90
|
-
"dependencies": [],
|
|
91
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/error_handling_patterns.md, Promise.all is at src/decorators/task.ts:112. The implementation filters runnable workflows and executes them with Promise.all().\n2. INPUT: Access to src/decorators/task.ts and related test files.\n3. LOGIC: Read src/decorators/task.ts lines 104-114. Understand the runnable filtering logic. Document how errors currently propagate. Identify what happens when one concurrent workflow fails.\n4. OUTPUT: Create plan/bugfix/architecture/promise_all_analysis.md documenting current behavior, error flow, and requirements for Promise.allSettled migration."
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"type": "Subtask",
|
|
95
|
-
"id": "P1.M2.T1.S2",
|
|
96
|
-
"title": "Implement Promise.allSettled with error collection",
|
|
97
|
-
"status": "Complete",
|
|
98
|
-
"story_points": 2,
|
|
99
|
-
"dependencies": [
|
|
100
|
-
"P1.M2.T1.S1"
|
|
101
|
-
],
|
|
102
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/concurrent_execution_best_practices.md, use Promise.allSettled() to collect both fulfilled and rejected results. Filter for rejected results to collect errors.\n2. INPUT: Analysis from S1 and research from concurrent_execution_best_practices.md.\n3. LOGIC: Replace Promise.all() with Promise.allSettled() at src/decorators/task.ts:112. After promises settle, filter for PromiseRejectedResult results. If errors exist, collect them into an array. Maintain backward compatibility by throwing first error if no error merge strategy is configured.\n4. OUTPUT: Updated @Task decorator using Promise.allSettled. Errors are collected but first error is still thrown (backward compatible behavior)."
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"type": "Subtask",
|
|
106
|
-
"id": "P1.M2.T1.S3",
|
|
107
|
-
"title": "Add tests for concurrent task failure scenarios",
|
|
108
|
-
"status": "Complete",
|
|
109
|
-
"story_points": 2,
|
|
110
|
-
"dependencies": [
|
|
111
|
-
"P1.M2.T1.S2"
|
|
112
|
-
],
|
|
113
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Adversarial tests are in src/__tests__/adversarial/.\n2. INPUT: Updated Promise.allSettled implementation from S2.\n3. LOGIC: Create tests covering: single child failure, multiple children failing, mixed success/failure, all children fail. Verify that all children complete execution even when some fail. Verify error collection works correctly.\n4. OUTPUT: New test suite for concurrent task failures. All tests pass demonstrating all workflows complete before error is thrown."
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"type": "Subtask",
|
|
117
|
-
"id": "P1.M2.T1.S4",
|
|
118
|
-
"title": "Run full test suite to ensure no regressions",
|
|
119
|
-
"status": "Complete",
|
|
120
|
-
"story_points": 1,
|
|
121
|
-
"dependencies": [
|
|
122
|
-
"P1.M2.T1.S3"
|
|
123
|
-
],
|
|
124
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, project has 344 existing tests with 100% pass rate. Use Bash tool to run tests.\n2. INPUT: Updated implementation and new tests from S3.\n3. LOGIC: Run full test suite using npm test or vitest command. Verify all 344 existing tests still pass. Verify new tests pass. Fix any regressions discovered.\n4. OUTPUT: Full test suite passes (344+ tests). No regressions introduced. Document any edge cases encountered."
|
|
125
|
-
}
|
|
126
|
-
]
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"type": "Task",
|
|
130
|
-
"id": "P1.M2.T2",
|
|
131
|
-
"title": "Implement ErrorMergeStrategy Support",
|
|
132
|
-
"status": "Complete",
|
|
133
|
-
"description": "Add errorMergeStrategy option to TaskOptions and implement error aggregation logic when enabled.",
|
|
134
|
-
"subtasks": [
|
|
135
|
-
{
|
|
136
|
-
"type": "Subtask",
|
|
137
|
-
"id": "P1.M2.T2.S1",
|
|
138
|
-
"title": "Add errorMergeStrategy to TaskOptions interface",
|
|
139
|
-
"status": "Complete",
|
|
140
|
-
"story_points": 1,
|
|
141
|
-
"dependencies": [
|
|
142
|
-
"P1.M2.T1.S2"
|
|
143
|
-
],
|
|
144
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/error_handling_patterns.md, ErrorMergeStrategy interface exists at src/types/error-strategy.ts but is not used. TaskOptions is in src/types/decorators.ts.\n2. INPUT: Access to src/types/decorators.ts and src/types/error-strategy.ts.\n3. LOGIC: Import ErrorMergeStrategy into src/types/decorators.ts. Add optional errorMergeStrategy?: ErrorMergeStrategy field to TaskOptions interface. Export updated interface.\n4. OUTPUT: TaskOptions interface includes errorMergeStrategy field. TypeScript compiles without errors."
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
"type": "Subtask",
|
|
148
|
-
"id": "P1.M2.T2.S2",
|
|
149
|
-
"title": "Implement error aggregation logic in @Task decorator",
|
|
150
|
-
"status": "Complete",
|
|
151
|
-
"story_points": 2,
|
|
152
|
-
"dependencies": [
|
|
153
|
-
"P1.M2.T2.S1"
|
|
154
|
-
],
|
|
155
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/concurrent_execution_best_practices.md, when errorMergeStrategy.enabled is true, use combine() function to merge errors. Default to simple aggregation if combine() not provided.\n2. INPUT: Updated TaskOptions from S1 and Promise.allSettled implementation from P1.M2.T1.S2.\n3. LOGIC: In @Task decorator after collecting errors from Promise.allSettled(), check if opts.errorMergeStrategy?.enabled is true. If true, call opts.errorMergeStrategy.combine?(errors) or use default merger. Throw merged error instead of first error. Emit error event with merged error.\n4. OUTPUT: @Task decorator implements error merge strategy when configured. Merged errors contain aggregated information from all failures."
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
"type": "Subtask",
|
|
159
|
-
"id": "P1.M2.T2.S3",
|
|
160
|
-
"title": "Create default error merger implementation",
|
|
161
|
-
"status": "Complete",
|
|
162
|
-
"story_points": 1,
|
|
163
|
-
"dependencies": [
|
|
164
|
-
"P1.M2.T2.S2"
|
|
165
|
-
],
|
|
166
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/error_handling_patterns.md, default merger should aggregate: message with count, all original errors, parent workflowId, concatenated stacks, aggregated logs.\n2. INPUT: Error aggregation requirements from research.\n3. LOGIC: Create utility function mergeWorkflowErrors(errors: WorkflowError[]): WorkflowError. Combine messages with count. Aggregate original errors into array. Use first error's workflowId (parent). Concatenate stacks with separator. Flatten all logs arrays. Return merged WorkflowError object.\n4. OUTPUT: mergeWorkflowErrors() function created and exported from appropriate module. Function creates comprehensive merged error."
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
"type": "Subtask",
|
|
170
|
-
"id": "P1.M2.T2.S4",
|
|
171
|
-
"title": "Add tests for ErrorMergeStrategy functionality",
|
|
172
|
-
"status": "Complete",
|
|
173
|
-
"story_points": 2,
|
|
174
|
-
"dependencies": [
|
|
175
|
-
"P1.M2.T2.S3"
|
|
176
|
-
],
|
|
177
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Tests should cover enabled/disabled, custom combine, default merge.\n2. INPUT: Error merge implementation from S2 and S3.\n3. LOGIC: Create tests covering: errorMergeStrategy.enabled=false (default behavior), errorMergeStrategy.enabled=true with default merge, errorMergeStrategy.enabled=true with custom combine function, maxMergeDepth validation if implemented. Verify merged error contains aggregated information.\n4. OUTPUT: Comprehensive test suite for ErrorMergeStrategy. All tests pass demonstrating correct error aggregation behavior."
|
|
178
|
-
}
|
|
179
|
-
]
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
"type": "Task",
|
|
183
|
-
"id": "P1.M2.T3",
|
|
184
|
-
"title": "Document trackTiming Default Value in PRD",
|
|
185
|
-
"status": "Complete",
|
|
186
|
-
"description": "Update PRD documentation to explicitly state that trackTiming defaults to true, matching the implementation.",
|
|
187
|
-
"subtasks": [
|
|
188
|
-
{
|
|
189
|
-
"type": "Subtask",
|
|
190
|
-
"id": "P1.M2.T3.S1",
|
|
191
|
-
"title": "Locate PRD section for @Step decorator options",
|
|
192
|
-
"status": "Complete",
|
|
193
|
-
"story_points": 1,
|
|
194
|
-
"dependencies": [],
|
|
195
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: Bug report references PRD Section 8.1 - @Step Decorator Options. PRD is likely in docs/ or PRDs/ directory.\n2. INPUT: Access to project documentation files.\n3. LOGIC: Use Grep or Glob to find PRD document containing @Step decorator options. Locate Section 8.1. Find trackTiming option documentation.\n4. OUTPUT: Identify exact file path and line number for trackTiming documentation."
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
"type": "Subtask",
|
|
199
|
-
"id": "P1.M2.T3.S2",
|
|
200
|
-
"title": "Update PRD to state trackTiming defaults to true",
|
|
201
|
-
"status": "Complete",
|
|
202
|
-
"story_points": 1,
|
|
203
|
-
"dependencies": [
|
|
204
|
-
"P1.M2.T3.S1"
|
|
205
|
-
],
|
|
206
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 4, implementation uses 'if (opts.trackTiming !== false)' meaning default is true. PRD should explicitly state this.\n2. INPUT: PRD file location from S1.\n3. LOGIC: Edit PRD Section 8.1 to add explicit default value statement. Example: 'trackTiming?: boolean - Whether to track step execution timing. Default: true.' Save updated PRD.\n4. OUTPUT: PRD updated with explicit trackTiming default value. Documentation matches implementation behavior."
|
|
207
|
-
}
|
|
208
|
-
]
|
|
209
|
-
}
|
|
210
|
-
]
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
"type": "Milestone",
|
|
214
|
-
"id": "P1.M3",
|
|
215
|
-
"title": "Minor Fixes - Logging & Performance",
|
|
216
|
-
"status": "Complete",
|
|
217
|
-
"description": "Fix minor issues related to observer error handling, performance optimizations, and validation.",
|
|
218
|
-
"tasks": [
|
|
219
|
-
{
|
|
220
|
-
"type": "Task",
|
|
221
|
-
"id": "P1.M3.T1",
|
|
222
|
-
"title": "Replace console.error with Logger for Observer Errors",
|
|
223
|
-
"status": "Complete",
|
|
224
|
-
"description": "Update observer error handling to use workflow logger instead of direct console.error output.",
|
|
225
|
-
"subtasks": [
|
|
226
|
-
{
|
|
227
|
-
"type": "Subtask",
|
|
228
|
-
"id": "P1.M3.T1.S1",
|
|
229
|
-
"title": "Find all console.error calls for observer errors",
|
|
230
|
-
"status": "Complete",
|
|
231
|
-
"story_points": 1,
|
|
232
|
-
"dependencies": [],
|
|
233
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 5 and plan/bugfix/architecture/codebase_structure.md, console.error occurs at src/core/workflow.ts:376 and src/core/logger.ts:27.\n2. INPUT: Access to codebase and Grep tool.\n3. LOGIC: Use Grep to search for 'console.error' in src/ directory. Identify which calls are for observer errors vs other purposes. Document exact locations and context.\n4. OUTPUT: List of all console.error calls with categorization (observer-related vs other)."
|
|
234
|
-
},
|
|
235
|
-
{
|
|
236
|
-
"type": "Subtask",
|
|
237
|
-
"id": "P1.M3.T1.S2",
|
|
238
|
-
"title": "Replace observer error console.error with logger.error",
|
|
239
|
-
"status": "Complete",
|
|
240
|
-
"story_points": 2,
|
|
241
|
-
"dependencies": [
|
|
242
|
-
"P1.M3.T1.S1"
|
|
243
|
-
],
|
|
244
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, Workflow class has this.logger property. Observers errors occur in try-catch blocks around observer callbacks.\n2. INPUT: List of observer-related console.error calls from S1.\n3. LOGIC: For each observer error console.error, replace with this.logger.error() call. Pass appropriate error context. Ensure logger is available in all contexts (may need to pass logger to functions that don't have it).\n4. OUTPUT: All observer errors logged through WorkflowLogger instead of console. No console.error calls remain for observer errors."
|
|
245
|
-
},
|
|
246
|
-
{
|
|
247
|
-
"type": "Subtask",
|
|
248
|
-
"id": "P1.M3.T1.S3",
|
|
249
|
-
"title": "Add tests for observer error logging",
|
|
250
|
-
"status": "Complete",
|
|
251
|
-
"story_points": 1,
|
|
252
|
-
"dependencies": [
|
|
253
|
-
"P1.M3.T1.S2"
|
|
254
|
-
],
|
|
255
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Observer tests should verify error handling.\n2. INPUT: Updated observer error handling from S2.\n3. LOGIC: Create test that adds observer throwing error. Verify error is logged to workflow logger (not console). Verify observer error doesn't crash workflow execution. Check log entries contain error context.\n4. OUTPUT: Test suite for observer error logging. All tests pass verifying errors go through logger."
|
|
256
|
-
}
|
|
257
|
-
]
|
|
258
|
-
},
|
|
259
|
-
{
|
|
260
|
-
"type": "Task",
|
|
261
|
-
"id": "P1.M3.T2",
|
|
262
|
-
"title": "Optimize Tree Debugger Node Map Updates",
|
|
263
|
-
"status": "Complete",
|
|
264
|
-
"description": "Implement incremental node map updates instead of full rebuild on tree changes.",
|
|
265
|
-
"subtasks": [
|
|
266
|
-
{
|
|
267
|
-
"type": "Subtask",
|
|
268
|
-
"id": "P1.M3.T2.S1",
|
|
269
|
-
"title": "Analyze tree debugger onTreeChanged implementation",
|
|
270
|
-
"status": "Complete",
|
|
271
|
-
"story_points": 1,
|
|
272
|
-
"dependencies": [],
|
|
273
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 7 and plan/bugfix/architecture/codebase_structure.md, onTreeChanged at src/debugger/tree-debugger.ts:80-84 clears and rebuilds entire nodeMap.\n2. INPUT: Access to src/debugger/tree-debugger.ts.\n3. LOGIC: Read onTreeChanged(), buildNodeMap(), and understand nodeMap structure. Identify what types of tree changes trigger onTreeChanged (childAttached, childDetached). Document when full rebuild is necessary vs when incremental update is possible.\n4. OUTPUT: Analysis document explaining current rebuild logic and opportunities for incremental updates."
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
"type": "Subtask",
|
|
277
|
-
"id": "P1.M3.T2.S2",
|
|
278
|
-
"title": "Implement incremental node map update for childDetached",
|
|
279
|
-
"status": "Complete",
|
|
280
|
-
"story_points": 2,
|
|
281
|
-
"dependencies": [
|
|
282
|
-
"P1.M3.T2.S1"
|
|
283
|
-
],
|
|
284
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, nodeMap is a Map<string, WorkflowNode>. For childDetached, only need to remove detached node and its descendants.\n2. INPUT: Analysis from S1.\n3. LOGIC: Modify onTreeChanged to detect event type. For childDetached events, recursively remove detached node and all its descendants from nodeMap. For childAttached, add new node and its descendants. For other events, keep full rebuild behavior. Add helper method removeNodeFromMap(node: WorkflowNode).\n4. OUTPUT: onTreeChanged implements incremental updates for attach/detach. Performance improves for large trees."
|
|
285
|
-
},
|
|
286
|
-
{
|
|
287
|
-
"type": "Subtask",
|
|
288
|
-
"id": "P1.M3.T2.S3",
|
|
289
|
-
"title": "Add benchmark tests for node map updates",
|
|
290
|
-
"status": "Complete",
|
|
291
|
-
"story_points": 1,
|
|
292
|
-
"dependencies": [
|
|
293
|
-
"P1.M3.T2.S2"
|
|
294
|
-
],
|
|
295
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, project has performance benchmarks in adversarial tests. Use performance.now() for timing.\n2. INPUT: Updated incremental update implementation from S2.\n3. LOGIC: Create benchmark test with large workflow tree (100+ nodes). Measure time for detaching single node with old full rebuild vs new incremental update. Verify incremental update is significantly faster.\n4. OUTPUT: Benchmark test demonstrating performance improvement. Incremental update is faster than full rebuild."
|
|
296
|
-
}
|
|
297
|
-
]
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
"type": "Task",
|
|
301
|
-
"id": "P1.M3.T3",
|
|
302
|
-
"title": "Add Workflow Name Validation",
|
|
303
|
-
"status": "Complete",
|
|
304
|
-
"description": "Add validation to reject empty or whitespace-only workflow names.",
|
|
305
|
-
"subtasks": [
|
|
306
|
-
{
|
|
307
|
-
"type": "Subtask",
|
|
308
|
-
"id": "P1.M3.T3.S1",
|
|
309
|
-
"title": "Determine validation requirements for workflow names",
|
|
310
|
-
"status": "Complete",
|
|
311
|
-
"story_points": 1,
|
|
312
|
-
"dependencies": [],
|
|
313
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 8, empty string names are currently accepted. Need to decide if validation should be added or if empty names are valid.\n2. INPUT: Access to PRD documentation and workflow examples.\n3. LOGIC: Check PRD for workflow name requirements. Review examples to see if empty names are used. Consult with team on whether empty names should be allowed. If validation is desired, define rules (non-empty? no whitespace? minimum length?).\n4. OUTPUT: Document decision on workflow name validation with rationale. If validation is chosen, specify exact validation rules."
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"type": "Subtask",
|
|
317
|
-
"id": "P1.M3.T3.S2",
|
|
318
|
-
"title": "Implement workflow name validation in constructor",
|
|
319
|
-
"status": "Complete",
|
|
320
|
-
"story_points": 1,
|
|
321
|
-
"dependencies": [
|
|
322
|
-
"P1.M3.T3.S1"
|
|
323
|
-
],
|
|
324
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, Workflow constructor takes name parameter. Validation should occur early in constructor.\n2. INPUT: Validation rules from S1.\n3. LOGIC: If validation is desired, add check at start of Workflow constructor. Throw error with descriptive message if name is invalid (empty, whitespace-only, etc.). Error type should be appropriate (TypeError or custom WorkflowValidationError). If validation is NOT desired, document that empty names are intentionally allowed.\n4. OUTPUT: Workflow name validation implemented OR documented as intentionally not validated. TypeScript compiles without errors."
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"type": "Subtask",
|
|
328
|
-
"id": "P1.M3.T3.S3",
|
|
329
|
-
"title": "Add tests for workflow name validation",
|
|
330
|
-
"status": "Complete",
|
|
331
|
-
"story_points": 1,
|
|
332
|
-
"dependencies": [
|
|
333
|
-
"P1.M3.T3.S2"
|
|
334
|
-
],
|
|
335
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Validation tests should use expect().toThrow() for invalid names.\n2. INPUT: Validation implementation from S2.\n3. LOGIC: If validation added: tests for empty string, whitespace-only, valid names. If validation NOT added: tests verifying empty names are accepted. Ensure tests match documented requirements.\n4. OUTPUT: Test suite for workflow name validation. All tests pass matching implementation behavior."
|
|
336
|
-
}
|
|
337
|
-
]
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
"type": "Task",
|
|
341
|
-
"id": "P1.M3.T4",
|
|
342
|
-
"title": "Consider Exposing isDescendantOf as Public API",
|
|
343
|
-
"status": "Complete",
|
|
344
|
-
"description": "Evaluate making the isDescendantOf method public for external ancestry checking.",
|
|
345
|
-
"subtasks": [
|
|
346
|
-
{
|
|
347
|
-
"type": "Subtask",
|
|
348
|
-
"id": "P1.M3.T4.S1",
|
|
349
|
-
"title": "Evaluate use cases for public isDescendantOf API",
|
|
350
|
-
"status": "Complete",
|
|
351
|
-
"story_points": 1,
|
|
352
|
-
"dependencies": [],
|
|
353
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report Issue 9, isDescendantOf is private and only used for cycle detection. Consider if external ancestry checks are useful.\n2. INPUT: Access to workflow examples, use cases, and potential user scenarios.\n3. LOGIC: Research if users need to check ancestry relationships. Look for feature requests, examples, or use cases where this would be helpful. Consider if this is internal implementation detail or useful public API. Evaluate security implications of exposing ancestry information.\n4. OUTPUT: Document recommendation: make public vs keep private. Include rationale and potential use cases if public."
|
|
354
|
-
},
|
|
355
|
-
{
|
|
356
|
-
"type": "Subtask",
|
|
357
|
-
"id": "P1.M3.T4.S2",
|
|
358
|
-
"title": "Implement public isDescendantOf if approved",
|
|
359
|
-
"status": "Complete",
|
|
360
|
-
"story_points": 1,
|
|
361
|
-
"dependencies": [
|
|
362
|
-
"P1.M3.T4.S1"
|
|
363
|
-
],
|
|
364
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, isDescendantOf is at src/core/workflow.ts:151-169. It's private and used internally.\n2. INPUT: Decision from S1.\n3. LOGIC: IF decision is to make public: change private keyword to public. Add JSDoc comment explaining usage and behavior. Add parameter validation. Consider if method should be on Workflow class or WorkflowNode interface. IF decision is to keep private: document that this is intentionally internal-only.\n4. OUTPUT: isDescendantOf is public with documentation OR documented as intentionally private. No breaking changes to existing code."
|
|
365
|
-
},
|
|
366
|
-
{
|
|
367
|
-
"type": "Subtask",
|
|
368
|
-
"id": "P1.M3.T4.S3",
|
|
369
|
-
"title": "Add tests for public isDescendantOf API",
|
|
370
|
-
"status": "Complete",
|
|
371
|
-
"story_points": 1,
|
|
372
|
-
"dependencies": [
|
|
373
|
-
"P1.M3.T4.S2"
|
|
374
|
-
],
|
|
375
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, test patterns use vitest. Ancestry tests should cover direct child, descendant, not descendant, circular reference scenarios.\n2. INPUT: Public API from S2 (if applicable).\n3. LOGIC: IF made public: tests covering true positive (is descendant), true negative (not descendant), edge cases (same workflow, circular reference). Verify method works from external code. IF kept private: no new tests needed (already tested internally).\n4. OUTPUT: Test suite for public isDescendantOf OR note that no tests needed for private method."
|
|
376
|
-
}
|
|
377
|
-
]
|
|
378
|
-
}
|
|
379
|
-
]
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
"type": "Milestone",
|
|
383
|
-
"id": "P1.M4",
|
|
384
|
-
"title": "Validation & Documentation",
|
|
385
|
-
"status": "Complete",
|
|
386
|
-
"description": "Ensure all bug fixes are validated, tested, and documented.",
|
|
387
|
-
"tasks": [
|
|
388
|
-
{
|
|
389
|
-
"type": "Task",
|
|
390
|
-
"id": "P1.M4.T1",
|
|
391
|
-
"title": "Run Full Test Suite and Verify 100% Pass Rate",
|
|
392
|
-
"status": "Complete",
|
|
393
|
-
"description": "Execute complete test suite to ensure all 344 existing tests pass plus new tests for bug fixes.",
|
|
394
|
-
"subtasks": [
|
|
395
|
-
{
|
|
396
|
-
"type": "Subtask",
|
|
397
|
-
"id": "P1.M4.T1.S1",
|
|
398
|
-
"title": "Run full test suite",
|
|
399
|
-
"status": "Complete",
|
|
400
|
-
"story_points": 1,
|
|
401
|
-
"dependencies": [],
|
|
402
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, project uses vitest. Run with npm test or vitest command.\n2. INPUT: All bug fix implementations from previous milestones.\n3. LOGIC: Execute full test suite using appropriate command. Capture total test count, pass count, fail count. Review any failing tests and determine if they're pre-existing failures or caused by bug fixes.\n4. OUTPUT: Test execution results showing 344+ tests passing. Document any failures and their causes."
|
|
403
|
-
},
|
|
404
|
-
{
|
|
405
|
-
"type": "Subtask",
|
|
406
|
-
"id": "P1.M4.T1.S2",
|
|
407
|
-
"title": "Fix any test failures caused by bug fixes",
|
|
408
|
-
"status": "Complete",
|
|
409
|
-
"story_points": 2,
|
|
410
|
-
"dependencies": [
|
|
411
|
-
"P1.M4.T1.S1"
|
|
412
|
-
],
|
|
413
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, existing tests cover PRD requirements. Bug fixes should not break existing functionality.\n2. INPUT: Test failures from S1.\n3. LOGIC: Analyze each failing test. Determine if failure is due to bug fix changing behavior (need to update test) or bug in fix implementation. Fix implementation bugs or update tests to reflect new correct behavior. Re-run tests until all pass.\n4. OUTPUT: All tests pass. 100% pass rate maintained. Document any test changes and rationale."
|
|
414
|
-
}
|
|
415
|
-
]
|
|
416
|
-
},
|
|
417
|
-
{
|
|
418
|
-
"type": "Task",
|
|
419
|
-
"id": "P1.M4.T2",
|
|
420
|
-
"title": "Create Bug Fix Summary Document",
|
|
421
|
-
"status": "Complete",
|
|
422
|
-
"description": "Document all bug fixes applied, including rationale, implementation details, and migration guide if needed.",
|
|
423
|
-
"subtasks": [
|
|
424
|
-
{
|
|
425
|
-
"type": "Subtask",
|
|
426
|
-
"id": "P1.M4.T2.S1",
|
|
427
|
-
"title": "Document critical and major bug fixes",
|
|
428
|
-
"status": "Complete",
|
|
429
|
-
"story_points": 2,
|
|
430
|
-
"dependencies": [
|
|
431
|
-
"P1.M4.T1.S2"
|
|
432
|
-
],
|
|
433
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report PRD, critical fixes: WorkflowLogger.child() signature. Major fixes: Promise.allSettled, ErrorMergeStrategy, trackTiming default.\n2. INPUT: All implemented bug fixes from P1.M1, P1.M2, P1.M3.\n3. LOGIC: Create comprehensive bug fix summary document. For each fix: describe issue, severity, solution, breaking changes (if any), migration steps. Include code examples showing before/after. Highlight any backward compatibility concerns.\n4. OUTPUT: Bug fix summary document at plan/bugfix/BUG_FIX_SUMMARY.md. Complete with all fixes, code examples, and migration guide."
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
"type": "Subtask",
|
|
437
|
-
"id": "P1.M4.T2.S2",
|
|
438
|
-
"title": "Update changelog and release notes",
|
|
439
|
-
"status": "Complete",
|
|
440
|
-
"story_points": 1,
|
|
441
|
-
"dependencies": [
|
|
442
|
-
"P1.M4.T2.S1"
|
|
443
|
-
],
|
|
444
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: Project likely has CHANGELOG.md or similar. If not, create one following standard format.\n2. INPUT: Bug fix summary from S1.\n3. LOGIC: Update CHANGELOG.md with new version entry. List all bug fixes categorized by severity. Note any breaking changes. Add migration guide links. Follow semantic versioning principles (determine if this is patch, minor, or major release).\n4. OUTPUT: Updated CHANGELOG.md with all bug fixes documented. Release notes ready for users."
|
|
445
|
-
}
|
|
446
|
-
]
|
|
447
|
-
},
|
|
448
|
-
{
|
|
449
|
-
"type": "Task",
|
|
450
|
-
"id": "P1.M4.T3",
|
|
451
|
-
"title": "Verify Backward Compatibility",
|
|
452
|
-
"status": "Complete",
|
|
453
|
-
"description": "Ensure all bug fixes maintain backward compatibility where possible and document any breaking changes.",
|
|
454
|
-
"subtasks": [
|
|
455
|
-
{
|
|
456
|
-
"type": "Subtask",
|
|
457
|
-
"id": "P1.M4.T3.S1",
|
|
458
|
-
"title": "Audit bug fixes for breaking changes",
|
|
459
|
-
"status": "Complete",
|
|
460
|
-
"story_points": 1,
|
|
461
|
-
"dependencies": [
|
|
462
|
-
"P1.M4.T2.S1"
|
|
463
|
-
],
|
|
464
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From bug report PRD, most fixes should be backward compatible. Potential breaking change: WorkflowLogger.child() signature change.\n2. INPUT: All bug fix implementations.\n3. LOGIC: Review each bug fix for breaking changes. Identify changes to public API signatures, behavior changes, removed features. Document which changes are breaking vs backward compatible. For breaking changes, assess if migration path exists.\n4. OUTPUT: List of breaking changes with severity assessment. Document mitigation strategies and migration paths."
|
|
465
|
-
},
|
|
466
|
-
{
|
|
467
|
-
"type": "Subtask",
|
|
468
|
-
"id": "P1.M4.T3.S2",
|
|
469
|
-
"title": "Add backward compatibility tests",
|
|
470
|
-
"status": "Complete",
|
|
471
|
-
"story_points": 2,
|
|
472
|
-
"dependencies": [
|
|
473
|
-
"P1.M4.T3.S1"
|
|
474
|
-
],
|
|
475
|
-
"context_scope": "CONTRACT DEFINITION:\n1. RESEARCH NOTE: From plan/bugfix/architecture/codebase_structure.md, existing tests provide good coverage. Need specific tests for old API usage patterns.\n2. INPUT: List of potentially breaking changes from S1.\n3. LOGIC: For each potentially breaking change, create tests using old API patterns. Verify old patterns still work or fail with clear error messages directing to new API. Test examples from documentation work as expected.\n4. OUTPUT: Backward compatibility test suite. Existing code patterns continue to work. Clear errors for deprecated patterns."
|
|
476
|
-
}
|
|
477
|
-
]
|
|
478
|
-
}
|
|
479
|
-
]
|
|
480
|
-
}
|
|
481
|
-
]
|
|
482
|
-
}
|
|
483
|
-
]
|
|
484
|
-
}
|