@shepai/cli 1.112.0 → 1.112.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/packages/core/src/infrastructure/persistence/sqlite/sqlite-migration-storage.d.ts +13 -0
  2. package/dist/packages/core/src/infrastructure/persistence/sqlite/sqlite-migration-storage.d.ts.map +1 -1
  3. package/dist/packages/core/src/infrastructure/persistence/sqlite/sqlite-migration-storage.js +37 -0
  4. package/dist/tsconfig.build.tsbuildinfo +1 -1
  5. package/package.json +1 -1
  6. package/web/.next/BUILD_ID +1 -1
  7. package/web/.next/build-manifest.json +2 -2
  8. package/web/.next/fallback-build-manifest.json +2 -2
  9. package/web/.next/prerender-manifest.json +3 -3
  10. package/web/.next/required-server-files.js +2 -2
  11. package/web/.next/required-server-files.json +2 -2
  12. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  13. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  14. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  16. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  17. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  18. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +26 -26
  19. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  22. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  23. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  24. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  25. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  26. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  27. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +26 -26
  28. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  29. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  30. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +26 -26
  31. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  32. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  33. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  34. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  35. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  36. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  37. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  38. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  39. package/web/.next/server/app/_global-error.html +2 -2
  40. package/web/.next/server/app/_global-error.rsc +1 -1
  41. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  42. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  43. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  44. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  45. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  46. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  47. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  48. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  49. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  50. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  51. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  52. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  54. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  55. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  56. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  57. package/web/.next/server/chunks/[root-of-the-server]__a402b567._.js +1 -1
  58. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  59. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  60. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js +1 -1
  61. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_a1104008.js.map +1 -1
  62. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js +1 -1
  63. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_92642200.js.map +1 -1
  64. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js +1 -1
  65. package/web/.next/server/chunks/ssr/[root-of-the-server]__039967e3._.js.map +1 -1
  66. package/web/.next/server/chunks/ssr/[root-of-the-server]__07a39ff2._.js +1 -1
  67. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  68. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  69. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  70. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js +1 -1
  71. package/web/.next/server/chunks/ssr/[root-of-the-server]__2773312c._.js.map +1 -1
  72. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  73. package/web/.next/server/chunks/ssr/[root-of-the-server]__5edfc56b._.js +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js +1 -1
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__cbd8062c._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__e70c5627._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/{_5214cc6d._.js → _07178808._.js} +2 -2
  86. package/web/.next/server/chunks/ssr/{_5214cc6d._.js.map → _07178808._.js.map} +1 -1
  87. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  88. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  89. package/web/.next/server/chunks/ssr/{_8ef2db1a._.js → _573c7402._.js} +2 -2
  90. package/web/.next/server/chunks/ssr/{_8ef2db1a._.js.map → _573c7402._.js.map} +1 -1
  91. package/web/.next/server/chunks/ssr/{_688c410c._.js → _6b105fbc._.js} +2 -2
  92. package/web/.next/server/chunks/ssr/{_688c410c._.js.map → _6b105fbc._.js.map} +1 -1
  93. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  94. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  96. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  98. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js +1 -1
  100. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_888633e1.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  102. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js +2 -2
  106. package/web/.next/server/chunks/ssr/src_presentation_web_ce7cbc3c._.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js +2 -2
  112. package/web/.next/server/chunks/ssr/src_presentation_web_e2604413._.js.map +1 -1
  113. package/web/.next/server/pages/500.html +2 -2
  114. package/web/.next/server/server-reference-manifest.js +1 -1
  115. package/web/.next/server/server-reference-manifest.json +31 -31
  116. package/web/.next/static/chunks/3a785cd8a96b8402.js +1 -0
  117. package/web/.next/static/chunks/{691c8fb9987506c7.js → 49edfaea86bca4d4.js} +1 -1
  118. package/web/.next/static/chunks/{974a4718eae26449.js → 5025b973997eb889.js} +1 -1
  119. package/web/.next/static/chunks/{979328ec65bd195c.js → 9de58b31821657a7.js} +2 -2
  120. package/web/.next/static/chunks/{6e5ddc3f058e4c15.js → a9357597e52bd4bc.js} +1 -1
  121. package/web/.next/static/chunks/ac1fcc4b433cdbbf.js +1 -0
  122. package/web/.next/static/chunks/{a067d472cd7bab74.js → e04a5e18ea5fd053.js} +1 -1
  123. package/web/.next/static/chunks/{2ceb08e50a58ff13.js → ea5af66e7cd1d64c.js} +1 -1
  124. package/web/.next/static/chunks/{3a154a226e936a39.js → f02fe16cf143e186.js} +1 -1
  125. package/web/.next/static/chunks/fc7dda19227ec43d.js +2 -0
  126. package/web/.next/static/chunks/6a91f6e4059b8e65.js +0 -2
  127. package/web/.next/static/chunks/c2c5d4e54fb6693a.js +0 -1
  128. package/web/.next/static/chunks/cf78337357d8447e.js +0 -1
  129. /package/web/.next/static/{m4kJ9xcvKM_tYBQYtX8sa → h5YMwar8bSq9VnHhJNqVt}/_buildManifest.js +0 -0
  130. /package/web/.next/static/{m4kJ9xcvKM_tYBQYtX8sa → h5YMwar8bSq9VnHhJNqVt}/_clientMiddlewareManifest.json +0 -0
  131. /package/web/.next/static/{m4kJ9xcvKM_tYBQYtX8sa → h5YMwar8bSq9VnHhJNqVt}/_ssgManifest.js +0 -0
