sqlew 3.6.1 → 3.6.3

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 (196) hide show
  1. package/CHANGELOG.md +65 -0
  2. package/assets/config.example.toml +28 -0
  3. package/dist/knexfile.d.ts.map +1 -1
  4. package/dist/knexfile.js +15 -3
  5. package/dist/knexfile.js.map +1 -1
  6. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
  7. package/dist/migrations/knex/{20251025020452_create_master_tables.js → bootstrap/20251025020452_create_master_tables.js} +15 -12
  8. package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
  9. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
  10. package/dist/migrations/knex/{20251025021152_create_transaction_tables.js → bootstrap/20251025021152_create_transaction_tables.js} +19 -19
  11. package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
  12. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
  13. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js +93 -0
  14. package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
  15. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
  16. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js +64 -0
  17. package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
  18. package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
  19. package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +1 -0
  20. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
  21. package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
  22. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
  23. package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
  24. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
  25. package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
  26. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
  27. package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
  28. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
  29. package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
  30. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
  31. package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
  32. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
  33. package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
  34. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
  35. package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
  36. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
  37. package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
  38. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
  39. package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
  40. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +13 -0
  41. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
  42. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +70 -0
  43. package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
  44. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +11 -0
  45. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
  46. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +36 -0
  47. package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
  48. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +14 -0
  49. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
  50. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +84 -0
  51. package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
  52. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +9 -0
  53. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
  54. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +37 -0
  55. package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
  56. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +9 -0
  57. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
  58. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +41 -0
  59. package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
  60. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +9 -0
  61. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
  62. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +36 -0
  63. package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
  64. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +10 -0
  65. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
  66. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +28 -0
  67. package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
  68. package/dist/tests/migrations/test-all-versions-real.d.ts +8 -0
  69. package/dist/tests/migrations/test-all-versions-real.d.ts.map +1 -0
  70. package/dist/tests/migrations/test-all-versions-real.js +234 -0
  71. package/dist/tests/migrations/test-all-versions-real.js.map +1 -0
  72. package/dist/tests/migrations/test-all-versions.d.ts +14 -0
  73. package/dist/tests/migrations/test-all-versions.d.ts.map +1 -0
  74. package/dist/tests/migrations/test-all-versions.js +521 -0
  75. package/dist/tests/migrations/test-all-versions.js.map +1 -0
  76. package/dist/tools/tasks.js +2 -2
  77. package/dist/tools/tasks.js.map +1 -1
  78. package/dist/utils/task-stale-detection.d.ts.map +1 -1
  79. package/dist/utils/task-stale-detection.js +79 -4
  80. package/dist/utils/task-stale-detection.js.map +1 -1
  81. package/docs/MIGRATION_CHAIN.md +13 -0
  82. package/package.json +4 -1
  83. package/dist/migrations/add-decision-context.d.ts +0 -28
  84. package/dist/migrations/add-decision-context.d.ts.map +0 -1
  85. package/dist/migrations/add-decision-context.js +0 -125
  86. package/dist/migrations/add-decision-context.js.map +0 -1
  87. package/dist/migrations/add-help-system-tables.d.ts +0 -35
  88. package/dist/migrations/add-help-system-tables.d.ts.map +0 -1
  89. package/dist/migrations/add-help-system-tables.js +0 -206
  90. package/dist/migrations/add-help-system-tables.js.map +0 -1
  91. package/dist/migrations/add-table-prefixes.d.ts +0 -29
  92. package/dist/migrations/add-table-prefixes.d.ts.map +0 -1
  93. package/dist/migrations/add-table-prefixes.js +0 -150
  94. package/dist/migrations/add-table-prefixes.js.map +0 -1
  95. package/dist/migrations/add-task-dependencies.d.ts +0 -26
  96. package/dist/migrations/add-task-dependencies.d.ts.map +0 -1
  97. package/dist/migrations/add-task-dependencies.js +0 -94
  98. package/dist/migrations/add-task-dependencies.js.map +0 -1
  99. package/dist/migrations/add-task-tables.d.ts +0 -47
  100. package/dist/migrations/add-task-tables.d.ts.map +0 -1
  101. package/dist/migrations/add-task-tables.js +0 -285
  102. package/dist/migrations/add-task-tables.js.map +0 -1
  103. package/dist/migrations/add-token-tracking.d.ts +0 -28
  104. package/dist/migrations/add-token-tracking.d.ts.map +0 -1
  105. package/dist/migrations/add-token-tracking.js +0 -108
  106. package/dist/migrations/add-token-tracking.js.map +0 -1
  107. package/dist/migrations/add-v2.1.0-features.d.ts +0 -29
  108. package/dist/migrations/add-v2.1.0-features.d.ts.map +0 -1
  109. package/dist/migrations/add-v2.1.0-features.js +0 -198
  110. package/dist/migrations/add-v2.1.0-features.js.map +0 -1
  111. package/dist/migrations/add-v3.5.0-pruned-files.d.ts +0 -26
  112. package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +0 -1
  113. package/dist/migrations/add-v3.5.0-pruned-files.js +0 -107
  114. package/dist/migrations/add-v3.5.0-pruned-files.js.map +0 -1
  115. package/dist/migrations/index.d.ts +0 -112
  116. package/dist/migrations/index.d.ts.map +0 -1
  117. package/dist/migrations/index.js +0 -411
  118. package/dist/migrations/index.js.map +0 -1
  119. package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +0 -1
  120. package/dist/migrations/knex/20251025020452_create_master_tables.js.map +0 -1
  121. package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +0 -1
  122. package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +0 -1
  123. package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +0 -1
  124. package/dist/migrations/knex/20251025021351_create_indexes.js +0 -62
  125. package/dist/migrations/knex/20251025021351_create_indexes.js.map +0 -1
  126. package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +0 -1
  127. package/dist/migrations/knex/20251025021416_seed_master_data.js +0 -58
  128. package/dist/migrations/knex/20251025021416_seed_master_data.js.map +0 -1
  129. package/dist/migrations/knex/20251025070349_create_views.d.ts.map +0 -1
  130. package/dist/migrations/knex/20251025070349_create_views.js.map +0 -1
  131. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
  132. package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
  133. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
  134. package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +0 -1
  135. package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +0 -1
  136. package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +0 -1
  137. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
  138. package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
  139. package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +0 -1
  140. package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +0 -1
  141. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
  142. package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +0 -1
  143. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
  144. package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
  145. package/dist/migrations/knex/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
  146. package/dist/migrations/knex/20251027000000_add_agent_reuse_system.js.map +0 -1
  147. package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
  148. package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
  149. package/dist/migrations/knex/20251027020000_update_agent_reusability.d.ts.map +0 -1
  150. package/dist/migrations/knex/20251027020000_update_agent_reusability.js.map +0 -1
  151. package/dist/migrations/migrate-decisions-to-tasks.d.ts +0 -61
  152. package/dist/migrations/migrate-decisions-to-tasks.d.ts.map +0 -1
  153. package/dist/migrations/migrate-decisions-to-tasks.js +0 -442
  154. package/dist/migrations/migrate-decisions-to-tasks.js.map +0 -1
  155. package/dist/migrations/seed-help-data.d.ts +0 -48
  156. package/dist/migrations/seed-help-data.d.ts.map +0 -1
  157. package/dist/migrations/seed-help-data.js +0 -1466
  158. package/dist/migrations/seed-help-data.js.map +0 -1
  159. package/dist/migrations/seed-tool-metadata.d.ts +0 -24
  160. package/dist/migrations/seed-tool-metadata.d.ts.map +0 -1
  161. package/dist/migrations/seed-tool-metadata.js +0 -392
  162. package/dist/migrations/seed-tool-metadata.js.map +0 -1
  163. package/dist/migrations/v3.6.0-help-system-refactor.d.ts +0 -46
  164. package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +0 -1
  165. package/dist/migrations/v3.6.0-help-system-refactor.js +0 -223
  166. package/dist/migrations/v3.6.0-help-system-refactor.js.map +0 -1
  167. package/dist/tests/migrations/test-v3.2-migration.d.ts +0 -6
  168. package/dist/tests/migrations/test-v3.2-migration.d.ts.map +0 -1
  169. package/dist/tests/migrations/test-v3.2-migration.js +0 -191
  170. package/dist/tests/migrations/test-v3.2-migration.js.map +0 -1
  171. /package/dist/migrations/knex/{20251025020452_create_master_tables.d.ts → bootstrap/20251025020452_create_master_tables.d.ts} +0 -0
  172. /package/dist/migrations/knex/{20251025021152_create_transaction_tables.d.ts → bootstrap/20251025021152_create_transaction_tables.d.ts} +0 -0
  173. /package/dist/migrations/knex/{20251025021351_create_indexes.d.ts → bootstrap/20251025021351_create_indexes.d.ts} +0 -0
  174. /package/dist/migrations/knex/{20251025021416_seed_master_data.d.ts → bootstrap/20251025021416_seed_master_data.d.ts} +0 -0
  175. /package/dist/migrations/knex/{20251025070349_create_views.d.ts → bootstrap/20251025070349_create_views.d.ts} +0 -0
  176. /package/dist/migrations/knex/{20251025070349_create_views.js → bootstrap/20251025070349_create_views.js} +0 -0
  177. /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.d.ts → enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts} +0 -0
  178. /package/dist/migrations/knex/{20251025081221_add_link_type_to_task_decision_links.js → enhancements/20251025081221_add_link_type_to_task_decision_links.js} +0 -0
  179. /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.d.ts → enhancements/20251025082220_fix_task_dependencies_columns.d.ts} +0 -0
  180. /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.js → enhancements/20251025082220_fix_task_dependencies_columns.js} +0 -0
  181. /package/dist/migrations/knex/{20251025090000_create_help_system_tables.d.ts → enhancements/20251025090000_create_help_system_tables.d.ts} +0 -0
  182. /package/dist/migrations/knex/{20251025090000_create_help_system_tables.js → enhancements/20251025090000_create_help_system_tables.js} +0 -0
  183. /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.d.ts → enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts} +0 -0
  184. /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.js → enhancements/20251025090100_seed_help_categories_and_use_cases.js} +0 -0
  185. /package/dist/migrations/knex/{20251025100000_seed_help_metadata.d.ts → enhancements/20251025100000_seed_help_metadata.d.ts} +0 -0
  186. /package/dist/migrations/knex/{20251025100000_seed_help_metadata.js → enhancements/20251025100000_seed_help_metadata.js} +0 -0
  187. /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.d.ts → enhancements/20251025100100_seed_remaining_use_cases.d.ts} +0 -0
  188. /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.js → enhancements/20251025100100_seed_remaining_use_cases.js} +0 -0
  189. /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.d.ts → enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts} +0 -0
  190. /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.js → enhancements/20251025120000_add_cascade_to_task_dependencies.js} +0 -0
  191. /package/dist/migrations/knex/{20251027000000_add_agent_reuse_system.d.ts → enhancements/20251027000000_add_agent_reuse_system.d.ts} +0 -0
  192. /package/dist/migrations/knex/{20251027000000_add_agent_reuse_system.js → enhancements/20251027000000_add_agent_reuse_system.js} +0 -0
  193. /package/dist/migrations/knex/{20251027010000_add_task_constraint_to_decision_context.d.ts → enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts} +0 -0
  194. /package/dist/migrations/knex/{20251027010000_add_task_constraint_to_decision_context.js → enhancements/20251027010000_add_task_constraint_to_decision_context.js} +0 -0
  195. /package/dist/migrations/knex/{20251027020000_update_agent_reusability.d.ts → enhancements/20251027020000_update_agent_reusability.d.ts} +0 -0
  196. /package/dist/migrations/knex/{20251027020000_update_agent_reusability.js → enhancements/20251027020000_update_agent_reusability.js} +0 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,71 @@ All notable changes to sqlew will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.6.3] - 2025-10-27
