@calmo/task-runner 3.4.0 → 3.4.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.
Files changed (87) hide show
  1. package/.github/dependabot.yml +7 -7
  2. package/.github/workflows/ci.yml +4 -4
  3. package/.jules/backlog_maniac.md +1 -0
  4. package/.jules/nexus.md +1 -0
  5. package/.jules/sentinel.md +1 -0
  6. package/.releaserc.json +2 -7
  7. package/AGENTS.md +8 -2
  8. package/CHANGELOG.md +178 -174
  9. package/README.md +23 -23
  10. package/coverage/coverage-final.json +8 -8
  11. package/coverage/index.html +7 -7
  12. package/coverage/lcov-report/index.html +7 -7
  13. package/coverage/lcov-report/src/EventBus.ts.html +27 -21
  14. package/coverage/lcov-report/src/TaskGraphValidationError.ts.html +12 -3
  15. package/coverage/lcov-report/src/TaskGraphValidator.ts.html +152 -137
  16. package/coverage/lcov-report/src/TaskRunner.ts.html +48 -45
  17. package/coverage/lcov-report/src/TaskRunnerBuilder.ts.html +29 -5
  18. package/coverage/lcov-report/src/TaskRunnerExecutionConfig.ts.html +1 -1
  19. package/coverage/lcov-report/src/TaskStateManager.ts.html +1 -1
  20. package/coverage/lcov-report/src/WorkflowExecutor.ts.html +21 -12
  21. package/coverage/lcov-report/src/contracts/RunnerEvents.ts.html +1 -1
  22. package/coverage/lcov-report/src/contracts/index.html +1 -1
  23. package/coverage/lcov-report/src/index.html +8 -8
  24. package/coverage/lcov-report/src/strategies/DryRunExecutionStrategy.ts.html +4 -4
  25. package/coverage/lcov-report/src/strategies/RetryingExecutionStrategy.ts.html +29 -11
  26. package/coverage/lcov-report/src/strategies/StandardExecutionStrategy.ts.html +5 -5
  27. package/coverage/lcov-report/src/strategies/index.html +1 -1
  28. package/coverage/lcov.info +266 -262
  29. package/coverage/src/EventBus.ts.html +27 -21
  30. package/coverage/src/TaskGraphValidationError.ts.html +12 -3
  31. package/coverage/src/TaskGraphValidator.ts.html +152 -137
  32. package/coverage/src/TaskRunner.ts.html +48 -45
  33. package/coverage/src/TaskRunnerBuilder.ts.html +29 -5
  34. package/coverage/src/TaskRunnerExecutionConfig.ts.html +1 -1
  35. package/coverage/src/TaskStateManager.ts.html +1 -1
  36. package/coverage/src/WorkflowExecutor.ts.html +21 -12
  37. package/coverage/src/contracts/RunnerEvents.ts.html +1 -1
  38. package/coverage/src/contracts/index.html +1 -1
  39. package/coverage/src/index.html +8 -8
  40. package/coverage/src/strategies/DryRunExecutionStrategy.ts.html +4 -4
  41. package/coverage/src/strategies/RetryingExecutionStrategy.ts.html +29 -11
  42. package/coverage/src/strategies/StandardExecutionStrategy.ts.html +5 -5
  43. package/coverage/src/strategies/index.html +1 -1
  44. package/dist/EventBus.js +13 -11
  45. package/dist/EventBus.js.map +1 -1
  46. package/dist/TaskGraphValidationError.js.map +1 -1
  47. package/dist/TaskGraphValidator.js +9 -9
  48. package/dist/TaskGraphValidator.js.map +1 -1
  49. package/dist/TaskRunner.js.map +1 -1
  50. package/dist/TaskRunnerBuilder.js.map +1 -1
  51. package/dist/WorkflowExecutor.js +2 -1
  52. package/dist/WorkflowExecutor.js.map +1 -1
  53. package/dist/strategies/RetryingExecutionStrategy.js +3 -1
  54. package/dist/strategies/RetryingExecutionStrategy.js.map +1 -1
  55. package/dist/strategies/StandardExecutionStrategy.js +1 -1
  56. package/dist/strategies/StandardExecutionStrategy.js.map +1 -1
  57. package/openspec/AGENTS.md +81 -15
  58. package/openspec/changes/archive/2026-01-18-add-concurrency-control/proposal.md +7 -4
  59. package/openspec/changes/archive/2026-01-18-add-concurrency-control/tasks.md +1 -0
  60. package/openspec/changes/archive/2026-01-18-add-external-task-cancellation/proposal.md +4 -1
  61. package/openspec/changes/archive/2026-01-18-add-external-task-cancellation/tasks.md +2 -1
  62. package/openspec/changes/archive/2026-01-18-add-integration-tests/proposal.md +3 -0
  63. package/openspec/changes/archive/2026-01-18-add-integration-tests/tasks.md +1 -0
  64. package/openspec/changes/archive/2026-01-18-add-task-retry-policy/proposal.md +3 -0
  65. package/openspec/changes/archive/2026-01-18-add-task-retry-policy/tasks.md +1 -0
  66. package/openspec/changes/archive/2026-01-18-add-workflow-preview/proposal.md +3 -0
  67. package/openspec/changes/archive/2026-01-18-add-workflow-preview/tasks.md +1 -0
  68. package/openspec/changes/archive/2026-01-18-refactor-core-architecture/proposal.md +3 -0
  69. package/openspec/changes/archive/2026-01-18-refactor-core-architecture/tasks.md +1 -0
  70. package/openspec/changes/feat-per-task-timeout/proposal.md +11 -6
  71. package/openspec/changes/feat-per-task-timeout/tasks.md +1 -1
  72. package/openspec/project.md +21 -15
  73. package/package.json +1 -1
  74. package/src/EventBus.ts +18 -16
  75. package/src/TaskGraph.ts +8 -8
  76. package/src/TaskGraphValidationError.ts +4 -1
  77. package/src/TaskGraphValidator.ts +148 -143
  78. package/src/TaskRunner.ts +42 -41
  79. package/src/TaskRunnerBuilder.ts +11 -3
  80. package/src/WorkflowExecutor.ts +13 -10
  81. package/src/contracts/ITaskGraphValidator.ts +12 -12
  82. package/src/contracts/ValidationError.ts +6 -6
  83. package/src/contracts/ValidationResult.ts +4 -4
  84. package/src/strategies/DryRunExecutionStrategy.ts +3 -3
  85. package/src/strategies/RetryingExecutionStrategy.ts +15 -9
  86. package/src/strategies/StandardExecutionStrategy.ts +4 -4
  87. package/test-report.xml +108 -108
@@ -5,12 +5,12 @@
5
5
 
6
6
  version: 2
7
7
  updates:
8
- - package-ecosystem: 'npm' # See documentation for possible values
9
- directory: '/' # Location of package manifests
10
- versioning-strategy: 'lockfile-only'
8
+ - package-ecosystem: "npm" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ versioning-strategy: "lockfile-only"
11
11
  schedule:
12
- interval: 'weekly'
13
- - package-ecosystem: 'github-actions'
14
- directory: '/'
12
+ interval: "weekly"
13
+ - package-ecosystem: "github-actions"
14
+ directory: "/"
15
15
  schedule:
16
- interval: 'weekly'
16
+ interval: "weekly"
@@ -2,9 +2,9 @@ name: CI
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [ main ]
5
+ branches: [main]
6
6
  pull_request:
7
- branches: [ main ]
7
+ branches: [main]
8
8
 
9
9
  jobs:
10
10
  build:
@@ -24,8 +24,8 @@ jobs:
24
24
  - name: Setup Node.js
25
25
  uses: actions/setup-node@v6
26
26
  with:
27
- node-version: '22'
28
- cache: 'pnpm'
27
+ node-version: "22"
28
+ cache: "pnpm"
29
29
 
30
30
  - name: Install dependencies
31
31
  run: pnpm install
@@ -1,3 +1,4 @@
1
1
  ## 2026-01-18 - TaskGraphValidationError
2
+
2
3
  **Learning:** Generic errors hide structured validation data, forcing consumers to parse strings or guess what went wrong.
3
4
  **Action:** Introduced `TaskGraphValidationError` which encapsulates the `ValidationResult`, allowing programmatic access to specific validation failures (e.g., missing dependencies, cycles).
package/.jules/nexus.md CHANGED
@@ -1,5 +1,6 @@
1
1
  # Nexus Journal
2
2
 
3
3
  ## 2024-05-23 - Reliability via Granularity
4
+
4
5
  **Insight:** Users often confuse "Workflow Timeout" with "Task Timeout". A workflow might allow 5 minutes, but a single HTTP request shouldn't hang for 4 minutes.