@@ -27,6 +27,12 @@ export declare class SQLiteMigrationStorage implements UmzugStorage<Database.Dat
27
27
  * PRAGMA user_version tracking and seeds the umzug_migrations table accordingly.
28
28
  */
29
29
  constructor(db: Database.Database, legacyMigrationNames?: string[]);
30
+ /**
31
+ * Mapping of legacy migration names to the tables they create.
32
+ * Used by verifyBootstrappedMigrations to detect migrations that were
33
+ * marked as executed by the bootstrap seeder but never actually ran.
34
+ */
35
+ private static readonly MIGRATION_TABLE_MAP;
30
36
  /**
31
37
  * Returns the names of all executed migrations, sorted lexicographically.
32
38
  */
@@ -55,5 +61,12 @@ export declare class SQLiteMigrationStorage implements UmzugStorage<Database.Dat
55
61
  * user_version using the provided legacy migration names.
56
62
  */
57
63
  private bootstrapLegacyMigrations;
64
+ /**
65
+ * Checks that each bootstrapped migration's expected table actually exists.
66
+ * Only checks migrations that were seeded (present in seededNames).
67
+ * If a table is missing, removes the migration record from umzug_migrations
68
+ * so that umzug will re-run it on the next up() call.
69
+ */
70
+ private verifyBootstrappedMigrations;
58
71
  }
59
72
  //# sourceMappingURL=sqlite-migration-storage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-migration-storage.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/persistence/sqlite/sqlite-migration-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IAEvC;;;;;;OAMG;gBACS,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,MAAM,EAAE;IAQlE;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO7F;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;CA+BlC"}
1
+ {"version":3,"file":"sqlite-migration-storage.d.ts","sourceRoot":"","sources":["../../../../../../../packages/core/src/infrastructure/persistence/sqlite/sqlite-migration-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3D;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IAEvC;;;;;;OAMG;gBACS,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,MAAM,EAAE;IAQlE;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAOzC;IAEF;;OAEG;IACG,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO7F;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7E;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,yBAAyB;IAuCjC;;;;;OAKG;IACH,OAAO,CAAC,4BAA4B;CAiBrC"}
@@ -31,6 +31,19 @@ export class SQLiteMigrationStorage {
31
31
  this.bootstrapLegacyMigrations(legacyMigrationNames);
32
32
  }
33
33
  }
34
+ /**
35
+ * Mapping of legacy migration names to the tables they create.
36
+ * Used by verifyBootstrappedMigrations to detect migrations that were
37
+ * marked as executed by the bootstrap seeder but never actually ran.
38
+ */
39
+ static MIGRATION_TABLE_MAP = {
40
+ '001-create-settings-table': 'settings',
41
+ '003-create-agent-runs': 'agent_runs',
42
+ '004-create-features': 'features',
43
+ '008-add-approval-gates-and-phase-timings': 'phase_timings',
44
+ '015-create-repositories-and-backfill': 'repositories',
45
+ '033-create-pr-sync-lock': 'pr_sync_lock',
46
+ };
34
47
  /**
35
48
  * Returns the names of all executed migrations, sorted lexicographically.
36
49
  */
@@ -94,5 +107,29 @@ export class SQLiteMigrationStorage {
94
107
  }
95
108
  });
96
109
  seedAll();
110
+ // After seeding, verify that expected schema artifacts actually exist.
111
+ // If a migration was inserted into the legacy list after the DB was already
112
+ // at a higher user_version, its DDL never ran but the seeder marked it done.
113
+ const seededCount = Math.min(userVersion, legacyMigrationNames.length);
114
+ const seededNames = legacyMigrationNames.slice(0, seededCount);
115
+ this.verifyBootstrappedMigrations(seededNames);
116
+ }
117
+ /**
118
+ * Checks that each bootstrapped migration's expected table actually exists.
119
+ * Only checks migrations that were seeded (present in seededNames).
120
+ * If a table is missing, removes the migration record from umzug_migrations
121
+ * so that umzug will re-run it on the next up() call.
122
+ */
123
+ verifyBootstrappedMigrations(seededNames) {
124
+ const seededSet = new Set(seededNames);
125
+ const tableCheck = this.db.prepare("SELECT COUNT(*) as count FROM sqlite_master WHERE type='table' AND name=?");
126
+ for (const [migrationName, tableName] of Object.entries(SQLiteMigrationStorage.MIGRATION_TABLE_MAP)) {
127
+ if (!seededSet.has(migrationName))
128
+ continue;
129
+ const result = tableCheck.get(tableName);
130
+ if (result.count === 0) {
131
+ this.db.prepare('DELETE FROM umzug_migrations WHERE name = ?').run(migrationName);
132
+ }
133
+ }
97
134
  }
98
135
  }