9
+
10
+ ### Fixed - Critical Bug Fixes & Git Add Detection
11
+
12
+ **Transaction pool exhaustion and VCS-aware auto-complete implementation**
13
+
14
+ #### Bug Fixes
15
+ - **Task Move Transaction Bug** - Fixed `moveTask` using base `knex` instead of transaction `trx` (line 880)
16
+ - Caused "Knex: Timeout acquiring a connection" errors
17
+ - Now properly uses transaction object for `logTaskStatusChange`
18
+ - **Task Link Transaction Bug** - Fixed `linkTask` using base `knex` instead of transaction `trx` (line 948)
19
+ - Same connection pool exhaustion issue
20
+ - Now properly uses transaction object for decision link insertion
21
+
22
+ #### Features
23
+ - **Git Add Detection** - Implemented `detectAndCompleteOnStaging()` for VCS-aware workflow
24
+ - Detects `git add` operations and auto-completes tasks (`waiting_review` → `done`)
25
+ - Supports Git, Mercurial, and SVN
26
+ - Configurable via `git_auto_complete_on_stage` and `require_all_files_staged`
27
+ - **VCS Configuration** - Added comprehensive settings documentation to `config.example.toml`
28
+ - `git_auto_complete_on_stage` (default: true)
29
+ - `git_auto_archive_on_commit` (default: true)
30
+ - `require_all_files_staged` (default: true)
31
+ - `require_all_files_committed_for_archive` (default: true)
32
+
33
+ #### Infrastructure
34
+ - **Line Ending Fix** - Added `.gitattributes` to enforce LF endings for shell scripts
35
+ - Prevents CRLF issues in Husky hooks on Windows/WSL
36
+ - Applies to `*.sh` and `.husky/*` files
37
+ - **Husky Hooks** - Fixed pre-commit/pre-push hooks (added shebang, normalized line endings)
38
+
39
+ #### Impact
40
+ - ✅ Task operations no longer fail with connection pool timeouts
41
+ - ✅ Git add detection now functional (was stubbed in v3.5.2)
42
+ - ✅ Cross-platform compatibility for git hooks (Windows/WSL/Linux/macOS)
43
+
44
+ ---
45
+
46
+ ## [3.6.2] - 2025-10-27
47
+
48
+ ### Changed - Migration System Modernization
49
+
50
+ **Simplified to Knex-only migrations with organized directory structure**
51
+
52
+ #### Migration System Cleanup
53
+ - **Removed custom migration system** (14 obsolete files from `src/migrations/`)
54
+ - **Pure Knex migrations** - Standardized on Knex.js migration framework
55
+ - **Organized structure** - 22 migrations grouped into 3 logical subdirectories:
56
+ - `upgrades/` (7 files) - Version upgrade paths (v1.0 → v3.6)
57
+ - `bootstrap/` (5 files) - Fresh install foundation
58
+ - `enhancements/` (10 files) - v3.6.0+ feature additions
59
+
60
+ #### Testing & CI/CD
61
+ - **Migration tests updated** - Converted to use Knex migrations exclusively
62
+ - **Comprehensive test coverage** - 8/9 versions migrate successfully (89% backward compatibility)
63
+ - **Husky git hooks** - Pre-commit (build + tests), pre-push (migration tests)
64
+ - **GitHub Actions workflow** - CI/CD pipeline for Node 18.x/20.x
65
+
66
+ #### Benefits
67
+ - **Better maintainability** - Clear organization, standard tooling
68
+ - **Easier onboarding** - Knex is industry-standard
69
+ - **Faster development** - 56% time efficiency via parallel execution
70
+
71
+ ---
72
+
8
73
  ## [3.6.0] - 2025-10-25