5
6
  **Action:** By pushing timeout logic down to the `TaskStep` level (and the Strategy layer), we remove the burden of "cooperative cancellation" from the user's business logic, enforcing it at the runner level. This makes the system "secure by default" against zombie tasks.
@@ -1,4 +1,5 @@
1
1
  ## 2026-06-15 - Graph Traversal DoS
2
+
2
3
  **Vulnerability:** Recursive graph traversal (DFS) can lead to Denial of Service via Stack Overflow when processing deep user-supplied graphs.
3
4
  **Learning:** Even with large stack limits, recursion is a risk for user-controlled data structures. Node.js stack size is finite.
4
5
  **Prevention:** Use iterative algorithms with explicit stacks for graph traversal (e.g., cycle detection).
package/.releaserc.json CHANGED
@@ -1,7 +1,5 @@
1
1
  {
2
- "branches": [
3
- "main"
4
- ],
2
+ "branches": ["main"],
5
3
  "plugins": [
6
4
  [
7
5
  "@semantic-release/commit-analyzer",
@@ -21,10 +19,7 @@
21
19
  [
22
20
  "@semantic-release/git",
23
21
  {
24
- "assets": [
25
- "package.json",
26
- "CHANGELOG.md"
27
- ],
22
+ "assets": ["package.json", "CHANGELOG.md"],
28
23
  "message": "chore(release): ${nextRelease.version} [skip ci]"
29
24
  }
30
25
  ]
package/AGENTS.md CHANGED
@@ -1,14 +1,17 @@
1
1
  <!-- OPENSPEC:START -->
2
+
2
3
  # OpenSpec Instructions
3
4
 
4
5
  These instructions are for AI assistants working in this project.
5
6
 
6
7
  Always open `@/openspec/AGENTS.md` when the request:
8
+
7
9
  - Mentions planning or proposals (words like proposal, spec, change, plan)
8
10
  - Introduces new capabilities, breaking changes, architecture shifts, or big performance/security work
9
11
  - Sounds ambiguous and you need the authoritative spec before coding
10
12
 
11
13
  Use `@/openspec/AGENTS.md` to learn:
14
+
12
15
  - How to create and apply change proposals
13
16
  - Spec format and conventions
14
17
  - Project structure and guidelines
@@ -18,6 +21,7 @@ Keep this managed block so 'openspec update' can refresh the instructions.
18
21
  <!-- OPENSPEC:END -->
19
22
 
20
23
  ## Additional Rules
24
+
21
25
  - Never edit CHANGELOG.md manually. This file is for semantic release and is filled automatically.
22
26
  - Avoid using 'any' type at all costs.
23
27
  - Always prefer to add more tests instead of simply bypassing coverage validation with comments.
@@ -28,6 +32,7 @@ Keep this managed block so 'openspec update' can refresh the instructions.
28
32
  Auto-generated from all feature plans. Last updated: 2026-01-17
29
33
 
30
34
  ## Active Technologies
35
+
31
36
  - TypeScript 5.9.3 + vitest 4.0.17 (for testing) (004-pre-execution-validation)
32
37
  - TypeScript 5.9.3 + vitest 4.0.17, AbortSignal/AbortController (standard Web APIs) (002-task-cancellation)
33
38
  - N/A (in-memory context object) (002-task-cancellation)
@@ -53,13 +58,13 @@ tests/
53
58
  : Follow standard conventions
54
59
 
55
60
  ## Recent Changes
61
+
56
62
  - 005-concurrency-control: Added TypeScript 5.9.3 + vitest 4.0.17
57
63
  - 002-task-cancellation: Added TypeScript 5.9.3 + vitest 4.0.17, AbortSignal/AbortController (standard Web APIs)
58
64
  - 004-pre-execution-validation: Added TypeScript 5.9.3 + vitest 4.0.17 (for testing)
59
65
 
60
-
61
-
62
66
  <!-- MANUAL ADDITIONS START -->
67
+
63
68
  - **Atomic Commits for Complex Features:** When working on complex multi-task features, you MUST commit after completing each distinct task. Before each commit, ensure that `pnpm build`, `pnpm lint`, and `pnpm test` pass. This creates safe rollback points and prevents restarting the entire feature if issues arise.
64
69
  - Never edit CHANGELOG.md manually. This file is for semantic release and is filled automatically.
65
70
 
@@ -71,4 +76,5 @@ Before marking a task as concluded, YOU MUST:
71
76
  4. run pnpm lint
72
77
 
73
78
  If any of those command fail, review your changes.
79
+
74
80
  <!-- MANUAL ADDITIONS END -->
package/CHANGELOG.md CHANGED
@@ -1,218 +1,222 @@
1
+ ## <small>3.4.1 (2026-01-18)</small>
2
+
3
+ * Merge pull request #65 from thalesraymond/perf/async-event-listeners-3002139613350975332 ([77edbc7](https://github.com/thalesraymond/task-runner/commit/77edbc7)), closes [#65](https://github.com/thalesraymond/task-runner/issues/65)
4
+ * perf: Make event listeners async to prevent blocking ([1f8728f](https://github.com/thalesraymond/task-runner/commit/1f8728f))
5
+ * perf: Make event listeners async to prevent blocking ([a52f8d0](https://github.com/thalesraymond/task-runner/commit/a52f8d0))
6
+
1
7
  ## 3.4.0 (2026-01-18)
2
8
 
3
- * Merge branch 'main' into backlog-maniac/task-graph-validation-error-13695085329883636026 ([82584ff](https://github.com/thalesraymond/task-runner/commit/82584ff))
4
- * Merge branch 'main' into backlog-maniac/task-graph-validation-error-13695085329883636026 ([a0e6795](https://github.com/thalesraymond/task-runner/commit/a0e6795))
5
- * Merge branch 'main' into backlog-maniac/task-graph-validation-error-13695085329883636026 ([a92ee6f](https://github.com/thalesraymond/task-runner/commit/a92ee6f))
6
- * Merge pull request #62 from thalesraymond/backlog-maniac/task-graph-validation-error-136950853298836 ([e19ea32](https://github.com/thalesraymond/task-runner/commit/e19ea32)), closes [#62](https://github.com/thalesraymond/task-runner/issues/62)
7
- * Update tests/TaskRunner.test.ts ([3158486](https://github.com/thalesraymond/task-runner/commit/3158486))
8
- * docs: ✏️ archive done spc ([bc4d58b](https://github.com/thalesraymond/task-runner/commit/bc4d58b))
9
- * feat: throw TaskGraphValidationError on validation failure ([35a4e91](https://github.com/thalesraymond/task-runner/commit/35a4e91))
9
+ - Merge branch 'main' into backlog-maniac/task-graph-validation-error-13695085329883636026 ([82584ff](https://github.com/thalesraymond/task-runner/commit/82584ff))
10
+ - Merge branch 'main' into backlog-maniac/task-graph-validation-error-13695085329883636026 ([a0e6795](https://github.com/thalesraymond/task-runner/commit/a0e6795))
11
+ - Merge branch 'main' into backlog-maniac/task-graph-validation-error-13695085329883636026 ([a92ee6f](https://github.com/thalesraymond/task-runner/commit/a92ee6f))
12
+ - Merge pull request #62 from thalesraymond/backlog-maniac/task-graph-validation-error-136950853298836 ([e19ea32](https://github.com/thalesraymond/task-runner/commit/e19ea32)), closes [#62](https://github.com/thalesraymond/task-runner/issues/62)
13
+ - Update tests/TaskRunner.test.ts ([3158486](https://github.com/thalesraymond/task-runner/commit/3158486))
14
+ - docs: ✏️ archive done spc ([bc4d58b](https://github.com/thalesraymond/task-runner/commit/bc4d58b))
15
+ - feat: throw TaskGraphValidationError on validation failure ([35a4e91](https://github.com/thalesraymond/task-runner/commit/35a4e91))
10
16
 
11
17
  ## 3.3.0 (2026-01-18)
12
18
 
13
- * Merge branch 'main' into feat/concurrency-control-5339998093271172305 ([9fbb19b](https://github.com/thalesraymond/task-runner/commit/9fbb19b))
14
- * Merge branch 'main' into feat/concurrency-control-5339998093271172305 ([5ee9c84](https://github.com/thalesraymond/task-runner/commit/5ee9c84))
15
- * Merge pull request #63 from thalesraymond/feat/concurrency-control-5339998093271172305 ([ef64606](https://github.com/thalesraymond/task-runner/commit/ef64606)), closes [#63](https://github.com/thalesraymond/task-runner/issues/63)
16
- * Merge pull request #64 from thalesraymond/docs-atomic-commit-rule-3016253336492289921 ([d078c81](https://github.com/thalesraymond/task-runner/commit/d078c81)), closes [#64](https://github.com/thalesraymond/task-runner/issues/64)
17
- * docs: ✏️ archive retry feature since its implemented ([5980511](https://github.com/thalesraymond/task-runner/commit/5980511))
18
- * docs: add atomic commit rule for complex features ([5557ff9](https://github.com/thalesraymond/task-runner/commit/5557ff9))
19
- * docs: restore accidentally deleted guidelines ([41114fa](https://github.com/thalesraymond/task-runner/commit/41114fa))
20
- * feat: add concurrency control to TaskRunner ([90c2b6f](https://github.com/thalesraymond/task-runner/commit/90c2b6f))
21
- * feat: add concurrency control to TaskRunner ([2a8dfd2](https://github.com/thalesraymond/task-runner/commit/2a8dfd2))
22
- * chore: 🤖 AI agents new rules ([f6aac8d](https://github.com/thalesraymond/task-runner/commit/f6aac8d))
23
- * chore: 🤖 explict coverage rule for AGENTS.md ([80f7d87](https://github.com/thalesraymond/task-runner/commit/80f7d87))
24
- * fix: remove unreachable code and verify single execution in concurrency logic ([7255cee](https://github.com/thalesraymond/task-runner/commit/7255cee))
25
- * fix: resolve linting errors and verify concurrency control ([9ed2585](https://github.com/thalesraymond/task-runner/commit/9ed2585))
19
+ - Merge branch 'main' into feat/concurrency-control-5339998093271172305 ([9fbb19b](https://github.com/thalesraymond/task-runner/commit/9fbb19b))
20
+ - Merge branch 'main' into feat/concurrency-control-5339998093271172305 ([5ee9c84](https://github.com/thalesraymond/task-runner/commit/5ee9c84))
21
+ - Merge pull request #63 from thalesraymond/feat/concurrency-control-5339998093271172305 ([ef64606](https://github.com/thalesraymond/task-runner/commit/ef64606)), closes [#63](https://github.com/thalesraymond/task-runner/issues/63)
22
+ - Merge pull request #64 from thalesraymond/docs-atomic-commit-rule-3016253336492289921 ([d078c81](https://github.com/thalesraymond/task-runner/commit/d078c81)), closes [#64](https://github.com/thalesraymond/task-runner/issues/64)
23
+ - docs: ✏️ archive retry feature since its implemented ([5980511](https://github.com/thalesraymond/task-runner/commit/5980511))
24
+ - docs: add atomic commit rule for complex features ([5557ff9](https://github.com/thalesraymond/task-runner/commit/5557ff9))
25
+ - docs: restore accidentally deleted guidelines ([41114fa](https://github.com/thalesraymond/task-runner/commit/41114fa))
26
+ - feat: add concurrency control to TaskRunner ([90c2b6f](https://github.com/thalesraymond/task-runner/commit/90c2b6f))
27
+ - feat: add concurrency control to TaskRunner ([2a8dfd2](https://github.com/thalesraymond/task-runner/commit/2a8dfd2))
28
+ - chore: 🤖 AI agents new rules ([f6aac8d](https://github.com/thalesraymond/task-runner/commit/f6aac8d))
29
+ - chore: 🤖 explict coverage rule for AGENTS.md ([80f7d87](https://github.com/thalesraymond/task-runner/commit/80f7d87))
30
+ - fix: remove unreachable code and verify single execution in concurrency logic ([7255cee](https://github.com/thalesraymond/task-runner/commit/7255cee))
31
+ - fix: resolve linting errors and verify concurrency control ([9ed2585](https://github.com/thalesraymond/task-runner/commit/9ed2585))
26
32
 
27
33
  ## 3.2.0 (2026-01-18)
28
34
 
29
- * Merge branch 'main' into feat/add-task-retry-policy-16535599339542244277 ([3f4f855](https://github.com/thalesraymond/task-runner/commit/3f4f855))
30
- * Merge pull request #59 from thalesraymond/feat/add-task-retry-policy-16535599339542244277 ([3ebe1c2](https://github.com/thalesraymond/task-runner/commit/3ebe1c2)), closes [#59](https://github.com/thalesraymond/task-runner/issues/59)
31
- * Update src/strategies/RetryingExecutionStrategy.ts ([dfe5860](https://github.com/thalesraymond/task-runner/commit/dfe5860))
32
- * Update src/strategies/RetryingExecutionStrategy.ts ([714dca5](https://github.com/thalesraymond/task-runner/commit/714dca5))
33
- * Update tests/strategies/RetryingExecutionStrategy.test.ts ([202328c](https://github.com/thalesraymond/task-runner/commit/202328c))
34
- * merge: origin/main and resolve conflicts ([7dbc0cf](https://github.com/thalesraymond/task-runner/commit/7dbc0cf))
35
- * merge: origin/main and resolve conflicts ([bf3aeb0](https://github.com/thalesraymond/task-runner/commit/bf3aeb0))
36
- * docs: ✏️ archive dryrun/preview proposal since its done ([624354a](https://github.com/thalesraymond/task-runner/commit/624354a))
37
- * fix: address pr feedback ([4a23576](https://github.com/thalesraymond/task-runner/commit/4a23576))
38
- * fix: address pr feedback ([97cf83f](https://github.com/thalesraymond/task-runner/commit/97cf83f))
39
- * feat: add task retry policy ([81d4bd3](https://github.com/thalesraymond/task-runner/commit/81d4bd3))
35
+ - Merge branch 'main' into feat/add-task-retry-policy-16535599339542244277 ([3f4f855](https://github.com/thalesraymond/task-runner/commit/3f4f855))
36
+ - Merge pull request #59 from thalesraymond/feat/add-task-retry-policy-16535599339542244277 ([3ebe1c2](https://github.com/thalesraymond/task-runner/commit/3ebe1c2)), closes [#59](https://github.com/thalesraymond/task-runner/issues/59)
37
+ - Update src/strategies/RetryingExecutionStrategy.ts ([dfe5860](https://github.com/thalesraymond/task-runner/commit/dfe5860))
38
+ - Update src/strategies/RetryingExecutionStrategy.ts ([714dca5](https://github.com/thalesraymond/task-runner/commit/714dca5))
39
+ - Update tests/strategies/RetryingExecutionStrategy.test.ts ([202328c](https://github.com/thalesraymond/task-runner/commit/202328c))
40
+ - merge: origin/main and resolve conflicts ([7dbc0cf](https://github.com/thalesraymond/task-runner/commit/7dbc0cf))
41
+ - merge: origin/main and resolve conflicts ([bf3aeb0](https://github.com/thalesraymond/task-runner/commit/bf3aeb0))
42
+ - docs: ✏️ archive dryrun/preview proposal since its done ([624354a](https://github.com/thalesraymond/task-runner/commit/624354a))
43
+ - fix: address pr feedback ([4a23576](https://github.com/thalesraymond/task-runner/commit/4a23576))
44
+ - fix: address pr feedback ([97cf83f](https://github.com/thalesraymond/task-runner/commit/97cf83f))
45
+ - feat: add task retry policy ([81d4bd3](https://github.com/thalesraymond/task-runner/commit/81d4bd3))
40
46
 
41
47
  ## 3.1.0 (2026-01-18)
42
48
 
43
- * Merge branch 'main' into add-workflow-preview-16392950418245316538 ([249d5a8](https://github.com/thalesraymond/task-runner/commit/249d5a8))
44
- * Merge pull request #60 from thalesraymond/nexus/per-task-timeout-2298370472207213824 ([1b64fe1](https://github.com/thalesraymond/task-runner/commit/1b64fe1)), closes [#60](https://github.com/thalesraymond/task-runner/issues/60)
45
- * Merge pull request #61 from thalesraymond/add-workflow-preview-16392950418245316538 ([1f08dba](https://github.com/thalesraymond/task-runner/commit/1f08dba)), closes [#61](https://github.com/thalesraymond/task-runner/issues/61)
46
- * fix: 🐛 fix sanitization of mermaid function ([b09db63](https://github.com/thalesraymond/task-runner/commit/b09db63))
47
- * feat: add workflow preview and dry-run capabilities ([e1ccda9](https://github.com/thalesraymond/task-runner/commit/e1ccda9))
48
- * feat: add workflow preview and dry-run capabilities ([138f4ae](https://github.com/thalesraymond/task-runner/commit/138f4ae))
49
- * docs: ✏️ update specs after project refactoring ([5f35f18](https://github.com/thalesraymond/task-runner/commit/5f35f18))
50
- * docs: propose per-task timeout feature ([088cf42](https://github.com/thalesraymond/task-runner/commit/088cf42))
51
- * docs: propose per-task timeout feature ([2615635](https://github.com/thalesraymond/task-runner/commit/2615635))
49
+ - Merge branch 'main' into add-workflow-preview-16392950418245316538 ([249d5a8](https://github.com/thalesraymond/task-runner/commit/249d5a8))
50
+ - Merge pull request #60 from thalesraymond/nexus/per-task-timeout-2298370472207213824 ([1b64fe1](https://github.com/thalesraymond/task-runner/commit/1b64fe1)), closes [#60](https://github.com/thalesraymond/task-runner/issues/60)
51
+ - Merge pull request #61 from thalesraymond/add-workflow-preview-16392950418245316538 ([1f08dba](https://github.com/thalesraymond/task-runner/commit/1f08dba)), closes [#61](https://github.com/thalesraymond/task-runner/issues/61)
52
+ - fix: 🐛 fix sanitization of mermaid function ([b09db63](https://github.com/thalesraymond/task-runner/commit/b09db63))
53
+ - feat: add workflow preview and dry-run capabilities ([e1ccda9](https://github.com/thalesraymond/task-runner/commit/e1ccda9))
54
+ - feat: add workflow preview and dry-run capabilities ([138f4ae](https://github.com/thalesraymond/task-runner/commit/138f4ae))
55
+ - docs: ✏️ update specs after project refactoring ([5f35f18](https://github.com/thalesraymond/task-runner/commit/5f35f18))
56
+ - docs: propose per-task timeout feature ([088cf42](https://github.com/thalesraymond/task-runner/commit/088cf42))
57
+ - docs: propose per-task timeout feature ([2615635](https://github.com/thalesraymond/task-runner/commit/2615635))
52
58
 
53
59
  ## 3.0.0 (2026-01-18)
54
60
 
55
- * feat: 🎸 Generating 3.0.0 since automation wrongly skiped ([c545f25](https://github.com/thalesraymond/task-runner/commit/c545f25))
56
- * docs: ✏️ Add integration verification requirements to the spec ([2904524](https://github.com/thalesraymond/task-runner/commit/2904524))
57
- * docs: ✏️ Add specifications for core architecture refactor ([4162e3e](https://github.com/thalesraymond/task-runner/commit/4162e3e))
58
- * docs: ✏️ archive refactor spec ([f90a883](https://github.com/thalesraymond/task-runner/commit/f90a883))
59
- * docs: ✏️ archive spec and write first spec ([6c7e09e](https://github.com/thalesraymond/task-runner/commit/6c7e09e))
60
- * Merge branch 'main' into refactor-core-architecture-3606470332965189794 ([4a88ccf](https://github.com/thalesraymond/task-runner/commit/4a88ccf))
61
- * Merge branch 'origin/main' into pr-46 ([1109537](https://github.com/thalesraymond/task-runner/commit/1109537))
62
- * Merge pull request #49 from thalesraymond/pr-46-merge-conflicts-4682914261020497037 ([c95e62d](https://github.com/thalesraymond/task-runner/commit/c95e62d)), closes [#49](https://github.com/thalesraymond/task-runner/issues/49)
63
- * Merge pull request #50 from thalesraymond/add-integration-tests-14774431792140556914 ([841a76e](https://github.com/thalesraymond/task-runner/commit/841a76e)), closes [#50](https://github.com/thalesraymond/task-runner/issues/50)
64
- * Merge pull request #51 from thalesraymond/refactor-core-architecture-3606470332965189794 ([7403371](https://github.com/thalesraymond/task-runner/commit/7403371)), closes [#51](https://github.com/thalesraymond/task-runner/issues/51)
65
- * refactor: decouple core architecture using strategy and state manager ([3de1ce1](https://github.com/thalesraymond/task-runner/commit/3de1ce1))
66
- * refactor: decouple core architecture using strategy and state manager ([65dc1ef](https://github.com/thalesraymond/task-runner/commit/65dc1ef))
67
- * test: add comprehensive integration test suite ([e8170c0](https://github.com/thalesraymond/task-runner/commit/e8170c0))
68
-
61
+ - feat: 🎸 Generating 3.0.0 since automation wrongly skiped ([c545f25](https://github.com/thalesraymond/task-runner/commit/c545f25))
62
+ - docs: ✏️ Add integration verification requirements to the spec ([2904524](https://github.com/thalesraymond/task-runner/commit/2904524))
63
+ - docs: ✏️ Add specifications for core architecture refactor ([4162e3e](https://github.com/thalesraymond/task-runner/commit/4162e3e))
64
+ - docs: ✏️ archive refactor spec ([f90a883](https://github.com/thalesraymond/task-runner/commit/f90a883))
65
+ - docs: ✏️ archive spec and write first spec ([6c7e09e](https://github.com/thalesraymond/task-runner/commit/6c7e09e))
66
+ - Merge branch 'main' into refactor-core-architecture-3606470332965189794 ([4a88ccf](https://github.com/thalesraymond/task-runner/commit/4a88ccf))
67
+ - Merge branch 'origin/main' into pr-46 ([1109537](https://github.com/thalesraymond/task-runner/commit/1109537))
68
+ - Merge pull request #49 from thalesraymond/pr-46-merge-conflicts-4682914261020497037 ([c95e62d](https://github.com/thalesraymond/task-runner/commit/c95e62d)), closes [#49](https://github.com/thalesraymond/task-runner/issues/49)
69
+ - Merge pull request #50 from thalesraymond/add-integration-tests-14774431792140556914 ([841a76e](https://github.com/thalesraymond/task-runner/commit/841a76e)), closes [#50](https://github.com/thalesraymond/task-runner/issues/50)
70
+ - Merge pull request #51 from thalesraymond/refactor-core-architecture-3606470332965189794 ([7403371](https://github.com/thalesraymond/task-runner/commit/7403371)), closes [#51](https://github.com/thalesraymond/task-runner/issues/51)
71
+ - refactor: decouple core architecture using strategy and state manager ([3de1ce1](https://github.com/thalesraymond/task-runner/commit/3de1ce1))
72
+ - refactor: decouple core architecture using strategy and state manager ([65dc1ef](https://github.com/thalesraymond/task-runner/commit/65dc1ef))
73
+ - test: add comprehensive integration test suite ([e8170c0](https://github.com/thalesraymond/task-runner/commit/e8170c0))
69
74
 
70
75
  ### BREAKING CHANGE
71
76
 
72
- * 🧨 Major refactor in the engine, added strategy pattern support
77
+ - 🧨 Major refactor in the engine, added strategy pattern support
73
78
 
74
79
  ## 2.0.0 (2026-01-18)
75
80
 
76
- * Merge branch 'main' into sentinel/fix-graph-recursion-dos-11616274981510947884 ([b2c204d](https://github.com/thalesraymond/task-runner/commit/b2c204d))
77
- * Merge branch 'main' into sentinel/fix-graph-recursion-dos-11616274981510947884 ([66535d5](https://github.com/thalesraymond/task-runner/commit/66535d5))
78
- * Merge pull request #45 from thalesraymond/sentinel/fix-graph-recursion-dos-11616274981510947884 ([a0d8cd5](https://github.com/thalesraymond/task-runner/commit/a0d8cd5)), closes [#45](https://github.com/thalesraymond/task-runner/issues/45)
79
- * Merge pull request #47 from thalesraymond/test/mock-console-events-8565619574251561488 ([6133778](https://github.com/thalesraymond/task-runner/commit/6133778)), closes [#47](https://github.com/thalesraymond/task-runner/issues/47)
80
- * Merge pull request #48 from thalesraymond/update-agent-instructions-changelog-9387934573679748509 ([a07d0c3](https://github.com/thalesraymond/task-runner/commit/a07d0c3)), closes [#48](https://github.com/thalesraymond/task-runner/issues/48)
81
- * Update src/TaskGraphValidator.ts ([85a71c7](https://github.com/thalesraymond/task-runner/commit/85a71c7))
82
- * fix(security): replace recursive cycle detection with iterative DFS ([2d2e395](https://github.com/thalesraymond/task-runner/commit/2d2e395))
83
- * fix(security): replace recursive cycle detection with iterative DFS ([1e2d7ca](https://github.com/thalesraymond/task-runner/commit/1e2d7ca))
84
- * fix(security): replace recursive cycle detection with iterative DFS ([292947f](https://github.com/thalesraymond/task-runner/commit/292947f))
85
- * chore: update agent instructions with CHANGELOG rule ([8db6a2b](https://github.com/thalesraymond/task-runner/commit/8db6a2b))
86
- * test: mock console implementations in TaskRunnerEvents tests ([47deacb](https://github.com/thalesraymond/task-runner/commit/47deacb))
87
-
81
+ - Merge branch 'main' into sentinel/fix-graph-recursion-dos-11616274981510947884 ([b2c204d](https://github.com/thalesraymond/task-runner/commit/b2c204d))
82
+ - Merge branch 'main' into sentinel/fix-graph-recursion-dos-11616274981510947884 ([66535d5](https://github.com/thalesraymond/task-runner/commit/66535d5))
83
+ - Merge pull request #45 from thalesraymond/sentinel/fix-graph-recursion-dos-11616274981510947884 ([a0d8cd5](https://github.com/thalesraymond/task-runner/commit/a0d8cd5)), closes [#45](https://github.com/thalesraymond/task-runner/issues/45)
84
+ - Merge pull request #47 from thalesraymond/test/mock-console-events-8565619574251561488 ([6133778](https://github.com/thalesraymond/task-runner/commit/6133778)), closes [#47](https://github.com/thalesraymond/task-runner/issues/47)
85
+ - Merge pull request #48 from thalesraymond/update-agent-instructions-changelog-9387934573679748509 ([a07d0c3](https://github.com/thalesraymond/task-runner/commit/a07d0c3)), closes [#48](https://github.com/thalesraymond/task-runner/issues/48)
86
+ - Update src/TaskGraphValidator.ts ([85a71c7](https://github.com/thalesraymond/task-runner/commit/85a71c7))
87
+ - fix(security): replace recursive cycle detection with iterative DFS ([2d2e395](https://github.com/thalesraymond/task-runner/commit/2d2e395))
88
+ - fix(security): replace recursive cycle detection with iterative DFS ([1e2d7ca](https://github.com/thalesraymond/task-runner/commit/1e2d7ca))
89
+ - fix(security): replace recursive cycle detection with iterative DFS ([292947f](https://github.com/thalesraymond/task-runner/commit/292947f))
90
+ - chore: update agent instructions with CHANGELOG rule ([8db6a2b](https://github.com/thalesraymond/task-runner/commit/8db6a2b))
91
+ - test: mock console implementations in TaskRunnerEvents tests ([47deacb](https://github.com/thalesraymond/task-runner/commit/47deacb))
88
92
 
89
93
  ### BREAKING CHANGE
90
94
 
91
- * none
92
- * none
93
- * none
95
+ - none
96
+ - none
97
+ - none
94
98
 
95
99
  ## <small>1.2.2 (2026-01-18)</small>
96
100
 
97
- * Merge pull request #38 from thalesraymond/refactor-task-runner-7434390989639993181 ([e315cbd](https://github.com/thalesraymond/task-runner/commit/e315cbd)), closes [#38](https://github.com/thalesraymond/task-runner/issues/38)
98
- * fix(EventBus): fix lint errors in test file ([86b3ad8](https://github.com/thalesraymond/task-runner/commit/86b3ad8))
99
- * fix(EventBus): handle unhandled promise rejections in event listeners ([5f5235a](https://github.com/thalesraymond/task-runner/commit/5f5235a))
100
- * refactor: decompose TaskRunner into smaller classes ([55a1928](https://github.com/thalesraymond/task-runner/commit/55a1928))
101
+ - Merge pull request #38 from thalesraymond/refactor-task-runner-7434390989639993181 ([e315cbd](https://github.com/thalesraymond/task-runner/commit/e315cbd)), closes [#38](https://github.com/thalesraymond/task-runner/issues/38)
102
+ - fix(EventBus): fix lint errors in test file ([86b3ad8](https://github.com/thalesraymond/task-runner/commit/86b3ad8))
103
+ - fix(EventBus): handle unhandled promise rejections in event listeners ([5f5235a](https://github.com/thalesraymond/task-runner/commit/5f5235a))
104
+ - refactor: decompose TaskRunner into smaller classes ([55a1928](https://github.com/thalesraymond/task-runner/commit/55a1928))
101
105
 
102
106
  ## <small>1.2.1 (2026-01-18)</small>
103
107
 
104
- * Merge branch 'main' into docs-add-status-badges-11560890930810516706 ([8baab4c](https://github.com/thalesraymond/task-runner/commit/8baab4c))
105
- * Merge pull request #30 from thalesraymond/docs-add-status-badges-11560890930810516706 ([aac9c4b](https://github.com/thalesraymond/task-runner/commit/aac9c4b)), closes [#30](https://github.com/thalesraymond/task-runner/issues/30)
106
- * Merge pull request #31 from thalesraymond/005-concurrency-control ([db15b27](https://github.com/thalesraymond/task-runner/commit/db15b27)), closes [#31](https://github.com/thalesraymond/task-runner/issues/31)
107
- * Merge pull request #34 from thalesraymond/task-runner-performance-optimization-3405178555713715639 ([bb76050](https://github.com/thalesraymond/task-runner/commit/bb76050)), closes [#34](https://github.com/thalesraymond/task-runner/issues/34)
108
- * Merge remote-tracking branch 'origin/main' into 005-concurrency-control ([63d3cbe](https://github.com/thalesraymond/task-runner/commit/63d3cbe))
109
- * Update specs/005-concurrency-control/checklists/requirements.md ([97496b1](https://github.com/thalesraymond/task-runner/commit/97496b1))
110
- * Update specs/005-concurrency-control/contracts/api.ts ([a05cbb5](https://github.com/thalesraymond/task-runner/commit/a05cbb5))
111
- * perf: optimize task scheduling to prevent pipeline stalls ([37c52f7](https://github.com/thalesraymond/task-runner/commit/37c52f7))
112
- * docs: ✏️ clarify edge case handling for negative concurrency val ([05187c4](https://github.com/thalesraymond/task-runner/commit/05187c4))
113
- * docs: ✏️ concurrency control spec, plan, and tasks ([f27464c](https://github.com/thalesraymond/task-runner/commit/f27464c))
114
- * docs: ✏️ fix ambiguos docs ([a3aae83](https://github.com/thalesraymond/task-runner/commit/a3aae83))
115
- * docs: ✏️ spec ([cdb7287](https://github.com/thalesraymond/task-runner/commit/cdb7287))
116
- * docs(readme): add status badges ([b549b05](https://github.com/thalesraymond/task-runner/commit/b549b05))
108
+ - Merge branch 'main' into docs-add-status-badges-11560890930810516706 ([8baab4c](https://github.com/thalesraymond/task-runner/commit/8baab4c))
109
+ - Merge pull request #30 from thalesraymond/docs-add-status-badges-11560890930810516706 ([aac9c4b](https://github.com/thalesraymond/task-runner/commit/aac9c4b)), closes [#30](https://github.com/thalesraymond/task-runner/issues/30)
110
+ - Merge pull request #31 from thalesraymond/005-concurrency-control ([db15b27](https://github.com/thalesraymond/task-runner/commit/db15b27)), closes [#31](https://github.com/thalesraymond/task-runner/issues/31)
111
+ - Merge pull request #34 from thalesraymond/task-runner-performance-optimization-3405178555713715639 ([bb76050](https://github.com/thalesraymond/task-runner/commit/bb76050)), closes [#34](https://github.com/thalesraymond/task-runner/issues/34)
112
+ - Merge remote-tracking branch 'origin/main' into 005-concurrency-control ([63d3cbe](https://github.com/thalesraymond/task-runner/commit/63d3cbe))
113
+ - Update specs/005-concurrency-control/checklists/requirements.md ([97496b1](https://github.com/thalesraymond/task-runner/commit/97496b1))
114
+ - Update specs/005-concurrency-control/contracts/api.ts ([a05cbb5](https://github.com/thalesraymond/task-runner/commit/a05cbb5))
115
+ - perf: optimize task scheduling to prevent pipeline stalls ([37c52f7](https://github.com/thalesraymond/task-runner/commit/37c52f7))
116
+ - docs: ✏️ clarify edge case handling for negative concurrency val ([05187c4](https://github.com/thalesraymond/task-runner/commit/05187c4))
117
+ - docs: ✏️ concurrency control spec, plan, and tasks ([f27464c](https://github.com/thalesraymond/task-runner/commit/f27464c))
118
+ - docs: ✏️ fix ambiguos docs ([a3aae83](https://github.com/thalesraymond/task-runner/commit/a3aae83))
119
+ - docs: ✏️ spec ([cdb7287](https://github.com/thalesraymond/task-runner/commit/cdb7287))
120
+ - docs(readme): add status badges ([b549b05](https://github.com/thalesraymond/task-runner/commit/b549b05))
117
121
 
118
122
  ## 1.2.0 (2026-01-18)
119
123
 
120
- * Merge branch 'main' into 004-pre-execution-validation-14850747355617832302 ([cc01409](https://github.com/thalesraymond/task-runner/commit/cc01409))
121
- * Merge branch 'main' into 004-pre-execution-validation-14850747355617832302 ([0a31f84](https://github.com/thalesraymond/task-runner/commit/0a31f84))
122
- * Merge pull request #25 from thalesraymond/004-pre-execution-validation-14850747355617832302 ([8c022d1](https://github.com/thalesraymond/task-runner/commit/8c022d1)), closes [#25](https://github.com/thalesraymond/task-runner/issues/25)
123
- * refactor: address PR comments, extract TaskGraph ([f2d506f](https://github.com/thalesraymond/task-runner/commit/f2d506f))
124
- * refactor: address PR review feedback ([38e7878](https://github.com/thalesraymond/task-runner/commit/38e7878))
125
- * refactor: split validation contracts into individual files ([c9caea0](https://github.com/thalesraymond/task-runner/commit/c9caea0))
126
- * feat: pre-validation of task graph for cycles and missing deps ([4680c1b](https://github.com/thalesraymond/task-runner/commit/4680c1b)), closes [#004](https://github.com/thalesraymond/task-runner/issues/004)
124
+ - Merge branch 'main' into 004-pre-execution-validation-14850747355617832302 ([cc01409](https://github.com/thalesraymond/task-runner/commit/cc01409))
125
+ - Merge branch 'main' into 004-pre-execution-validation-14850747355617832302 ([0a31f84](https://github.com/thalesraymond/task-runner/commit/0a31f84))
126
+ - Merge pull request #25 from thalesraymond/004-pre-execution-validation-14850747355617832302 ([8c022d1](https://github.com/thalesraymond/task-runner/commit/8c022d1)), closes [#25](https://github.com/thalesraymond/task-runner/issues/25)
127
+ - refactor: address PR comments, extract TaskGraph ([f2d506f](https://github.com/thalesraymond/task-runner/commit/f2d506f))
128
+ - refactor: address PR review feedback ([38e7878](https://github.com/thalesraymond/task-runner/commit/38e7878))
129
+ - refactor: split validation contracts into individual files ([c9caea0](https://github.com/thalesraymond/task-runner/commit/c9caea0))
130
+ - feat: pre-validation of task graph for cycles and missing deps ([4680c1b](https://github.com/thalesraymond/task-runner/commit/4680c1b)), closes [#004](https://github.com/thalesraymond/task-runner/issues/004)
127
131
 
128
132
  ## <small>1.1.1 (2026-01-18)</small>
129
133
 
130
- * Merge branch 'main' into chore/configure-sonar-quality-gate-6593988281334866666 ([fe5c88d](https://github.com/thalesraymond/task-runner/commit/fe5c88d))
131
- * Merge pull request #23 from thalesraymond/004-pre-execution-validation ([bf641c5](https://github.com/thalesraymond/task-runner/commit/bf641c5)), closes [#23](https://github.com/thalesraymond/task-runner/issues/23)
132
- * Merge pull request #26 from thalesraymond/002-task-cancellation ([30fafaa](https://github.com/thalesraymond/task-runner/commit/30fafaa)), closes [#26](https://github.com/thalesraymond/task-runner/issues/26)
133
- * Merge pull request #28 from thalesraymond/chore/configure-sonar-quality-gate-6593988281334866666 ([0b7373f](https://github.com/thalesraymond/task-runner/commit/0b7373f)), closes [#28](https://github.com/thalesraymond/task-runner/issues/28)
134
- * Merge pull request #29 from thalesraymond/update-docs-and-constitution-15453351708375382519 ([84b6293](https://github.com/thalesraymond/task-runner/commit/84b6293)), closes [#29](https://github.com/thalesraymond/task-runner/issues/29)
135
- * Update GEMINI.md ([64c5660](https://github.com/thalesraymond/task-runner/commit/64c5660))
136
- * Update GEMINI.md ([e28abbd](https://github.com/thalesraymond/task-runner/commit/e28abbd))
137
- * Update specs/002-task-cancellation/quickstart.md ([c52ca0d](https://github.com/thalesraymond/task-runner/commit/c52ca0d))
138
- * Update specs/002-task-cancellation/quickstart.md ([153981a](https://github.com/thalesraymond/task-runner/commit/153981a))
139
- * Update specs/004-pre-execution-validation/checklists/requirements.md ([e1cd90f](https://github.com/thalesraymond/task-runner/commit/e1cd90f))
140
- * Update specs/004-pre-execution-validation/checklists/requirements.md ([03869b8](https://github.com/thalesraymond/task-runner/commit/03869b8))
141
- * Update specs/004-pre-execution-validation/contracts/api.ts ([b217a10](https://github.com/thalesraymond/task-runner/commit/b217a10))
142
- * Update specs/004-pre-execution-validation/contracts/api.ts ([503309e](https://github.com/thalesraymond/task-runner/commit/503309e))
143
- * Update specs/004-pre-execution-validation/contracts/api.ts ([6394f0d](https://github.com/thalesraymond/task-runner/commit/6394f0d))
144
- * Update specs/004-pre-execution-validation/quickstart.md ([4756fbc](https://github.com/thalesraymond/task-runner/commit/4756fbc))
145
- * Update specs/004-pre-execution-validation/quickstart.md ([9233e8c](https://github.com/thalesraymond/task-runner/commit/9233e8c))
146
- * Update specs/004-pre-execution-validation/quickstart.md ([1d639d2](https://github.com/thalesraymond/task-runner/commit/1d639d2))
147
- * Update specs/004-pre-execution-validation/spec.md ([74875de](https://github.com/thalesraymond/task-runner/commit/74875de))
148
- * Update specs/004-pre-execution-validation/tasks.md ([93ee4a7](https://github.com/thalesraymond/task-runner/commit/93ee4a7))
149
- * fix: address PR comments on sonar config ([6eab0b5](https://github.com/thalesraymond/task-runner/commit/6eab0b5))
150
- * fix: address PR comments on sonar config ([156eea0](https://github.com/thalesraymond/task-runner/commit/156eea0))
151
- * docs: ✏️ fix gemini code review discussion ([a788e47](https://github.com/thalesraymond/task-runner/commit/a788e47))
152
- * docs: ✏️ fix gemini inconsistent pointed by gemini ([ddc39b7](https://github.com/thalesraymond/task-runner/commit/ddc39b7))
153
- * docs: ✏️ fix inconsistences pointed in CR ([95acba7](https://github.com/thalesraymond/task-runner/commit/95acba7))
154
- * docs: ✏️ signal abort spec ([57f1cbf](https://github.com/thalesraymond/task-runner/commit/57f1cbf))
155
- * docs: ✏️ spec for abort signal ([90340b8](https://github.com/thalesraymond/task-runner/commit/90340b8))
156
- * docs: ✏️ specs for tree pre validation ([e13f056](https://github.com/thalesraymond/task-runner/commit/e13f056))
157
- * docs: update constitution and README with latest features ([7b601fc](https://github.com/thalesraymond/task-runner/commit/7b601fc))
158
- * chore: configure SonarCloud quality gate and coverage ([e08912b](https://github.com/thalesraymond/task-runner/commit/e08912b))
134
+ - Merge branch 'main' into chore/configure-sonar-quality-gate-6593988281334866666 ([fe5c88d](https://github.com/thalesraymond/task-runner/commit/fe5c88d))
135
+ - Merge pull request #23 from thalesraymond/004-pre-execution-validation ([bf641c5](https://github.com/thalesraymond/task-runner/commit/bf641c5)), closes [#23](https://github.com/thalesraymond/task-runner/issues/23)
136
+ - Merge pull request #26 from thalesraymond/002-task-cancellation ([30fafaa](https://github.com/thalesraymond/task-runner/commit/30fafaa)), closes [#26](https://github.com/thalesraymond/task-runner/issues/26)
137
+ - Merge pull request #28 from thalesraymond/chore/configure-sonar-quality-gate-6593988281334866666 ([0b7373f](https://github.com/thalesraymond/task-runner/commit/0b7373f)), closes [#28](https://github.com/thalesraymond/task-runner/issues/28)
138
+ - Merge pull request #29 from thalesraymond/update-docs-and-constitution-15453351708375382519 ([84b6293](https://github.com/thalesraymond/task-runner/commit/84b6293)), closes [#29](https://github.com/thalesraymond/task-runner/issues/29)
139
+ - Update GEMINI.md ([64c5660](https://github.com/thalesraymond/task-runner/commit/64c5660))
140
+ - Update GEMINI.md ([e28abbd](https://github.com/thalesraymond/task-runner/commit/e28abbd))
141
+ - Update specs/002-task-cancellation/quickstart.md ([c52ca0d](https://github.com/thalesraymond/task-runner/commit/c52ca0d))
142
+ - Update specs/002-task-cancellation/quickstart.md ([153981a](https://github.com/thalesraymond/task-runner/commit/153981a))
143
+ - Update specs/004-pre-execution-validation/checklists/requirements.md ([e1cd90f](https://github.com/thalesraymond/task-runner/commit/e1cd90f))
144
+ - Update specs/004-pre-execution-validation/checklists/requirements.md ([03869b8](https://github.com/thalesraymond/task-runner/commit/03869b8))
145
+ - Update specs/004-pre-execution-validation/contracts/api.ts ([b217a10](https://github.com/thalesraymond/task-runner/commit/b217a10))
146
+ - Update specs/004-pre-execution-validation/contracts/api.ts ([503309e](https://github.com/thalesraymond/task-runner/commit/503309e))
147
+ - Update specs/004-pre-execution-validation/contracts/api.ts ([6394f0d](https://github.com/thalesraymond/task-runner/commit/6394f0d))
148
+ - Update specs/004-pre-execution-validation/quickstart.md ([4756fbc](https://github.com/thalesraymond/task-runner/commit/4756fbc))
149
+ - Update specs/004-pre-execution-validation/quickstart.md ([9233e8c](https://github.com/thalesraymond/task-runner/commit/9233e8c))
150
+ - Update specs/004-pre-execution-validation/quickstart.md ([1d639d2](https://github.com/thalesraymond/task-runner/commit/1d639d2))
151
+ - Update specs/004-pre-execution-validation/spec.md ([74875de](https://github.com/thalesraymond/task-runner/commit/74875de))
152
+ - Update specs/004-pre-execution-validation/tasks.md ([93ee4a7](https://github.com/thalesraymond/task-runner/commit/93ee4a7))
153
+ - fix: address PR comments on sonar config ([6eab0b5](https://github.com/thalesraymond/task-runner/commit/6eab0b5))
154
+ - fix: address PR comments on sonar config ([156eea0](https://github.com/thalesraymond/task-runner/commit/156eea0))
155
+ - docs: ✏️ fix gemini code review discussion ([a788e47](https://github.com/thalesraymond/task-runner/commit/a788e47))
156
+ - docs: ✏️ fix gemini inconsistent pointed by gemini ([ddc39b7](https://github.com/thalesraymond/task-runner/commit/ddc39b7))
157
+ - docs: ✏️ fix inconsistences pointed in CR ([95acba7](https://github.com/thalesraymond/task-runner/commit/95acba7))
158
+ - docs: ✏️ signal abort spec ([57f1cbf](https://github.com/thalesraymond/task-runner/commit/57f1cbf))
159
+ - docs: ✏️ spec for abort signal ([90340b8](https://github.com/thalesraymond/task-runner/commit/90340b8))
160
+ - docs: ✏️ specs for tree pre validation ([e13f056](https://github.com/thalesraymond/task-runner/commit/e13f056))
161
+ - docs: update constitution and README with latest features ([7b601fc](https://github.com/thalesraymond/task-runner/commit/7b601fc))
162
+ - chore: configure SonarCloud quality gate and coverage ([e08912b](https://github.com/thalesraymond/task-runner/commit/e08912b))
159
163
 
160
164
  ## 1.1.0 (2026-01-18)
161
165
 
162
- * Merge branch 'main' into feat/task-runner-observer-pattern-15088823676344229252 ([d38d6f8](https://github.com/thalesraymond/task-runner/commit/d38d6f8))
163
- * Merge branch 'main' into feat/task-runner-observer-pattern-15088823676344229252 ([2638801](https://github.com/thalesraymond/task-runner/commit/2638801))
164
- * Merge pull request #22 from thalesraymond/feat/task-runner-observer-pattern-15088823676344229252 ([06e0049](https://github.com/thalesraymond/task-runner/commit/06e0049)), closes [#22](https://github.com/thalesraymond/task-runner/issues/22)
165
- * fix: add file extensions and types to test file to fix CI errors ([54b186f](https://github.com/thalesraymond/task-runner/commit/54b186f))
166
- * fix: remove any type usage in TaskRunner to satisfy linter ([b0a21a7](https://github.com/thalesraymond/task-runner/commit/b0a21a7))
167
- * fix: revert unauthorized changes to package.json and tsconfig.test.json ([cd44f9e](https://github.com/thalesraymond/task-runner/commit/cd44f9e))
168
- * test: 💍 force 100% coverage ([2e489f0](https://github.com/thalesraymond/task-runner/commit/2e489f0))
169
- * test: increase coverage to 100% ([5cd1a44](https://github.com/thalesraymond/task-runner/commit/5cd1a44))
170
- * feat: implement Observer Pattern event system in TaskRunner ([d682983](https://github.com/thalesraymond/task-runner/commit/d682983))
171
- * feat: implement Observer Pattern event system in TaskRunner ([48bd3d0](https://github.com/thalesraymond/task-runner/commit/48bd3d0))
172
- * chore: add typescript check for tests ([9b6c5d4](https://github.com/thalesraymond/task-runner/commit/9b6c5d4))
166
+ - Merge branch 'main' into feat/task-runner-observer-pattern-15088823676344229252 ([d38d6f8](https://github.com/thalesraymond/task-runner/commit/d38d6f8))
167
+ - Merge branch 'main' into feat/task-runner-observer-pattern-15088823676344229252 ([2638801](https://github.com/thalesraymond/task-runner/commit/2638801))
168
+ - Merge pull request #22 from thalesraymond/feat/task-runner-observer-pattern-15088823676344229252 ([06e0049](https://github.com/thalesraymond/task-runner/commit/06e0049)), closes [#22](https://github.com/thalesraymond/task-runner/issues/22)
169
+ - fix: add file extensions and types to test file to fix CI errors ([54b186f](https://github.com/thalesraymond/task-runner/commit/54b186f))
170
+ - fix: remove any type usage in TaskRunner to satisfy linter ([b0a21a7](https://github.com/thalesraymond/task-runner/commit/b0a21a7))
171
+ - fix: revert unauthorized changes to package.json and tsconfig.test.json ([cd44f9e](https://github.com/thalesraymond/task-runner/commit/cd44f9e))
172
+ - test: 💍 force 100% coverage ([2e489f0](https://github.com/thalesraymond/task-runner/commit/2e489f0))
173
+ - test: increase coverage to 100% ([5cd1a44](https://github.com/thalesraymond/task-runner/commit/5cd1a44))
174
+ - feat: implement Observer Pattern event system in TaskRunner ([d682983](https://github.com/thalesraymond/task-runner/commit/d682983))
175
+ - feat: implement Observer Pattern event system in TaskRunner ([48bd3d0](https://github.com/thalesraymond/task-runner/commit/48bd3d0))
176
+ - chore: add typescript check for tests ([9b6c5d4](https://github.com/thalesraymond/task-runner/commit/9b6c5d4))
173
177
 
174
178
  ## <small>1.0.1 (2026-01-17)</small>
175
179
 
176
- * fix: 🐛 fixing commit script and adding a fix to test auto relea ([97cedf4](https://github.com/thalesraymond/task-runner/commit/97cedf4))
180
+ - fix: 🐛 fixing commit script and adding a fix to test auto relea ([97cedf4](https://github.com/thalesraymond/task-runner/commit/97cedf4))
177
181
 
178
182
  ## 1.0.0 (2026-01-17)
179
183
 
180
- * Add templates for project documentation and task management ([bb7fb3c](https://github.com/thalesraymond/task-runner/commit/bb7fb3c))
181
- * Initial commit ([c13cd95](https://github.com/thalesraymond/task-runner/commit/c13cd95))
182
- * Remove NPM_TOKEN from release.yml ([0a97d89](https://github.com/thalesraymond/task-runner/commit/0a97d89))
183
- * remove old lock ([b616679](https://github.com/thalesraymond/task-runner/commit/b616679))
184
- * Rename package to @calmo/task-runner ([acdf6f1](https://github.com/thalesraymond/task-runner/commit/acdf6f1))
185
- * Set package ecosystem to 'npm' in dependabot config ([6b2cd5f](https://github.com/thalesraymond/task-runner/commit/6b2cd5f))
186
- * Update specs/001-generic-task-runner/contracts/api.ts ([f0c062f](https://github.com/thalesraymond/task-runner/commit/f0c062f))
187
- * Update specs/001-generic-task-runner/data-model.md ([3ae876b](https://github.com/thalesraymond/task-runner/commit/3ae876b))
188
- * Update specs/003-refactor-file-structure/data-model.md ([9474619](https://github.com/thalesraymond/task-runner/commit/9474619))
189
- * Update specs/003-refactor-file-structure/quickstart.md ([28a4938](https://github.com/thalesraymond/task-runner/commit/28a4938))
190
- * Update src/TaskRunner.ts ([63e396b](https://github.com/thalesraymond/task-runner/commit/63e396b))
191
- * feat: add CI workflow and restore dependabot ([57ae940](https://github.com/thalesraymond/task-runner/commit/57ae940))
192
- * feat: add CI workflow and restore dependabot ([48ec98b](https://github.com/thalesraymond/task-runner/commit/48ec98b))
193
- * feat: add CI workflow and restore dependabot ([9263c43](https://github.com/thalesraymond/task-runner/commit/9263c43))
194
- * feat: add CI workflow for build, lint, and test ([6f97dc0](https://github.com/thalesraymond/task-runner/commit/6f97dc0))
195
- * feat: add CI workflow for build, lint, and test ([a03422e](https://github.com/thalesraymond/task-runner/commit/a03422e))
196
- * feat: configure semantic-release for automated releases ([fa13bf5](https://github.com/thalesraymond/task-runner/commit/fa13bf5))
197
- * feat: Implement generic task runner with dependency management and parallel execution ([e0c8bf9](https://github.com/thalesraymond/task-runner/commit/e0c8bf9))
198
- * feat: initialize project with TypeScript, Vitest, and basic sum function ([02dd759](https://github.com/thalesraymond/task-runner/commit/02dd759))
199
- * feat(implement): complete file structure refactor ([7764e43](https://github.com/thalesraymond/task-runner/commit/7764e43))
200
- * feat(implement): complete file structure refactor and cleanup ([372ca8b](https://github.com/thalesraymond/task-runner/commit/372ca8b))
201
- * feat(plan): create technical plan for file refactor ([29d2a97](https://github.com/thalesraymond/task-runner/commit/29d2a97))
202
- * feat(specs): add spec for file structure refactor ([884c551](https://github.com/thalesraymond/task-runner/commit/884c551))
203
- * feat(tasks): create tasks for file structure refactor ([3b99e22](https://github.com/thalesraymond/task-runner/commit/3b99e22))
204
- * test: add complex scenario integration test ([685399b](https://github.com/thalesraymond/task-runner/commit/685399b))
205
- * test: add complex scenario integration test ([0935b9f](https://github.com/thalesraymond/task-runner/commit/0935b9f))
206
- * test: add complex scenario integration test ([25440db](https://github.com/thalesraymond/task-runner/commit/25440db))
207
- * test: add tests to reach 100% coverage ([a48678c](https://github.com/thalesraymond/task-runner/commit/a48678c))
208
- * chore: enable husky, commitlint and git-cz ([790ae6a](https://github.com/thalesraymond/task-runner/commit/790ae6a))
209
- * ci: add codecov upload step to workflow ([523ebe6](https://github.com/thalesraymond/task-runner/commit/523ebe6))
210
- * build(deps): bump actions/checkout from 4 to 6 ([b092b9a](https://github.com/thalesraymond/task-runner/commit/b092b9a))
211
- * build(deps): bump actions/setup-node from 4 to 6 ([b5cd513](https://github.com/thalesraymond/task-runner/commit/b5cd513))
212
- * fix: change singleQuote option to false in Prettier configuration ([94625a3](https://github.com/thalesraymond/task-runner/commit/94625a3))
213
- * fix: correct syntax errors in README.md examples and improve context hydration explanation ([98e3a5a](https://github.com/thalesraymond/task-runner/commit/98e3a5a))
214
- * fix: standardize quotes and formatting in dependabot configuration ([ab2d7fa](https://github.com/thalesraymond/task-runner/commit/ab2d7fa))
215
- * Docs: Add comprehensive README.md ([f644a6e](https://github.com/thalesraymond/task-runner/commit/f644a6e))
216
- * refactor: standardize import statements and update ESLint configuration ([e1feb6f](https://github.com/thalesraymond/task-runner/commit/e1feb6f))
217
- * style: format .specify/memory/constitution.md ([b021cb3](https://github.com/thalesraymond/task-runner/commit/b021cb3))
218
- * docs: amend constitution to v1.1.0 (principle additions + governance update) ([198ef5d](https://github.com/thalesraymond/task-runner/commit/198ef5d))
184
+ - Add templates for project documentation and task management ([bb7fb3c](https://github.com/thalesraymond/task-runner/commit/bb7fb3c))
185
+ - Initial commit ([c13cd95](https://github.com/thalesraymond/task-runner/commit/c13cd95))
186
+ - Remove NPM_TOKEN from release.yml ([0a97d89](https://github.com/thalesraymond/task-runner/commit/0a97d89))
187
+ - remove old lock ([b616679](https://github.com/thalesraymond/task-runner/commit/b616679))
188
+ - Rename package to @calmo/task-runner ([acdf6f1](https://github.com/thalesraymond/task-runner/commit/acdf6f1))
189
+ - Set package ecosystem to 'npm' in dependabot config ([6b2cd5f](https://github.com/thalesraymond/task-runner/commit/6b2cd5f))
190
+ - Update specs/001-generic-task-runner/contracts/api.ts ([f0c062f](https://github.com/thalesraymond/task-runner/commit/f0c062f))
191
+ - Update specs/001-generic-task-runner/data-model.md ([3ae876b](https://github.com/thalesraymond/task-runner/commit/3ae876b))
192
+ - Update specs/003-refactor-file-structure/data-model.md ([9474619](https://github.com/thalesraymond/task-runner/commit/9474619))
193
+ - Update specs/003-refactor-file-structure/quickstart.md ([28a4938](https://github.com/thalesraymond/task-runner/commit/28a4938))
194
+ - Update src/TaskRunner.ts ([63e396b](https://github.com/thalesraymond/task-runner/commit/63e396b))
195
+ - feat: add CI workflow and restore dependabot ([57ae940](https://github.com/thalesraymond/task-runner/commit/57ae940))
196
+ - feat: add CI workflow and restore dependabot ([48ec98b](https://github.com/thalesraymond/task-runner/commit/48ec98b))
197
+ - feat: add CI workflow and restore dependabot ([9263c43](https://github.com/thalesraymond/task-runner/commit/9263c43))
198
+ - feat: add CI workflow for build, lint, and test ([6f97dc0](https://github.com/thalesraymond/task-runner/commit/6f97dc0))
199
+ - feat: add CI workflow for build, lint, and test ([a03422e](https://github.com/thalesraymond/task-runner/commit/a03422e))
200
+ - feat: configure semantic-release for automated releases ([fa13bf5](https://github.com/thalesraymond/task-runner/commit/fa13bf5))
201
+ - feat: Implement generic task runner with dependency management and parallel execution ([e0c8bf9](https://github.com/thalesraymond/task-runner/commit/e0c8bf9))
202
+ - feat: initialize project with TypeScript, Vitest, and basic sum function ([02dd759](https://github.com/thalesraymond/task-runner/commit/02dd759))
203
+ - feat(implement): complete file structure refactor ([7764e43](https://github.com/thalesraymond/task-runner/commit/7764e43))
204
+ - feat(implement): complete file structure refactor and cleanup ([372ca8b](https://github.com/thalesraymond/task-runner/commit/372ca8b))
205
+ - feat(plan): create technical plan for file refactor ([29d2a97](https://github.com/thalesraymond/task-runner/commit/29d2a97))
206
+ - feat(specs): add spec for file structure refactor ([884c551](https://github.com/thalesraymond/task-runner/commit/884c551))
207
+ - feat(tasks): create tasks for file structure refactor ([3b99e22](https://github.com/thalesraymond/task-runner/commit/3b99e22))
208
+ - test: add complex scenario integration test ([685399b](https://github.com/thalesraymond/task-runner/commit/685399b))
209
+ - test: add complex scenario integration test ([0935b9f](https://github.com/thalesraymond/task-runner/commit/0935b9f))
210
+ - test: add complex scenario integration test ([25440db](https://github.com/thalesraymond/task-runner/commit/25440db))
211
+ - test: add tests to reach 100% coverage ([a48678c](https://github.com/thalesraymond/task-runner/commit/a48678c))
212
+ - chore: enable husky, commitlint and git-cz ([790ae6a](https://github.com/thalesraymond/task-runner/commit/790ae6a))
213
+ - ci: add codecov upload step to workflow ([523ebe6](https://github.com/thalesraymond/task-runner/commit/523ebe6))
214
+ - build(deps): bump actions/checkout from 4 to 6 ([b092b9a](https://github.com/thalesraymond/task-runner/commit/b092b9a))
215
+ - build(deps): bump actions/setup-node from 4 to 6 ([b5cd513](https://github.com/thalesraymond/task-runner/commit/b5cd513))
216
+ - fix: change singleQuote option to false in Prettier configuration ([94625a3](https://github.com/thalesraymond/task-runner/commit/94625a3))
217
+ - fix: correct syntax errors in README.md examples and improve context hydration explanation ([98e3a5a](https://github.com/thalesraymond/task-runner/commit/98e3a5a))
218
+ - fix: standardize quotes and formatting in dependabot configuration ([ab2d7fa](https://github.com/thalesraymond/task-runner/commit/ab2d7fa))
219
+ - Docs: Add comprehensive README.md ([f644a6e](https://github.com/thalesraymond/task-runner/commit/f644a6e))
220
+ - refactor: standardize import statements and update ESLint configuration ([e1feb6f](https://github.com/thalesraymond/task-runner/commit/e1feb6f))
221
+ - style: format .specify/memory/constitution.md ([b021cb3](https://github.com/thalesraymond/task-runner/commit/b021cb3))
222
+ - docs: amend constitution to v1.1.0 (principle additions + governance update) ([198ef5d](https://github.com/thalesraymond/task-runner/commit/198ef5d))