sqlew 3.6.1 → 3.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +403 -376
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +15 -3
- package/dist/knexfile.js.map +1 -1
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.d.ts.map +1 -0
- package/dist/migrations/knex/{20251025020452_create_master_tables.js → bootstrap/20251025020452_create_master_tables.js} +15 -12
- package/dist/migrations/knex/bootstrap/20251025020452_create_master_tables.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.d.ts.map +1 -0
- package/dist/migrations/knex/{20251025021152_create_transaction_tables.js → bootstrap/20251025021152_create_transaction_tables.js} +19 -19
- package/dist/migrations/knex/bootstrap/20251025021152_create_transaction_tables.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.d.ts.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js +93 -0
- package/dist/migrations/knex/bootstrap/20251025021351_create_indexes.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js +64 -0
- package/dist/migrations/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -0
- package/dist/migrations/knex/bootstrap/20251025070349_create_views.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025081221_add_link_type_to_task_decision_links.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025082220_fix_task_dependencies_columns.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090000_create_help_system_tables.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025090100_seed_help_categories_and_use_cases.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100000_seed_help_metadata.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025100100_seed_remaining_use_cases.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251025120000_add_cascade_to_task_dependencies.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251027000000_add_agent_reuse_system.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251027010000_add_task_constraint_to_decision_context.js.map +1 -0
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.d.ts.map +1 -0
- package/dist/migrations/knex/enhancements/20251027020000_update_agent_reusability.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts +13 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js +70 -0
- package/dist/migrations/knex/upgrades/20251024010000_upgrade_v1_0_to_v1_1.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts +11 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js +36 -0
- package/dist/migrations/knex/upgrades/20251024020000_upgrade_v2_0_to_v2_1.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts +14 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js +84 -0
- package/dist/migrations/knex/upgrades/20251024030000_upgrade_v2_1_to_v3_0.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts +9 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js +37 -0
- package/dist/migrations/knex/upgrades/20251024040000_upgrade_v3_0_to_v3_2.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts +9 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js +41 -0
- package/dist/migrations/knex/upgrades/20251024050000_upgrade_v3_2_0_to_v3_2_2.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts +9 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js +36 -0
- package/dist/migrations/knex/upgrades/20251024060000_upgrade_v3_4_to_v3_5.js.map +1 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts +10 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.d.ts.map +1 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js +28 -0
- package/dist/migrations/knex/upgrades/20251024070000_upgrade_v3_5_to_v3_6.js.map +1 -0
- package/dist/tests/migrations/test-all-versions-real.d.ts +8 -0
- package/dist/tests/migrations/test-all-versions-real.d.ts.map +1 -0
- package/dist/tests/migrations/test-all-versions-real.js +234 -0
- package/dist/tests/migrations/test-all-versions-real.js.map +1 -0
- package/dist/tests/migrations/test-all-versions.d.ts +14 -0
- package/dist/tests/migrations/test-all-versions.d.ts.map +1 -0
- package/dist/tests/migrations/test-all-versions.js +521 -0
- package/dist/tests/migrations/test-all-versions.js.map +1 -0
- package/docs/MIGRATION_CHAIN.md +293 -280
- package/package.json +85 -82
- package/dist/migrations/add-decision-context.d.ts +0 -28
- package/dist/migrations/add-decision-context.d.ts.map +0 -1
- package/dist/migrations/add-decision-context.js +0 -125
- package/dist/migrations/add-decision-context.js.map +0 -1
- package/dist/migrations/add-help-system-tables.d.ts +0 -35
- package/dist/migrations/add-help-system-tables.d.ts.map +0 -1
- package/dist/migrations/add-help-system-tables.js +0 -206
- package/dist/migrations/add-help-system-tables.js.map +0 -1
- package/dist/migrations/add-table-prefixes.d.ts +0 -29
- package/dist/migrations/add-table-prefixes.d.ts.map +0 -1
- package/dist/migrations/add-table-prefixes.js +0 -150
- package/dist/migrations/add-table-prefixes.js.map +0 -1
- package/dist/migrations/add-task-dependencies.d.ts +0 -26
- package/dist/migrations/add-task-dependencies.d.ts.map +0 -1
- package/dist/migrations/add-task-dependencies.js +0 -94
- package/dist/migrations/add-task-dependencies.js.map +0 -1
- package/dist/migrations/add-task-tables.d.ts +0 -47
- package/dist/migrations/add-task-tables.d.ts.map +0 -1
- package/dist/migrations/add-task-tables.js +0 -285
- package/dist/migrations/add-task-tables.js.map +0 -1
- package/dist/migrations/add-token-tracking.d.ts +0 -28
- package/dist/migrations/add-token-tracking.d.ts.map +0 -1
- package/dist/migrations/add-token-tracking.js +0 -108
- package/dist/migrations/add-token-tracking.js.map +0 -1
- package/dist/migrations/add-v2.1.0-features.d.ts +0 -29
- package/dist/migrations/add-v2.1.0-features.d.ts.map +0 -1
- package/dist/migrations/add-v2.1.0-features.js +0 -198
- package/dist/migrations/add-v2.1.0-features.js.map +0 -1
- package/dist/migrations/add-v3.5.0-pruned-files.d.ts +0 -26
- package/dist/migrations/add-v3.5.0-pruned-files.d.ts.map +0 -1
- package/dist/migrations/add-v3.5.0-pruned-files.js +0 -107
- package/dist/migrations/add-v3.5.0-pruned-files.js.map +0 -1
- package/dist/migrations/index.d.ts +0 -112
- package/dist/migrations/index.d.ts.map +0 -1
- package/dist/migrations/index.js +0 -411
- package/dist/migrations/index.js.map +0 -1
- package/dist/migrations/knex/20251025020452_create_master_tables.d.ts.map +0 -1
- package/dist/migrations/knex/20251025020452_create_master_tables.js.map +0 -1
- package/dist/migrations/knex/20251025021152_create_transaction_tables.d.ts.map +0 -1
- package/dist/migrations/knex/20251025021152_create_transaction_tables.js.map +0 -1
- package/dist/migrations/knex/20251025021351_create_indexes.d.ts.map +0 -1
- package/dist/migrations/knex/20251025021351_create_indexes.js +0 -62
- package/dist/migrations/knex/20251025021351_create_indexes.js.map +0 -1
- package/dist/migrations/knex/20251025021416_seed_master_data.d.ts.map +0 -1
- package/dist/migrations/knex/20251025021416_seed_master_data.js +0 -58
- package/dist/migrations/knex/20251025021416_seed_master_data.js.map +0 -1
- package/dist/migrations/knex/20251025070349_create_views.d.ts.map +0 -1
- package/dist/migrations/knex/20251025070349_create_views.js.map +0 -1
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.d.ts.map +0 -1
- package/dist/migrations/knex/20251025081221_add_link_type_to_task_decision_links.js.map +0 -1
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.d.ts.map +0 -1
- package/dist/migrations/knex/20251025082220_fix_task_dependencies_columns.js.map +0 -1
- package/dist/migrations/knex/20251025090000_create_help_system_tables.d.ts.map +0 -1
- package/dist/migrations/knex/20251025090000_create_help_system_tables.js.map +0 -1
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.d.ts.map +0 -1
- package/dist/migrations/knex/20251025090100_seed_help_categories_and_use_cases.js.map +0 -1
- package/dist/migrations/knex/20251025100000_seed_help_metadata.d.ts.map +0 -1
- package/dist/migrations/knex/20251025100000_seed_help_metadata.js.map +0 -1
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.d.ts.map +0 -1
- package/dist/migrations/knex/20251025100100_seed_remaining_use_cases.js.map +0 -1
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.d.ts.map +0 -1
- package/dist/migrations/knex/20251025120000_add_cascade_to_task_dependencies.js.map +0 -1
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.d.ts.map +0 -1
- package/dist/migrations/knex/20251027000000_add_agent_reuse_system.js.map +0 -1
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.d.ts.map +0 -1
- package/dist/migrations/knex/20251027010000_add_task_constraint_to_decision_context.js.map +0 -1
- package/dist/migrations/knex/20251027020000_update_agent_reusability.d.ts.map +0 -1
- package/dist/migrations/knex/20251027020000_update_agent_reusability.js.map +0 -1
- package/dist/migrations/migrate-decisions-to-tasks.d.ts +0 -61
- package/dist/migrations/migrate-decisions-to-tasks.d.ts.map +0 -1
- package/dist/migrations/migrate-decisions-to-tasks.js +0 -442
- package/dist/migrations/migrate-decisions-to-tasks.js.map +0 -1
- package/dist/migrations/seed-help-data.d.ts +0 -48
- package/dist/migrations/seed-help-data.d.ts.map +0 -1
- package/dist/migrations/seed-help-data.js +0 -1466
- package/dist/migrations/seed-help-data.js.map +0 -1
- package/dist/migrations/seed-tool-metadata.d.ts +0 -24
- package/dist/migrations/seed-tool-metadata.d.ts.map +0 -1
- package/dist/migrations/seed-tool-metadata.js +0 -392
- package/dist/migrations/seed-tool-metadata.js.map +0 -1
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts +0 -46
- package/dist/migrations/v3.6.0-help-system-refactor.d.ts.map +0 -1
- package/dist/migrations/v3.6.0-help-system-refactor.js +0 -223
- package/dist/migrations/v3.6.0-help-system-refactor.js.map +0 -1
- package/dist/tests/migrations/test-v3.2-migration.d.ts +0 -6
- package/dist/tests/migrations/test-v3.2-migration.d.ts.map +0 -1
- package/dist/tests/migrations/test-v3.2-migration.js +0 -191
- package/dist/tests/migrations/test-v3.2-migration.js.map +0 -1
- /package/dist/migrations/knex/{20251025020452_create_master_tables.d.ts → bootstrap/20251025020452_create_master_tables.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025021152_create_transaction_tables.d.ts → bootstrap/20251025021152_create_transaction_tables.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025021351_create_indexes.d.ts → bootstrap/20251025021351_create_indexes.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025021416_seed_master_data.d.ts → bootstrap/20251025021416_seed_master_data.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025070349_create_views.d.ts → bootstrap/20251025070349_create_views.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025070349_create_views.js → bootstrap/20251025070349_create_views.js} +0 -0
- /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
- /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
- /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.d.ts → enhancements/20251025082220_fix_task_dependencies_columns.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025082220_fix_task_dependencies_columns.js → enhancements/20251025082220_fix_task_dependencies_columns.js} +0 -0
- /package/dist/migrations/knex/{20251025090000_create_help_system_tables.d.ts → enhancements/20251025090000_create_help_system_tables.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025090000_create_help_system_tables.js → enhancements/20251025090000_create_help_system_tables.js} +0 -0
- /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
- /package/dist/migrations/knex/{20251025090100_seed_help_categories_and_use_cases.js → enhancements/20251025090100_seed_help_categories_and_use_cases.js} +0 -0
- /package/dist/migrations/knex/{20251025100000_seed_help_metadata.d.ts → enhancements/20251025100000_seed_help_metadata.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025100000_seed_help_metadata.js → enhancements/20251025100000_seed_help_metadata.js} +0 -0
- /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.d.ts → enhancements/20251025100100_seed_remaining_use_cases.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025100100_seed_remaining_use_cases.js → enhancements/20251025100100_seed_remaining_use_cases.js} +0 -0
- /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.d.ts → enhancements/20251025120000_add_cascade_to_task_dependencies.d.ts} +0 -0
- /package/dist/migrations/knex/{20251025120000_add_cascade_to_task_dependencies.js → enhancements/20251025120000_add_cascade_to_task_dependencies.js} +0 -0
- /package/dist/migrations/knex/{20251027000000_add_agent_reuse_system.d.ts → enhancements/20251027000000_add_agent_reuse_system.d.ts} +0 -0
- /package/dist/migrations/knex/{20251027000000_add_agent_reuse_system.js → enhancements/20251027000000_add_agent_reuse_system.js} +0 -0
- /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
- /package/dist/migrations/knex/{20251027010000_add_task_constraint_to_decision_context.js → enhancements/20251027010000_add_task_constraint_to_decision_context.js} +0 -0
- /package/dist/migrations/knex/{20251027020000_update_agent_reusability.d.ts → enhancements/20251027020000_update_agent_reusability.d.ts} +0 -0
- /package/dist/migrations/knex/{20251027020000_update_agent_reusability.js → enhancements/20251027020000_update_agent_reusability.js} +0 -0
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration: Add table prefixes (v1.0.1 -> v1.1.0)
|
|
3
|
-
*
|
|
4
|
-
* Migrates database from unprefixed table names to prefixed names:
|
|
5
|
-
* - Master tables: m_ prefix
|
|
6
|
-
* - Transaction tables: t_ prefix
|
|
7
|
-
* - Views: v_ prefix
|
|
8
|
-
* - Triggers: trg_ prefix
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* Check if migration is needed
|
|
12
|
-
*/
|
|
13
|
-
export function needsMigration(db) {
|
|
14
|
-
// Check if old table exists (agents) and new table doesn't exist (m_agents)
|
|
15
|
-
const oldExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='agents'").get();
|
|
16
|
-
const newExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_agents'").get();
|
|
17
|
-
return oldExists !== undefined && newExists === undefined;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Run the migration
|
|
21
|
-
*/
|
|
22
|
-
export function runMigration(db) {
|
|
23
|
-
const details = [];
|
|
24
|
-
try {
|
|
25
|
-
// Start transaction
|
|
26
|
-
db.exec('BEGIN TRANSACTION');
|
|
27
|
-
// 1. Drop old views (they reference old table names)
|
|
28
|
-
const oldViews = [
|
|
29
|
-
'tagged_decisions',
|
|
30
|
-
'active_context',
|
|
31
|
-
'layer_summary',
|
|
32
|
-
'unread_messages_by_priority',
|
|
33
|
-
'recent_file_changes',
|
|
34
|
-
'tagged_constraints'
|
|
35
|
-
];
|
|
36
|
-
for (const view of oldViews) {
|
|
37
|
-
const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='view' AND name=?").get(view);
|
|
38
|
-
if (exists) {
|
|
39
|
-
db.exec(`DROP VIEW IF EXISTS ${view}`);
|
|
40
|
-
details.push(`Dropped view: ${view}`);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
// 2. Drop old triggers
|
|
44
|
-
const oldTriggers = [
|
|
45
|
-
'auto_delete_old_messages',
|
|
46
|
-
'auto_delete_old_file_changes',
|
|
47
|
-
'record_decision_history'
|
|
48
|
-
];
|
|
49
|
-
for (const trigger of oldTriggers) {
|
|
50
|
-
const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='trigger' AND name=?").get(trigger);
|
|
51
|
-
if (exists) {
|
|
52
|
-
db.exec(`DROP TRIGGER IF EXISTS ${trigger}`);
|
|
53
|
-
details.push(`Dropped trigger: ${trigger}`);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
// 3. Rename master tables
|
|
57
|
-
const masterTables = [
|
|
58
|
-
{ old: 'agents', new: 'm_agents' },
|
|
59
|
-
{ old: 'files', new: 'm_files' },
|
|
60
|
-
{ old: 'context_keys', new: 'm_context_keys' },
|
|
61
|
-
{ old: 'constraint_categories', new: 'm_constraint_categories' },
|
|
62
|
-
{ old: 'layers', new: 'm_layers' },
|
|
63
|
-
{ old: 'tags', new: 'm_tags' },
|
|
64
|
-
{ old: 'scopes', new: 'm_scopes' },
|
|
65
|
-
{ old: 'config', new: 'm_config' }
|
|
66
|
-
];
|
|
67
|
-
for (const table of masterTables) {
|
|
68
|
-
const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(table.old);
|
|
69
|
-
if (exists) {
|
|
70
|
-
db.exec(`ALTER TABLE ${table.old} RENAME TO ${table.new}`);
|
|
71
|
-
details.push(`Renamed table: ${table.old} -> ${table.new}`);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// 4. Rename transaction tables
|
|
75
|
-
const transactionTables = [
|
|
76
|
-
{ old: 'decisions', new: 't_decisions' },
|
|
77
|
-
{ old: 'decisions_numeric', new: 't_decisions_numeric' },
|
|
78
|
-
{ old: 'decision_history', new: 't_decision_history' },
|
|
79
|
-
{ old: 'decision_tags', new: 't_decision_tags' },
|
|
80
|
-
{ old: 'decision_scopes', new: 't_decision_scopes' },
|
|
81
|
-
{ old: 'agent_messages', new: 't_agent_messages' },
|
|
82
|
-
{ old: 'file_changes', new: 't_file_changes' },
|
|
83
|
-
{ old: 'constraints', new: 't_constraints' },
|
|
84
|
-
{ old: 'constraint_tags', new: 't_constraint_tags' }
|
|
85
|
-
];
|
|
86
|
-
for (const table of transactionTables) {
|
|
87
|
-
const exists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?").get(table.old);
|
|
88
|
-
if (exists) {
|
|
89
|
-
db.exec(`ALTER TABLE ${table.old} RENAME TO ${table.new}`);
|
|
90
|
-
details.push(`Renamed table: ${table.old} -> ${table.new}`);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// 5. Create m_config table if it doesn't exist (new in v1.1.0)
|
|
94
|
-
const configExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_config'").get();
|
|
95
|
-
if (!configExists) {
|
|
96
|
-
db.exec(`
|
|
97
|
-
CREATE TABLE m_config (
|
|
98
|
-
key TEXT PRIMARY KEY,
|
|
99
|
-
value TEXT NOT NULL
|
|
100
|
-
);
|
|
101
|
-
`);
|
|
102
|
-
// Insert default config values
|
|
103
|
-
db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)').run('autodelete_ignore_weekend', '0');
|
|
104
|
-
db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)').run('autodelete_message_hours', '24');
|
|
105
|
-
db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)').run('autodelete_file_history_days', '7');
|
|
106
|
-
details.push('Created table: m_config (new in v1.1.0)');
|
|
107
|
-
details.push('Initialized config with default values');
|
|
108
|
-
}
|
|
109
|
-
// Commit transaction
|
|
110
|
-
db.exec('COMMIT');
|
|
111
|
-
return {
|
|
112
|
-
success: true,
|
|
113
|
-
message: 'Migration completed successfully. New views and triggers will be created by schema initialization.',
|
|
114
|
-
details
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
// Rollback on error
|
|
119
|
-
db.exec('ROLLBACK');
|
|
120
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
121
|
-
return {
|
|
122
|
-
success: false,
|
|
123
|
-
message: `Migration failed: ${message}`,
|
|
124
|
-
details
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Get migration info
|
|
130
|
-
*/
|
|
131
|
-
export function getMigrationInfo() {
|
|
132
|
-
return `
|
|
133
|
-
Migration: Add Table Prefixes (v1.0.1 -> v1.1.0)
|
|
134
|
-
|
|
135
|
-
This migration adds category-based prefixes to all database objects:
|
|
136
|
-
- Master tables: m_ prefix (8 tables)
|
|
137
|
-
- Transaction tables: t_ prefix (9 tables)
|
|
138
|
-
- Views: v_ prefix (6 views)
|
|
139
|
-
- Triggers: trg_ prefix (1 trigger)
|
|
140
|
-
|
|
141
|
-
The migration will:
|
|
142
|
-
1. Drop old views (they reference old table names)
|
|
143
|
-
2. Drop old triggers (if any exist from previous versions)
|
|
144
|
-
3. Rename all tables to new prefixed names
|
|
145
|
-
4. New views and triggers will be created by schema initialization
|
|
146
|
-
|
|
147
|
-
This migration is safe and reversible via backup restoration.
|
|
148
|
-
`.trim();
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=add-table-prefixes.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-table-prefixes.js","sourceRoot":"","sources":["../../src/migrations/add-table-prefixes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration: Add task dependencies (v3.1.2 -> v3.2.0)
|
|
3
|
-
*
|
|
4
|
-
* Adds t_task_dependencies table for tracking blocking relationships between tasks.
|
|
5
|
-
* This enables "Task A blocks Task B" functionality.
|
|
6
|
-
*/
|
|
7
|
-
import { Database } from 'better-sqlite3';
|
|
8
|
-
interface MigrationResult {
|
|
9
|
-
success: boolean;
|
|
10
|
-
message: string;
|
|
11
|
-
details?: string[];
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Check if migration is needed
|
|
15
|
-
*/
|
|
16
|
-
export declare function needsTaskDependenciesMigration(db: Database): boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Run the migration to add task dependencies
|
|
19
|
-
*/
|
|
20
|
-
export declare function migrateToTaskDependencies(db: Database): MigrationResult;
|
|
21
|
-
/**
|
|
22
|
-
* Get migration info
|
|
23
|
-
*/
|
|
24
|
-
export declare function getTaskDependenciesMigrationInfo(): string;
|
|
25
|
-
export {};
|
|
26
|
-
//# sourceMappingURL=add-task-dependencies.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-task-dependencies.d.ts","sourceRoot":"","sources":["../../src/migrations/add-task-dependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAOpE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CA+DvE;AAED;;GAEG;AACH,wBAAgB,gCAAgC,IAAI,MAAM,CAiBzD"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration: Add task dependencies (v3.1.2 -> v3.2.0)
|
|
3
|
-
*
|
|
4
|
-
* Adds t_task_dependencies table for tracking blocking relationships between tasks.
|
|
5
|
-
* This enables "Task A blocks Task B" functionality.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Check if migration is needed
|
|
9
|
-
*/
|
|
10
|
-
export function needsTaskDependenciesMigration(db) {
|
|
11
|
-
// Check if t_task_dependencies table doesn't exist yet
|
|
12
|
-
const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='t_task_dependencies'").get();
|
|
13
|
-
return tableExists === undefined;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Run the migration to add task dependencies
|
|
17
|
-
*/
|
|
18
|
-
export function migrateToTaskDependencies(db) {
|
|
19
|
-
const details = [];
|
|
20
|
-
try {
|
|
21
|
-
// Start transaction for atomicity
|
|
22
|
-
db.exec('BEGIN TRANSACTION');
|
|
23
|
-
// Check if table already exists
|
|
24
|
-
const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='t_task_dependencies'").get();
|
|
25
|
-
if (tableExists) {
|
|
26
|
-
db.exec('COMMIT');
|
|
27
|
-
return {
|
|
28
|
-
success: true,
|
|
29
|
-
message: 't_task_dependencies table already exists, migration skipped',
|
|
30
|
-
details: ['Table already exists - no migration needed']
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
// Create t_task_dependencies table
|
|
34
|
-
db.exec(`
|
|
35
|
-
CREATE TABLE IF NOT EXISTS t_task_dependencies (
|
|
36
|
-
blocker_task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
37
|
-
blocked_task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
38
|
-
created_ts INTEGER DEFAULT (unixepoch()),
|
|
39
|
-
PRIMARY KEY (blocker_task_id, blocked_task_id)
|
|
40
|
-
);
|
|
41
|
-
`);
|
|
42
|
-
details.push('Created table: t_task_dependencies');
|
|
43
|
-
// Create index for reverse lookups (what blocks this task?)
|
|
44
|
-
db.exec(`
|
|
45
|
-
CREATE INDEX IF NOT EXISTS idx_task_deps_blocked
|
|
46
|
-
ON t_task_dependencies(blocked_task_id);
|
|
47
|
-
`);
|
|
48
|
-
details.push('Created index: idx_task_deps_blocked');
|
|
49
|
-
// Commit transaction
|
|
50
|
-
db.exec('COMMIT');
|
|
51
|
-
return {
|
|
52
|
-
success: true,
|
|
53
|
-
message: 'Migration to v3.2.0 completed successfully',
|
|
54
|
-
details
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
// Rollback on error
|
|
59
|
-
try {
|
|
60
|
-
db.exec('ROLLBACK');
|
|
61
|
-
}
|
|
62
|
-
catch (rollbackError) {
|
|
63
|
-
// Ignore rollback errors
|
|
64
|
-
}
|
|
65
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
66
|
-
return {
|
|
67
|
-
success: false,
|
|
68
|
-
message: `Migration failed: ${message}`,
|
|
69
|
-
details
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Get migration info
|
|
75
|
-
*/
|
|
76
|
-
export function getTaskDependenciesMigrationInfo() {
|
|
77
|
-
return `
|
|
78
|
-
Migration: Add Task Dependencies (v3.1.2 -> v3.2.0)
|
|
79
|
-
|
|
80
|
-
This migration adds task dependency tracking for blocking relationships:
|
|
81
|
-
- New table: t_task_dependencies
|
|
82
|
-
- Primary key: (blocker_task_id, blocked_task_id) - prevents duplicates
|
|
83
|
-
- Index: idx_task_deps_blocked for efficient "what blocks this task?" queries
|
|
84
|
-
- CASCADE deletion: Dependencies are removed when tasks are deleted
|
|
85
|
-
|
|
86
|
-
Schema:
|
|
87
|
-
- blocker_task_id: Task that must be completed first
|
|
88
|
-
- blocked_task_id: Task that is blocked/waiting
|
|
89
|
-
- created_ts: When the dependency was created
|
|
90
|
-
|
|
91
|
-
This migration is idempotent and safe to run multiple times.
|
|
92
|
-
`.trim();
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=add-task-dependencies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-task-dependencies.js","sourceRoot":"","sources":["../../src/migrations/add-task-dependencies.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,EAAY;IACzD,uDAAuD;IACvD,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,kFAAkF,CACnF,CAAC,GAAG,EAAE,CAAC;IAER,OAAO,WAAW,KAAK,SAAS,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,EAAY;IACpD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,kCAAkC;QAClC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE7B,gCAAgC;QAChC,MAAM,WAAW,GAAG,EAAE,CAAC,OAAO,CAC5B,kFAAkF,CACnF,CAAC,GAAG,EAAE,CAAC;QAER,IAAI,WAAW,EAAE,CAAC;YAChB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,6DAA6D;gBACtE,OAAO,EAAE,CAAC,4CAA4C,CAAC;aACxD,CAAC;QACJ,CAAC;QAED,mCAAmC;QACnC,EAAE,CAAC,IAAI,CAAC;;;;;;;KAOP,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAEnD,4DAA4D;QAC5D,EAAE,CAAC,IAAI,CAAC;;;KAGP,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QAErD,qBAAqB;QACrB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,4CAA4C;YACrD,OAAO;SACR,CAAC;IAEJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oBAAoB;QACpB,IAAI,CAAC;YACH,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACvB,yBAAyB;QAC3B,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,qBAAqB,OAAO,EAAE;YACvC,OAAO;SACR,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;;;;;;;;;;;;;;;GAeN,CAAC,IAAI,EAAE,CAAC;AACX,CAAC"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration: Add Task Management Tables (v2.1.x -> v3.0.0)
|
|
3
|
-
*
|
|
4
|
-
* Adds Kanban-style task tracking system to reduce token usage
|
|
5
|
-
* from decisions table being misused for task tracking.
|
|
6
|
-
*
|
|
7
|
-
* Tables Added:
|
|
8
|
-
* - m_task_statuses (master table for task statuses)
|
|
9
|
-
* - t_tasks (core task data, token-efficient)
|
|
10
|
-
* - t_task_details (large text stored separately)
|
|
11
|
-
* - t_task_tags (many-to-many task tagging)
|
|
12
|
-
* - t_task_decision_links (link tasks to decisions)
|
|
13
|
-
* - t_task_constraint_links (link tasks to constraints)
|
|
14
|
-
* - t_task_file_links (link tasks to files)
|
|
15
|
-
*
|
|
16
|
-
* View Added:
|
|
17
|
-
* - v_task_board (token-efficient task board view)
|
|
18
|
-
*
|
|
19
|
-
* Triggers Added:
|
|
20
|
-
* - trg_log_task_create (activity log for task creation)
|
|
21
|
-
* - trg_log_task_status_change (activity log for status changes)
|
|
22
|
-
* - trg_update_task_timestamp (auto-update updated_ts)
|
|
23
|
-
*
|
|
24
|
-
* Initial Data:
|
|
25
|
-
* - Task statuses: todo, in_progress, waiting_review, blocked, done, archived
|
|
26
|
-
* - Config keys for stale task detection
|
|
27
|
-
*/
|
|
28
|
-
import { Database } from 'better-sqlite3';
|
|
29
|
-
interface MigrationResult {
|
|
30
|
-
success: boolean;
|
|
31
|
-
message: string;
|
|
32
|
-
details?: string[];
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Check if migration is needed
|
|
36
|
-
*/
|
|
37
|
-
export declare function needsMigration(db: Database): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Run the migration
|
|
40
|
-
*/
|
|
41
|
-
export declare function runMigration(db: Database): MigrationResult;
|
|
42
|
-
/**
|
|
43
|
-
* Get migration info
|
|
44
|
-
*/
|
|
45
|
-
export declare function getMigrationInfo(): string;
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=add-task-tables.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-task-tables.d.ts","sourceRoot":"","sources":["../../src/migrations/add-task-tables.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAOpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CAiP1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CA+BzC"}
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration: Add Task Management Tables (v2.1.x -> v3.0.0)
|
|
3
|
-
*
|
|
4
|
-
* Adds Kanban-style task tracking system to reduce token usage
|
|
5
|
-
* from decisions table being misused for task tracking.
|
|
6
|
-
*
|
|
7
|
-
* Tables Added:
|
|
8
|
-
* - m_task_statuses (master table for task statuses)
|
|
9
|
-
* - t_tasks (core task data, token-efficient)
|
|
10
|
-
* - t_task_details (large text stored separately)
|
|
11
|
-
* - t_task_tags (many-to-many task tagging)
|
|
12
|
-
* - t_task_decision_links (link tasks to decisions)
|
|
13
|
-
* - t_task_constraint_links (link tasks to constraints)
|
|
14
|
-
* - t_task_file_links (link tasks to files)
|
|
15
|
-
*
|
|
16
|
-
* View Added:
|
|
17
|
-
* - v_task_board (token-efficient task board view)
|
|
18
|
-
*
|
|
19
|
-
* Triggers Added:
|
|
20
|
-
* - trg_log_task_create (activity log for task creation)
|
|
21
|
-
* - trg_log_task_status_change (activity log for status changes)
|
|
22
|
-
* - trg_update_task_timestamp (auto-update updated_ts)
|
|
23
|
-
*
|
|
24
|
-
* Initial Data:
|
|
25
|
-
* - Task statuses: todo, in_progress, waiting_review, blocked, done, archived
|
|
26
|
-
* - Config keys for stale task detection
|
|
27
|
-
*/
|
|
28
|
-
/**
|
|
29
|
-
* Check if migration is needed
|
|
30
|
-
*/
|
|
31
|
-
export function needsMigration(db) {
|
|
32
|
-
// Check if new table doesn't exist (m_task_statuses)
|
|
33
|
-
const tableExists = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name='m_task_statuses'").get();
|
|
34
|
-
return tableExists === undefined;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Run the migration
|
|
38
|
-
*/
|
|
39
|
-
export function runMigration(db) {
|
|
40
|
-
const details = [];
|
|
41
|
-
try {
|
|
42
|
-
// Start transaction
|
|
43
|
-
db.exec('BEGIN TRANSACTION');
|
|
44
|
-
// ============================================================================
|
|
45
|
-
// 1. Create Master Table: m_task_statuses
|
|
46
|
-
// ============================================================================
|
|
47
|
-
db.exec(`
|
|
48
|
-
CREATE TABLE IF NOT EXISTS m_task_statuses (
|
|
49
|
-
id INTEGER PRIMARY KEY,
|
|
50
|
-
name TEXT UNIQUE NOT NULL
|
|
51
|
-
);
|
|
52
|
-
`);
|
|
53
|
-
details.push('Created table: m_task_statuses');
|
|
54
|
-
// ============================================================================
|
|
55
|
-
// 2. Create Transaction Tables
|
|
56
|
-
// ============================================================================
|
|
57
|
-
// Task core data (token-efficient: no large text here)
|
|
58
|
-
db.exec(`
|
|
59
|
-
CREATE TABLE IF NOT EXISTS t_tasks (
|
|
60
|
-
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
61
|
-
title TEXT NOT NULL,
|
|
62
|
-
status_id INTEGER NOT NULL REFERENCES m_task_statuses(id),
|
|
63
|
-
priority INTEGER DEFAULT 2,
|
|
64
|
-
assigned_agent_id INTEGER REFERENCES m_agents(id),
|
|
65
|
-
created_by_agent_id INTEGER REFERENCES m_agents(id),
|
|
66
|
-
layer_id INTEGER REFERENCES m_layers(id),
|
|
67
|
-
created_ts INTEGER DEFAULT (unixepoch()),
|
|
68
|
-
updated_ts INTEGER DEFAULT (unixepoch()),
|
|
69
|
-
completed_ts INTEGER
|
|
70
|
-
);
|
|
71
|
-
`);
|
|
72
|
-
details.push('Created table: t_tasks');
|
|
73
|
-
// Task details (large text stored separately)
|
|
74
|
-
db.exec(`
|
|
75
|
-
CREATE TABLE IF NOT EXISTS t_task_details (
|
|
76
|
-
task_id INTEGER PRIMARY KEY REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
77
|
-
description TEXT,
|
|
78
|
-
acceptance_criteria TEXT,
|
|
79
|
-
notes TEXT
|
|
80
|
-
);
|
|
81
|
-
`);
|
|
82
|
-
details.push('Created table: t_task_details');
|
|
83
|
-
// Task tags (many-to-many)
|
|
84
|
-
db.exec(`
|
|
85
|
-
CREATE TABLE IF NOT EXISTS t_task_tags (
|
|
86
|
-
task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
87
|
-
tag_id INTEGER REFERENCES m_tags(id),
|
|
88
|
-
PRIMARY KEY (task_id, tag_id)
|
|
89
|
-
);
|
|
90
|
-
`);
|
|
91
|
-
details.push('Created table: t_task_tags');
|
|
92
|
-
// Task-decision links
|
|
93
|
-
db.exec(`
|
|
94
|
-
CREATE TABLE IF NOT EXISTS t_task_decision_links (
|
|
95
|
-
task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
96
|
-
decision_key_id INTEGER REFERENCES m_context_keys(id),
|
|
97
|
-
link_type TEXT DEFAULT 'implements',
|
|
98
|
-
PRIMARY KEY (task_id, decision_key_id)
|
|
99
|
-
);
|
|
100
|
-
`);
|
|
101
|
-
details.push('Created table: t_task_decision_links');
|
|
102
|
-
// Task-constraint links
|
|
103
|
-
db.exec(`
|
|
104
|
-
CREATE TABLE IF NOT EXISTS t_task_constraint_links (
|
|
105
|
-
task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
106
|
-
constraint_id INTEGER REFERENCES t_constraints(id),
|
|
107
|
-
PRIMARY KEY (task_id, constraint_id)
|
|
108
|
-
);
|
|
109
|
-
`);
|
|
110
|
-
details.push('Created table: t_task_constraint_links');
|
|
111
|
-
// Task-file links
|
|
112
|
-
db.exec(`
|
|
113
|
-
CREATE TABLE IF NOT EXISTS t_task_file_links (
|
|
114
|
-
task_id INTEGER REFERENCES t_tasks(id) ON DELETE CASCADE,
|
|
115
|
-
file_id INTEGER REFERENCES m_files(id),
|
|
116
|
-
PRIMARY KEY (task_id, file_id)
|
|
117
|
-
);
|
|
118
|
-
`);
|
|
119
|
-
details.push('Created table: t_task_file_links');
|
|
120
|
-
// ============================================================================
|
|
121
|
-
// 3. Create Indexes
|
|
122
|
-
// ============================================================================
|
|
123
|
-
db.exec(`
|
|
124
|
-
CREATE INDEX IF NOT EXISTS idx_task_status ON t_tasks(status_id);
|
|
125
|
-
`);
|
|
126
|
-
details.push('Created index: idx_task_status');
|
|
127
|
-
db.exec(`
|
|
128
|
-
CREATE INDEX IF NOT EXISTS idx_task_updated ON t_tasks(updated_ts DESC);
|
|
129
|
-
`);
|
|
130
|
-
details.push('Created index: idx_task_updated');
|
|
131
|
-
db.exec(`
|
|
132
|
-
CREATE INDEX IF NOT EXISTS idx_task_assignee ON t_tasks(assigned_agent_id);
|
|
133
|
-
`);
|
|
134
|
-
details.push('Created index: idx_task_assignee');
|
|
135
|
-
// ============================================================================
|
|
136
|
-
// 4. Create View: v_task_board
|
|
137
|
-
// ============================================================================
|
|
138
|
-
db.exec(`
|
|
139
|
-
CREATE VIEW IF NOT EXISTS v_task_board AS
|
|
140
|
-
SELECT
|
|
141
|
-
t.id,
|
|
142
|
-
t.title,
|
|
143
|
-
s.name as status,
|
|
144
|
-
t.priority,
|
|
145
|
-
a.name as assigned_to,
|
|
146
|
-
l.name as layer,
|
|
147
|
-
t.created_ts,
|
|
148
|
-
t.updated_ts,
|
|
149
|
-
t.completed_ts,
|
|
150
|
-
(SELECT GROUP_CONCAT(tg2.name, ', ')
|
|
151
|
-
FROM t_task_tags tt2
|
|
152
|
-
JOIN m_tags tg2 ON tt2.tag_id = tg2.id
|
|
153
|
-
WHERE tt2.task_id = t.id) as tags
|
|
154
|
-
FROM t_tasks t
|
|
155
|
-
LEFT JOIN m_task_statuses s ON t.status_id = s.id
|
|
156
|
-
LEFT JOIN m_agents a ON t.assigned_agent_id = a.id
|
|
157
|
-
LEFT JOIN m_layers l ON t.layer_id = l.id;
|
|
158
|
-
`);
|
|
159
|
-
details.push('Created view: v_task_board');
|
|
160
|
-
// ============================================================================
|
|
161
|
-
// 5. Create Triggers
|
|
162
|
-
// ============================================================================
|
|
163
|
-
// Task creation activity log
|
|
164
|
-
db.exec(`
|
|
165
|
-
CREATE TRIGGER IF NOT EXISTS trg_log_task_create
|
|
166
|
-
AFTER INSERT ON t_tasks
|
|
167
|
-
BEGIN
|
|
168
|
-
INSERT INTO t_activity_log (agent_id, action_type, target, layer_id, details)
|
|
169
|
-
SELECT
|
|
170
|
-
COALESCE(NEW.created_by_agent_id, (SELECT id FROM m_agents WHERE name = 'system' LIMIT 1)),
|
|
171
|
-
'task_create',
|
|
172
|
-
'task_id:' || NEW.id,
|
|
173
|
-
NEW.layer_id,
|
|
174
|
-
json_object('title', NEW.title, 'status_id', NEW.status_id, 'priority', NEW.priority);
|
|
175
|
-
END;
|
|
176
|
-
`);
|
|
177
|
-
details.push('Created trigger: trg_log_task_create');
|
|
178
|
-
// Task status change activity log
|
|
179
|
-
db.exec(`
|
|
180
|
-
CREATE TRIGGER IF NOT EXISTS trg_log_task_status_change
|
|
181
|
-
AFTER UPDATE OF status_id ON t_tasks
|
|
182
|
-
WHEN OLD.status_id != NEW.status_id
|
|
183
|
-
BEGIN
|
|
184
|
-
INSERT INTO t_activity_log (agent_id, action_type, target, layer_id, details)
|
|
185
|
-
SELECT
|
|
186
|
-
COALESCE(NEW.assigned_agent_id, (SELECT id FROM m_agents WHERE name = 'system' LIMIT 1)),
|
|
187
|
-
'task_status_change',
|
|
188
|
-
'task_id:' || NEW.id,
|
|
189
|
-
NEW.layer_id,
|
|
190
|
-
json_object('old_status', OLD.status_id, 'new_status', NEW.status_id);
|
|
191
|
-
END;
|
|
192
|
-
`);
|
|
193
|
-
details.push('Created trigger: trg_log_task_status_change');
|
|
194
|
-
// Auto-update task timestamp
|
|
195
|
-
db.exec(`
|
|
196
|
-
CREATE TRIGGER IF NOT EXISTS trg_update_task_timestamp
|
|
197
|
-
AFTER UPDATE ON t_tasks
|
|
198
|
-
BEGIN
|
|
199
|
-
UPDATE t_tasks SET updated_ts = unixepoch() WHERE id = NEW.id;
|
|
200
|
-
END;
|
|
201
|
-
`);
|
|
202
|
-
details.push('Created trigger: trg_update_task_timestamp');
|
|
203
|
-
// ============================================================================
|
|
204
|
-
// 6. Seed Initial Data
|
|
205
|
-
// ============================================================================
|
|
206
|
-
// Insert task statuses
|
|
207
|
-
const statusInsert = db.prepare('INSERT INTO m_task_statuses (id, name) VALUES (?, ?)');
|
|
208
|
-
const statuses = [
|
|
209
|
-
{ id: 1, name: 'todo' },
|
|
210
|
-
{ id: 2, name: 'in_progress' },
|
|
211
|
-
{ id: 3, name: 'waiting_review' },
|
|
212
|
-
{ id: 4, name: 'blocked' },
|
|
213
|
-
{ id: 5, name: 'done' },
|
|
214
|
-
{ id: 6, name: 'archived' }
|
|
215
|
-
];
|
|
216
|
-
for (const status of statuses) {
|
|
217
|
-
statusInsert.run(status.id, status.name);
|
|
218
|
-
}
|
|
219
|
-
details.push('Seeded task statuses: todo, in_progress, waiting_review, blocked, done, archived');
|
|
220
|
-
// Insert config keys for task management
|
|
221
|
-
const configInsert = db.prepare('INSERT INTO m_config (key, value) VALUES (?, ?)');
|
|
222
|
-
const configs = [
|
|
223
|
-
{ key: 'task_stale_hours_in_progress', value: '2' },
|
|
224
|
-
{ key: 'task_stale_hours_waiting_review', value: '24' },
|
|
225
|
-
{ key: 'task_auto_stale_enabled', value: '1' }
|
|
226
|
-
];
|
|
227
|
-
for (const config of configs) {
|
|
228
|
-
configInsert.run(config.key, config.value);
|
|
229
|
-
}
|
|
230
|
-
details.push('Seeded config keys: task_stale_hours_in_progress, task_stale_hours_waiting_review, task_auto_stale_enabled');
|
|
231
|
-
// Commit transaction
|
|
232
|
-
db.exec('COMMIT');
|
|
233
|
-
return {
|
|
234
|
-
success: true,
|
|
235
|
-
message: 'Task tables migration completed successfully (v2.1.x -> v3.0.0).',
|
|
236
|
-
details
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
catch (error) {
|
|
240
|
-
// Rollback on error
|
|
241
|
-
db.exec('ROLLBACK');
|
|
242
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
243
|
-
return {
|
|
244
|
-
success: false,
|
|
245
|
-
message: `Task tables migration failed: ${message}`,
|
|
246
|
-
details
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
/**
|
|
251
|
-
* Get migration info
|
|
252
|
-
*/
|
|
253
|
-
export function getMigrationInfo() {
|
|
254
|
-
return `
|
|
255
|
-
Migration: Add Task Management Tables (v2.1.x -> v3.0.0)
|
|
256
|
-
|
|
257
|
-
This migration adds Kanban-style task tracking to reduce token usage
|
|
258
|
-
from the decisions table being misused for task/todo tracking.
|
|
259
|
-
|
|
260
|
-
The migration will:
|
|
261
|
-
1. Create m_task_statuses master table
|
|
262
|
-
2. Create 6 transaction tables for task management
|
|
263
|
-
3. Create 3 indexes for query optimization
|
|
264
|
-
4. Create v_task_board view for token-efficient queries
|
|
265
|
-
5. Create 3 triggers for activity logging and timestamp updates
|
|
266
|
-
6. Seed task statuses (6 statuses)
|
|
267
|
-
7. Seed config keys for stale task detection (3 keys)
|
|
268
|
-
|
|
269
|
-
Tables Added:
|
|
270
|
-
- m_task_statuses (1 master table)
|
|
271
|
-
- t_tasks, t_task_details, t_task_tags (3 core tables)
|
|
272
|
-
- t_task_decision_links, t_task_constraint_links, t_task_file_links (3 link tables)
|
|
273
|
-
|
|
274
|
-
View Added:
|
|
275
|
-
- v_task_board (token-efficient task board view)
|
|
276
|
-
|
|
277
|
-
Triggers Added:
|
|
278
|
-
- trg_log_task_create (activity log)
|
|
279
|
-
- trg_log_task_status_change (activity log)
|
|
280
|
-
- trg_update_task_timestamp (auto-update)
|
|
281
|
-
|
|
282
|
-
This migration is safe and reversible via backup restoration.
|
|
283
|
-
`.trim();
|
|
284
|
-
}
|
|
285
|
-
//# sourceMappingURL=add-task-tables.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-task-tables.js","sourceRoot":"","sources":["../../src/migrations/add-task-tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Migration: Add Token Tracking Table (v3.6.0)
|
|
3
|
-
*
|
|
4
|
-
* Creates table for tracking help system token usage to measure efficiency gains.
|
|
5
|
-
*
|
|
6
|
-
* Table Created:
|
|
7
|
-
* - t_help_token_usage: Tracks token consumption per query type
|
|
8
|
-
*/
|
|
9
|
-
import { Database } from 'better-sqlite3';
|
|
10
|
-
interface MigrationResult {
|
|
11
|
-
success: boolean;
|
|
12
|
-
message: string;
|
|
13
|
-
details?: string[];
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Check if migration is needed
|
|
17
|
-
*/
|
|
18
|
-
export declare function needsTokenTrackingMigration(db: Database): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Run the migration
|
|
21
|
-
*/
|
|
22
|
-
export declare function migrateToTokenTracking(db: Database): MigrationResult;
|
|
23
|
-
/**
|
|
24
|
-
* Get migration info
|
|
25
|
-
*/
|
|
26
|
-
export declare function getTokenTrackingMigrationInfo(): string;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=add-token-tracking.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-token-tracking.d.ts","sourceRoot":"","sources":["../../src/migrations/add-token-tracking.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAOjE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,GAAG,eAAe,CA4DpE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CA+BtD"}
|