9
74
 
10
75
  ### Added - Help System Optimization
@@ -81,6 +81,34 @@ stale_hours_waiting_review = 24
81
81
  # Default: true
82
82
  auto_stale_enabled = true
83
83
 
84
+ # ============================================================================
85
+ # VCS-Aware Auto-Complete Settings (v3.5.2)
86
+ # ============================================================================
87
+ [vcs]
88
+ # Auto-complete tasks when files are staged (git add)
89
+ # When true: waiting_review → done when files are staged
90
+ # When false: Manual task completion required
91
+ # Default: true
92
+ git_auto_complete_on_stage = true
93
+
94
+ # Auto-archive tasks when files are committed (git commit)
95
+ # When true: done → archived when files are committed
96
+ # When false: Manual task archiving required
97
+ # Default: true
98
+ git_auto_archive_on_commit = true
99
+
100
+ # Require ALL watched files to be staged for auto-completion
101
+ # When true: All files must be staged to trigger waiting_review → done
102
+ # When false: At least one file staged is sufficient
103
+ # Default: true
104
+ require_all_files_staged = true
105
+
106
+ # Require ALL watched files to be committed for auto-archiving
107
+ # When true: All files must be committed to trigger done → archived
108
+ # When false: At least one file committed is sufficient
109
+ # Default: true
110
+ require_all_files_committed_for_archive = true
111
+
84
112
  # ============================================================================
85
113
  # Example Configurations
86
114
  # ============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"knexfile.d.ts","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,QAAA,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;CA4EzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"knexfile.d.ts","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAYjC,QAAA,MAAM,MAAM,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;CAwFzC,CAAC;AAEF,eAAe,MAAM,CAAC"}
package/dist/knexfile.js CHANGED
@@ -15,7 +15,11 @@ const config = {
15
15
  },
16
16
  useNullAsDefault: true,
17
17
  migrations: {
18
- directory: path.join(__dirname, 'migrations/knex'),
18
+ directory: [
19
+ path.join(__dirname, 'migrations/knex/bootstrap'),
20
+ path.join(__dirname, 'migrations/knex/upgrades'),
21
+ path.join(__dirname, 'migrations/knex/enhancements'),
22
+ ],
19
23
  extension: 'ts',
20
24
  tableName: 'knex_migrations',
21
25
  loadExtensions: ['.ts'],
@@ -43,7 +47,11 @@ const config = {
43
47
  },
44
48
  useNullAsDefault: true,
45
49
  migrations: {
46
- directory: path.join(__dirname, 'migrations/knex'),
50
+ directory: [
51
+ path.join(__dirname, 'migrations/knex/bootstrap'),
52
+ path.join(__dirname, 'migrations/knex/upgrades'),
53
+ path.join(__dirname, 'migrations/knex/enhancements'),
54
+ ],
47
55
  extension: 'ts',
48
56
  loadExtensions: ['.ts'],
49
57
  },
@@ -61,7 +69,11 @@ const config = {
61
69
  },
62
70
  useNullAsDefault: true,
63
71
  migrations: {
64
- directory: path.join(__dirname, 'migrations/knex'),
72
+ directory: [
73
+ path.join(__dirname, 'migrations/knex/bootstrap'),
74
+ path.join(__dirname, 'migrations/knex/upgrades'),
75
+ path.join(__dirname, 'migrations/knex/enhancements'),
76
+ ],
65
77
  extension: 'js',
66
78
  loadExtensions: ['.js'],
67
79
  },
@@ -1 +1 @@
1
- {"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,yDAAyD;AACzD,qEAAqE;AACrE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,iBAAiB,CAAC;AAEvE,MAAM,MAAM,GAAmC;IAC7C,WAAW,EAAE;QACX,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,8CAA8C;YAC9C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;SACvD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;YAClD,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,iBAAiB;YAC5B,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,gDAAgD;QAChD,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,IAAS,EAAE,EAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACnC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjB,CAAC;SACF;KACF;IAED,IAAI,EAAE;QACJ,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU,EAAE,iCAAiC;SACxD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;YAClD,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;KACF;IAED,UAAU,EAAE;QACV,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,6CAA6C;YAC7C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;SACvD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC;YAClD,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,IAAS,EAAE,EAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,6BAA6B;gBAChE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACpC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjB,CAAC;SACF;KACF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"knexfile.js","sourceRoot":"","sources":["../src/knexfile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,yDAAyD;AACzD,qEAAqE;AACrE,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,iBAAiB,CAAC;AAEvE,MAAM,MAAM,GAAmC;IAC7C,WAAW,EAAE;QACX,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,8CAA8C;YAC9C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;SACvD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC;aACrD;YACD,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,iBAAiB;YAC5B,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,gDAAgD;QAChD,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,IAAS,EAAE,EAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;gBACnC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjB,CAAC;SACF;KACF;IAED,IAAI,EAAE;QACJ,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,QAAQ,EAAE,UAAU,EAAE,iCAAiC;SACxD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC;aACrD;YACD,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;KACF;IAED,UAAU,EAAE;QACV,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE;YACV,6CAA6C;YAC7C,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC;SACvD;QACD,gBAAgB,EAAE,IAAI;QACtB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,2BAA2B,CAAC;gBACjD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,0BAA0B,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,8BAA8B,CAAC;aACrD;YACD,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,KAAK,EAAE;YACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC;YACxC,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,CAAC,KAAK,CAAC;SACxB;QACD,IAAI,EAAE;YACJ,WAAW,EAAE,CAAC,IAAS,EAAE,EAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;gBAClC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,6BAA6B;gBAChE,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACpC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACjB,CAAC;SACF;KACF;CACF,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025020452_create_master_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAapD"}
@@ -3,50 +3,53 @@ export async function up(knex) {
3
3
  // Master Tables (m_ prefix) - Normalization Layer
4
4
  // ============================================================================
5
5
  // Agent Management
6
- await knex.schema.createTable('m_agents', (table) => {
6
+ await knex.schema.createTableIfNotExists('m_agents', (table) => {
7
7
  table.increments('id').primary();
8
8
  table.string('name', 100).unique().notNullable();
9
9
  });
10
10
  // File Path Management
11
- await knex.schema.createTable('m_files', (table) => {
11
+ await knex.schema.createTableIfNotExists('m_files', (table) => {
12
12
  table.increments('id').primary();
13
13
  table.string('path', 1000).unique().notNullable();
14
14
  });
15
15
  // Context Key Management
16
- await knex.schema.createTable('m_context_keys', (table) => {
16
+ await knex.schema.createTableIfNotExists('m_context_keys', (table) => {
17
17
  table.increments('id').primary();
18
18
  table.string('key', 200).unique().notNullable();
19
19
  });
20
20
  // Constraint Category Management
21
- await knex.schema.createTable('m_constraint_categories', (table) => {
21
+ await knex.schema.createTableIfNotExists('m_constraint_categories', (table) => {
22
22
  table.increments('id').primary();
23
23
  table.string('name', 100).unique().notNullable();
24
24
  });
25
25
  // Layer Management (5 predefined layers)
26
- await knex.schema.createTable('m_layers', (table) => {
26
+ await knex.schema.createTableIfNotExists('m_layers', (table) => {
27
27
  table.increments('id').primary();
28
28
  table.string('name', 50).unique().notNullable();
29
29
  });
30
30
  // Tag Management
31
- await knex.schema.createTable('m_tags', (table) => {
31
+ await knex.schema.createTableIfNotExists('m_tags', (table) => {
32
32
  table.increments('id').primary();
33
33
  table.string('name', 100).unique().notNullable();
34
34
  });
35
35
  // Scope Management
36
- await knex.schema.createTable('m_scopes', (table) => {
36
+ await knex.schema.createTableIfNotExists('m_scopes', (table) => {
37
37
  table.increments('id').primary();
38
38
  table.string('name', 200).unique().notNullable();
39
39
  });
40
40
  // Configuration Management (key-value store)
41
- await knex.schema.createTable('m_config', (table) => {
41
+ await knex.schema.createTableIfNotExists('m_config', (table) => {
42
42
  table.string('key').primary();
43
43
  table.text('value').notNullable();
44
44
  });
45
45
  // Task Statuses (enum-like table)
46
- await knex.schema.createTable('m_task_statuses', (table) => {
47
- table.integer('id').primary();
48
- table.string('name', 50).unique().notNullable();
49
- });
46
+ const hasTaskStatuses = await knex.schema.hasTable('m_task_statuses');
47
+ if (!hasTaskStatuses) {
48
+ await knex.schema.createTable('m_task_statuses', (table) => {
49
+ table.integer('id').primary();
50
+ table.string('name', 50).unique().notNullable();
51
+ });
52
+ }
50
53
  console.log('✅ Master tables created successfully');
51
54
  }
52
55
  export async function down(knex) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025020452_create_master_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025020452_create_master_tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021152_create_transaction_tables.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAsOlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAuBpD"}
@@ -3,7 +3,7 @@ export async function up(knex) {
3
3
  // Transaction Tables (t_ prefix) - Core Data
4
4
  // ============================================================================
5
5
  // Decisions (String Values)
6
- await knex.schema.createTable('t_decisions', (table) => {
6
+ await knex.schema.createTableIfNotExists('t_decisions', (table) => {
7
7
  table.integer('key_id').primary();
8
8
  table.foreign('key_id').references('m_context_keys.id');
9
9
  table.text('value').notNullable();
@@ -16,7 +16,7 @@ export async function up(knex) {
16
16
  table.integer('ts').notNullable();
17
17
  });
18
18
  // Decisions (Numeric Values)
19
- await knex.schema.createTable('t_decisions_numeric', (table) => {
19
+ await knex.schema.createTableIfNotExists('t_decisions_numeric', (table) => {
20
20
  table.integer('key_id').primary();
21
21
  table.foreign('key_id').references('m_context_keys.id');
22
22
  table.double('value').notNullable();
@@ -29,7 +29,7 @@ export async function up(knex) {
29
29
  table.integer('ts').notNullable();
30
30
  });
31
31
  // Decision Version History
32
- await knex.schema.createTable('t_decision_history', (table) => {
32
+ await knex.schema.createTableIfNotExists('t_decision_history', (table) => {
33
33
  table.increments('id').primary();
34
34
  table.integer('key_id');
35
35
  table.foreign('key_id').references('m_context_keys.id');
@@ -40,7 +40,7 @@ export async function up(knex) {
40
40
  table.integer('ts').notNullable();
41
41
  });
42
42
  // Decision Tagging (Many-to-Many)
43
- await knex.schema.createTable('t_decision_tags', (table) => {
43
+ await knex.schema.createTableIfNotExists('t_decision_tags', (table) => {
44
44
  table.integer('decision_key_id');
45
45
  table.foreign('decision_key_id').references('m_context_keys.id');
46
46
  table.integer('tag_id');
@@ -48,7 +48,7 @@ export async function up(knex) {
48
48
  table.primary(['decision_key_id', 'tag_id']);
49
49
  });
50
50
  // Decision Scopes (Many-to-Many)
51
- await knex.schema.createTable('t_decision_scopes', (table) => {
51
+ await knex.schema.createTableIfNotExists('t_decision_scopes', (table) => {
52
52
  table.integer('decision_key_id');
53
53
  table.foreign('decision_key_id').references('m_context_keys.id');
54
54
  table.integer('scope_id');
@@ -56,7 +56,7 @@ export async function up(knex) {
56
56
  table.primary(['decision_key_id', 'scope_id']);
57
57
  });
58
58
  // Agent Messages
59
- await knex.schema.createTable('t_agent_messages', (table) => {
59
+ await knex.schema.createTableIfNotExists('t_agent_messages', (table) => {
60
60
  table.increments('id').primary();
61
61
  table.integer('from_agent_id');
62
62
  table.foreign('from_agent_id').references('m_agents.id');
@@ -70,7 +70,7 @@ export async function up(knex) {
70
70
  table.integer('ts').notNullable();
71
71
  });
72
72
  // File Change Tracking
73
- await knex.schema.createTable('t_file_changes', (table) => {
73
+ await knex.schema.createTableIfNotExists('t_file_changes', (table) => {
74
74
  table.increments('id').primary();
75
75
  table.integer('file_id');
76
76
  table.foreign('file_id').references('m_files.id');
@@ -83,7 +83,7 @@ export async function up(knex) {
83
83
  table.integer('ts').notNullable();
84
84
  });
85
85
  // Constraints
86
- await knex.schema.createTable('t_constraints', (table) => {
86
+ await knex.schema.createTableIfNotExists('t_constraints', (table) => {
87
87
  table.increments('id').primary();
88
88
  table.integer('category_id');
89
89
  table.foreign('category_id').references('m_constraint_categories.id');
@@ -97,7 +97,7 @@ export async function up(knex) {
97
97
  table.integer('ts').notNullable();
98
98
  });
99
99
  // Constraint Tagging (Many-to-Many)
100
- await knex.schema.createTable('t_constraint_tags', (table) => {
100
+ await knex.schema.createTableIfNotExists('t_constraint_tags', (table) => {
101
101
  table.integer('constraint_id');
102
102
  table.foreign('constraint_id').references('t_constraints.id');
103
103
  table.integer('tag_id');
@@ -105,7 +105,7 @@ export async function up(knex) {
105
105
  table.primary(['constraint_id', 'tag_id']);
106
106
  });
107
107
  // Activity Log
108
- await knex.schema.createTable('t_activity_log', (table) => {
108
+ await knex.schema.createTableIfNotExists('t_activity_log', (table) => {
109
109
  table.increments('id').primary();
110
110
  table.integer('agent_id');
111
111
  table.foreign('agent_id').references('m_agents.id');
@@ -117,7 +117,7 @@ export async function up(knex) {
117
117
  table.integer('ts').notNullable();
118
118
  });
119
119
  // Decision Templates
120
- await knex.schema.createTable('t_decision_templates', (table) => {
120
+ await knex.schema.createTableIfNotExists('t_decision_templates', (table) => {
121
121
  table.increments('id').primary();
122
122
  table.string('name', 200).unique().notNullable();
123
123
  table.text('description');
@@ -125,7 +125,7 @@ export async function up(knex) {
125
125
  table.text('required_fields'); // JSON
126
126
  });
127
127
  // Decision Context (v3.2.2)
128
- await knex.schema.createTable('t_decision_context', (table) => {
128
+ await knex.schema.createTableIfNotExists('t_decision_context', (table) => {
129
129
  table.increments('id').primary();
130
130
  table.integer('decision_key_id');
131
131
  table.foreign('decision_key_id').references('m_context_keys.id');
@@ -138,7 +138,7 @@ export async function up(knex) {
138
138
  table.integer('ts').notNullable();
139
139
  });
140
140
  // Tasks (v3.0.0 Kanban system)
141
- await knex.schema.createTable('t_tasks', (table) => {
141
+ await knex.schema.createTableIfNotExists('t_tasks', (table) => {
142
142
  table.increments('id').primary();
143
143
  table.string('title', 500).notNullable();
144
144
  table.integer('status_id').defaultTo(1); // 1=todo
@@ -155,7 +155,7 @@ export async function up(knex) {
155
155
  table.integer('completed_ts');
156
156
  });
157
157
  // Task Details
158
- await knex.schema.createTable('t_task_details', (table) => {
158
+ await knex.schema.createTableIfNotExists('t_task_details', (table) => {
159
159
  table.integer('task_id').primary();
160
160
  table.foreign('task_id').references('t_tasks.id');
161
161
  table.text('description');
@@ -164,7 +164,7 @@ export async function up(knex) {
164
164
  table.text('notes');
165
165
  });
166
166
  // Task Tagging (Many-to-Many)
167
- await knex.schema.createTable('t_task_tags', (table) => {
167
+ await knex.schema.createTableIfNotExists('t_task_tags', (table) => {
168
168
  table.integer('task_id');
169
169
  table.foreign('task_id').references('t_tasks.id');
170
170
  table.integer('tag_id');
@@ -172,7 +172,7 @@ export async function up(knex) {
172
172
  table.primary(['task_id', 'tag_id']);
173
173
  });
174
174
  // Task-Decision Links
175
- await knex.schema.createTable('t_task_decision_links', (table) => {
175
+ await knex.schema.createTableIfNotExists('t_task_decision_links', (table) => {
176
176
  table.integer('task_id');
177
177
  table.foreign('task_id').references('t_tasks.id');
178
178
  table.integer('decision_key_id');
@@ -180,7 +180,7 @@ export async function up(knex) {
180
180
  table.primary(['task_id', 'decision_key_id']);
181
181
  });
182
182
  // Task-Constraint Links
183
- await knex.schema.createTable('t_task_constraint_links', (table) => {
183
+ await knex.schema.createTableIfNotExists('t_task_constraint_links', (table) => {
184
184
  table.integer('task_id');
185
185
  table.foreign('task_id').references('t_tasks.id');
186
186
  table.integer('constraint_id');
@@ -188,7 +188,7 @@ export async function up(knex) {
188
188
  table.primary(['task_id', 'constraint_id']);
189
189
  });
190
190
  // Task-File Links
191
- await knex.schema.createTable('t_task_file_links', (table) => {
191
+ await knex.schema.createTableIfNotExists('t_task_file_links', (table) => {
192
192
  table.integer('task_id');
193
193
  table.foreign('task_id').references('t_tasks.id');
194
194
  table.integer('file_id');
@@ -198,7 +198,7 @@ export async function up(knex) {
198
198
  // Task Dependencies (v3.2.0) - with CASCADE delete
199
199
  // Note: Using raw SQL because Knex doesn't properly generate ON DELETE CASCADE for SQLite
200
200
  await knex.raw(`
201
- CREATE TABLE t_task_dependencies (
201
+ CREATE TABLE IF NOT EXISTS t_task_dependencies (
202
202
  task_id INTEGER,
203
203
  depends_on_task_id INTEGER,
204
204
  created_ts INTEGER NOT NULL,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021152_create_transaction_tables.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021152_create_transaction_tables.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021351_create_indexes.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021351_create_indexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AA4CjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ClD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BpD"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Helper function to safely create index only if column exists
3
+ * Prevents errors when running on old schemas that don't have certain columns
4
+ */
5
+ async function createIndexIfColumnExists(knex, tableName, columns, indexName, desc = false) {
6
+ try {
7
+ // Check if table exists first
8
+ const tableExists = await knex.schema.hasTable(tableName);
9
+ if (!tableExists) {
10
+ console.log(`⏭️ Skipping ${indexName}: table ${tableName} doesn't exist`);
11
+ return;
12
+ }
13
+ // Get column info for the table
14
+ const columnInfo = await knex(tableName).columnInfo();
15
+ // Check if all required columns exist
16
+ const columnArray = Array.isArray(columns) ? columns : [columns];
17
+ const missingColumns = columnArray.filter(col => !columnInfo[col]);
18
+ if (missingColumns.length > 0) {
19
+ console.log(`⏭️ Skipping ${indexName}: column(s) ${missingColumns.join(', ')} don't exist yet`);
20
+ return;
21
+ }
22
+ // Build index creation SQL
23
+ const columnList = columnArray.join(', ');
24
+ const order = desc ? 'DESC' : '';
25
+ await knex.raw(`CREATE INDEX IF NOT EXISTS ${indexName} ON ${tableName}(${columnList} ${order})`.trim());
26
+ }
27
+ catch (error) {
28
+ console.log(`⚠️ Error creating index ${indexName}: ${error}`);
29
+ // Don't throw - indexes are performance optimizations, not critical
30
+ }
31
+ }
32
+ export async function up(knex) {
33
+ // ============================================================================
34
+ // Indexes for Performance Optimization
35
+ // ============================================================================
36
+ // Decisions indexes
37
+ await createIndexIfColumnExists(knex, 't_decisions', 'ts', 'idx_decisions_ts', true);
38
+ await createIndexIfColumnExists(knex, 't_decisions', 'layer_id', 'idx_decisions_layer');
39
+ await createIndexIfColumnExists(knex, 't_decisions', 'agent_id', 'idx_decisions_agent');
40
+ await createIndexIfColumnExists(knex, 't_decisions', 'status', 'idx_decisions_status');
41
+ // Decisions numeric indexes
42
+ await createIndexIfColumnExists(knex, 't_decisions_numeric', 'ts', 'idx_decisions_numeric_ts', true);
43
+ await createIndexIfColumnExists(knex, 't_decisions_numeric', 'layer_id', 'idx_decisions_numeric_layer');
44
+ // Messages indexes
45
+ await createIndexIfColumnExists(knex, 't_agent_messages', 'ts', 'idx_messages_ts', true);
46
+ await createIndexIfColumnExists(knex, 't_agent_messages', ['to_agent_id', 'read'], 'idx_messages_to_agent');
47
+ await createIndexIfColumnExists(knex, 't_agent_messages', 'priority', 'idx_messages_priority', true);
48
+ // File changes indexes
49
+ await createIndexIfColumnExists(knex, 't_file_changes', 'ts', 'idx_file_changes_ts', true);
50
+ await createIndexIfColumnExists(knex, 't_file_changes', 'file_id', 'idx_file_changes_file');
51
+ await createIndexIfColumnExists(knex, 't_file_changes', 'layer_id', 'idx_file_changes_layer');
52
+ // Constraints indexes
53
+ await createIndexIfColumnExists(knex, 't_constraints', 'active', 'idx_constraints_active');
54
+ await createIndexIfColumnExists(knex, 't_constraints', 'layer_id', 'idx_constraints_layer');
55
+ await createIndexIfColumnExists(knex, 't_constraints', 'priority', 'idx_constraints_priority', true);
56
+ // Activity log indexes - agent_id may not exist in old schemas
57
+ await createIndexIfColumnExists(knex, 't_activity_log', 'ts', 'idx_activity_log_ts', true);
58
+ await createIndexIfColumnExists(knex, 't_activity_log', 'agent_id', 'idx_activity_log_agent');
59
+ // Task indexes - assigned_agent_id may not exist in old schemas
60
+ await createIndexIfColumnExists(knex, 't_tasks', 'status_id', 'idx_tasks_status');
61
+ await createIndexIfColumnExists(knex, 't_tasks', 'priority', 'idx_tasks_priority', true);
62
+ await createIndexIfColumnExists(knex, 't_tasks', 'assigned_agent_id', 'idx_tasks_agent');
63
+ await createIndexIfColumnExists(knex, 't_tasks', 'created_ts', 'idx_tasks_created_ts', true);
64
+ await createIndexIfColumnExists(knex, 't_tasks', 'updated_ts', 'idx_tasks_updated_ts', true);
65
+ console.log('✅ Indexes created successfully');
66
+ }
67
+ export async function down(knex) {
68
+ // Drop all indexes
69
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_updated_ts');
70
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_created_ts');
71
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_agent');
72
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_priority');
73
+ await knex.raw('DROP INDEX IF EXISTS idx_tasks_status');
74
+ await knex.raw('DROP INDEX IF EXISTS idx_activity_log_agent');
75
+ await knex.raw('DROP INDEX IF EXISTS idx_activity_log_ts');
76
+ await knex.raw('DROP INDEX IF EXISTS idx_constraints_priority');
77
+ await knex.raw('DROP INDEX IF EXISTS idx_constraints_layer');
78
+ await knex.raw('DROP INDEX IF EXISTS idx_constraints_active');
79
+ await knex.raw('DROP INDEX IF EXISTS idx_file_changes_layer');
80
+ await knex.raw('DROP INDEX IF EXISTS idx_file_changes_file');
81
+ await knex.raw('DROP INDEX IF EXISTS idx_file_changes_ts');
82
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_priority');
83
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_to_agent');
84
+ await knex.raw('DROP INDEX IF EXISTS idx_messages_ts');
85
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_layer');
86
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_numeric_ts');
87
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_status');
88
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_agent');
89
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_layer');
90
+ await knex.raw('DROP INDEX IF EXISTS idx_decisions_ts');
91
+ console.log('✅ Indexes dropped successfully');
92
+ }
93
+ //# sourceMappingURL=20251025021351_create_indexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021351_create_indexes.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021351_create_indexes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021416_seed_master_data.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DlD;AAGD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CASpD"}
@@ -0,0 +1,64 @@
1
+ export async function up(knex) {
2
+ // ============================================================================
3
+ // Initial Data Seeding
4
+ // Using INSERT OR IGNORE to prevent errors when data already exists
5
+ // ============================================================================
6
+ // Seed layers (5 predefined architecture layers)
7
+ await knex.raw(`
8
+ INSERT OR IGNORE INTO m_layers (id, name) VALUES
9
+ (1, 'presentation'),
10
+ (2, 'business'),
11
+ (3, 'data'),
12
+ (4, 'infrastructure'),
13
+ (5, 'cross-cutting')
14
+ `);
15
+ // Seed constraint categories
16
+ await knex.raw(`
17
+ INSERT OR IGNORE INTO m_constraint_categories (name) VALUES
18
+ ('architecture'),
19
+ ('security'),
20
+ ('performance'),
21
+ ('compatibility'),
22
+ ('maintainability')
23
+ `);
24
+ // Seed common tags
25
+ await knex.raw(`
26
+ INSERT OR IGNORE INTO m_tags (name) VALUES
27
+ ('authentication'),
28
+ ('authorization'),
29
+ ('validation'),
30
+ ('error-handling'),
31
+ ('logging'),
32
+ ('performance'),
33
+ ('security'),
34
+ ('testing')
35
+ `);
36
+ // Seed configuration defaults
37
+ await knex.raw(`
38
+ INSERT OR IGNORE INTO m_config (key, value) VALUES
39
+ ('autodelete_ignore_weekend', '1'),
40
+ ('autodelete_message_hours', '24'),
41
+ ('autodelete_file_history_days', '7')
42
+ `);
43
+ // Seed task statuses
44
+ await knex.raw(`
45
+ INSERT OR IGNORE INTO m_task_statuses (id, name) VALUES
46
+ (1, 'todo'),
47
+ (2, 'in_progress'),
48
+ (3, 'waiting_review'),
49
+ (4, 'blocked'),
50
+ (5, 'done'),
51
+ (6, 'archived')
52
+ `);
53
+ console.log('✅ Master data seeded successfully');
54
+ }
55
+ export async function down(knex) {
56
+ // Clear all seeded data
57
+ await knex('m_task_statuses').del();
58
+ await knex('m_config').del();
59
+ await knex('m_tags').del();
60
+ await knex('m_constraint_categories').del();
61
+ await knex('m_layers').del();
62
+ console.log('✅ Master data cleared');
63
+ }
64
+ //# sourceMappingURL=20251025021416_seed_master_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025021416_seed_master_data.js","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025021416_seed_master_data.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC,IAAU;IACjC,+EAA+E;IAC/E,uBAAuB;IACvB,oEAAoE;IACpE,+EAA+E;IAE/E,iDAAiD;IACjD,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;GAOd,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;GAOd,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;;;GAUd,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;GAKd,CAAC,CAAC;IAEH,qBAAqB;IACrB,MAAM,IAAI,CAAC,GAAG,CAAC;;;;;;;;GAQd,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;AACnD,CAAC;AAGD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAU;IACnC,wBAAwB;IACxB,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC;IAC3B,MAAM,IAAI,CAAC,yBAAyB,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC;IAE7B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"20251025070349_create_views.d.ts","sourceRoot":"","sources":["../../../../src/migrations/knex/bootstrap/20251025070349_create_views.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CA2IlD;AAED,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAUpD"}