@leanspec/ui 0.2.6 → 0.2.7-dev.20251126090633

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 (747) hide show
  1. package/.next/standalone/node_modules/.pnpm/better-sqlite3@11.10.0/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  2. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  3. package/.next/standalone/packages/ui/.next/build-manifest.json +8 -8
  4. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/packages/ui/.next/required-server-files.json +10 -4
  6. package/.next/standalone/packages/ui/.next/server/app/_global-error/page/build-manifest.json +6 -6
  7. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js +2 -2
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error/page.js.nft.json +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  10. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  11. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +7 -7
  12. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
  13. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
  14. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
  15. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +3 -3
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found/page/build-manifest.json +6 -6
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js +2 -2
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  19. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  20. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  21. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +19 -19
  22. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +19 -19
  23. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +12 -12
  24. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  25. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  26. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  27. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/[id]/route.js.nft.json +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js +2 -2
  29. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/discover/route.js.nft.json +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js +2 -2
  31. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/list-directory/route.js.nft.json +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js +2 -2
  33. package/.next/standalone/packages/ui/.next/server/app/api/local-projects/route.js.nft.json +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js +2 -2
  36. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/status/route.js.nft.json +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js +2 -2
  39. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  41. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js +2 -2
  42. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  43. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js +2 -2
  44. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  45. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js +2 -2
  46. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js +2 -2
  48. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  49. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js +2 -2
  50. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  51. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js +2 -2
  52. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  53. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js +2 -2
  54. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  55. package/.next/standalone/packages/ui/.next/server/app/page/build-manifest.json +6 -6
  56. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  57. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  58. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page/build-manifest.json +6 -6
  59. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js +2 -2
  60. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  61. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page/build-manifest.json +6 -6
  63. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js +2 -2
  64. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  65. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page/build-manifest.json +6 -6
  67. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js +2 -2
  68. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  69. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  70. package/.next/standalone/packages/ui/.next/server/app/projects/page/build-manifest.json +6 -6
  71. package/.next/standalone/packages/ui/.next/server/app/projects/page.js +2 -2
  72. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  73. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  74. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  75. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +28 -29
  76. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +28 -29
  77. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +12 -12
  78. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +5 -5
  79. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +4 -4
  80. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +3 -3
  81. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page/build-manifest.json +6 -6
  82. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js +2 -2
  83. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  84. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  85. package/.next/standalone/packages/ui/.next/server/app/specs/page/build-manifest.json +6 -6
  86. package/.next/standalone/packages/ui/.next/server/app/specs/page.js +2 -2
  87. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  88. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  89. package/.next/standalone/packages/ui/.next/server/app/stats/page/build-manifest.json +6 -6
  90. package/.next/standalone/packages/ui/.next/server/app/stats/page.js +2 -2
  91. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  92. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  93. package/.next/standalone/packages/ui/.next/server/chunks/6681a__next-internal_server_app_api_specs_[id]_subspecs_[file]_route_actions_556a9993.js +1 -1
  94. package/.next/standalone/packages/ui/.next/server/chunks/6e9bd_next_952b10e2._.js +2 -2
  95. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_[id]_route_actions_664abe9c.js +1 -1
  96. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_local-projects_discover_route_actions_e6ec3fa7.js +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_specs_route_actions_6d03fd1f.js +1 -1
  98. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_projects_[id]_stats_route_actions_a0bb04a8.js +1 -1
  99. package/.next/standalone/packages/ui/.next/server/chunks/730ea_ui__next-internal_server_app_api_specs_[id]_status_route_actions_5d700407.js +1 -1
  100. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__0fbfea15._.js +1 -1
  101. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__126dea7b._.js +1 -1
  102. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__1f037512._.js +1 -1
  103. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__3559376c._.js +4 -4
  104. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__548e27d4._.js +1 -1
  105. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__65667b70._.js +1 -1
  106. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__675a763e._.js +1 -1
  107. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__803d07f0._.js +1 -1
  108. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8075fe29._.js +1 -1
  109. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__8233e09b._.js +1 -1
  110. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__84cdc14a._.js +1 -1
  111. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__9ce722b4._.js +1 -1
  112. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__a2d7cbed._.js +1 -1
  113. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__aa677b0d._.js +1 -1
  114. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ac744182._.js +1 -1
  115. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__ae726e9c._.js +1 -1
  116. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bb9fca84._.js +2 -2
  117. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__bdc3963a._.js +1 -1
  118. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f06435b0._.js +1 -1
  119. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__f5c6d6b8._.js +1 -1
  120. package/.next/standalone/packages/ui/.next/server/chunks/[root-of-the-server]__fb91986f._.js +1 -1
  121. package/.next/standalone/packages/ui/.next/server/chunks/e0876_tiktoken_3efea2dc._.js +1 -1
  122. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_local-projects_list-directory_route_actions_d620ec1a.js +1 -1
  123. package/.next/standalone/packages/ui/.next/server/chunks/f825c_server_app_api_projects_[id]_specs_[spec]_status_route_actions_e9f1bdc5.js +1 -1
  124. package/.next/standalone/packages/ui/.next/server/chunks/node_modules__pnpm_731b55aa._.js +1 -1
  125. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_local-projects_route_actions_9142d5ad.js +1 -1
  126. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_projects_route_actions_73e4c2a1.js +1 -1
  127. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_revalidate_route_actions_a8bf21b5.js +1 -1
  128. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_specs_[id]_route_actions_0793bd75.js +1 -1
  129. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui__next-internal_server_app_api_stats_route_actions_8e042245.js +1 -1
  130. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_db_index_ts_556307fa._.js +4 -4
  131. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_0bd881ee._.js +1 -1
  132. package/.next/standalone/packages/ui/.next/server/chunks/packages_ui_src_lib_specs_sources_database-source_ts_baa0160d._.js +1 -1
  133. package/.next/standalone/packages/ui/.next/server/chunks/ssr/1ce3b_dagre-d3-es_src_dagre_index_f9cad90b.js +3 -0
  134. package/.next/standalone/packages/ui/.next/server/chunks/ssr/38a22_sonner_dist_index_mjs_207730fe._.js +1 -1
  135. package/.next/standalone/packages/ui/.next/server/chunks/ssr/4e76f_cytoscape_dist_cytoscape_esm_mjs_56d6d0a1._.js +3 -0
  136. package/.next/standalone/packages/ui/.next/server/chunks/ssr/54964_d3-scale_src_c504aad0._.js +3 -0
  137. package/.next/standalone/packages/ui/.next/server/chunks/ssr/54964_d3-scale_src_linear_5b8914dd.js +3 -0
  138. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_057c0674._.js +3 -0
  139. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_4b57a3a3._.js +3 -0
  140. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_4d3de843._.js +3 -0
  141. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_5f3103e1._.js +3 -0
  142. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_bcc35893._.js +3 -0
  143. package/.next/standalone/packages/ui/.next/server/chunks/ssr/641df_lodash-es_f2ef1919._.js +3 -0
  144. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_info-NVLQJR56_mjs_cc500a11._.js +3 -0
  145. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_packet-BFZMPI3H_mjs_06a9c7d7._.js +3 -0
  146. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_pie-7BOR55EZ_mjs_1167f1a1._.js +3 -0
  147. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_radar-NHE76QYJ_mjs_962e6256._.js +3 -0
  148. package/.next/standalone/packages/ui/.next/server/chunks/ssr/676f9_@mermaid-js_parser_dist_chunks_mermaid-parser_core_treemap-KMMF4GRG_mjs_a12f0fad._.js +3 -0
  149. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_40720940._.js +2 -2
  150. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_1decfd3f._.js +1 -1
  151. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_69a12422._.js +2 -2
  152. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_7af75658._.js +1 -1
  153. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_client_components_0f429de8._.js +1 -1
  154. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_client_components_builtin_global-error_3666c25c.js +1 -1
  155. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_client_components_builtin_unauthorized_78af867c.js +1 -1
  156. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_df5dcbe9._.js +2 -2
  157. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_esm_25672c28._.js +2 -2
  158. package/.next/standalone/packages/ui/.next/server/chunks/ssr/6e9bd_next_dist_esm_build_templates_app-page_4f278283.js +2 -2
  159. package/.next/standalone/packages/ui/.next/server/chunks/ssr/730ea_ui__next-internal_server_app_projects_[projectId]_specs_page_actions_82e32fe4.js +1 -1
  160. package/.next/standalone/packages/ui/.next/server/chunks/ssr/8b009_parser_dist_chunks_mermaid-parser_core_architecture-U656AL7Q_mjs_64f0e692._.js +3 -0
  161. package/.next/standalone/packages/ui/.next/server/chunks/ssr/8b009_parser_dist_chunks_mermaid-parser_core_gitGraph-F6HP7TQM_mjs_6383c425._.js +3 -0
  162. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_0b254b71._.js +3 -0
  163. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_8167bfdd._.js +17 -0
  164. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_blockDiagram-VD42YOAC_mjs_99bfbaf9._.js +119 -0
  165. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_c4Diagram-YG6GDRKO_mjs_0683be9f._.js +7 -0
  166. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_c5b1d4f9._.js +17 -0
  167. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-ABZYJK2D_mjs_4034a85b._.js +79 -0
  168. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-B4BG7PRW_mjs_3190ac39._.js +162 -0
  169. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-DI55MBZ5_mjs_2e49cdd9._.js +217 -0
  170. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_69c9238e._.js +17 -0
  171. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-JA3XYJ7Z_mjs_4c9b0254._.js +62 -0
  172. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-JZLCHNYA_mjs_e1210981._.js +55 -0
  173. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-MI3HLSF2_mjs_4494daf0._.js +3 -0
  174. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-QXUST7PY_mjs_3e69582d._.js +9 -0
  175. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-S3R3BYOJ_mjs_0c8df0bf._.js +4 -0
  176. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_chunk-TZMSLE5B_mjs_72a0311f._.js +3 -0
  177. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_dagre-6UL2VRFP_mjs_2a0e551c._.js +3 -0
  178. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_diagram-PSM6KHXK_mjs_f109b802._.js +26 -0
  179. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_erDiagram-Q2GNP2WA_mjs_2956542e._.js +57 -0
  180. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_f71564d9._.js +3 -0
  181. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_ffd8fbee._.js +3 -0
  182. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_flowDiagram-NV44I4VS_mjs_c11db931._.js +154 -0
  183. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_gitGraphDiagram-NY62KEGX_mjs_fe41f076._.js +65 -0
  184. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_journeyDiagram-XKPGCS4Q_mjs_8b9c3e68._.js +136 -0
  185. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_kanban-definition-3W4ZIXB7_mjs_d8e6de34._.js +81 -0
  186. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_quadrantDiagram-AYHSOK5B_mjs_50c2110d._.js +3 -0
  187. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_requirementDiagram-UZGBJVZJ_mjs_8f86dea7._.js +61 -0
  188. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_sankeyDiagram-TZEHDZUN_mjs_9fa014df._.js +6 -0
  189. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_sequenceDiagram-WL72ISMW_mjs_4d5ee2b1._.js +138 -0
  190. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_stateDiagram-FKZM4ZOC_mjs_2bd67ce9._.js +3 -0
  191. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_timeline-definition-IT6M3QCI_mjs_96b04d43._.js +58 -0
  192. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_chunks_mermaid_core_xychartDiagram-PRI3JC2R_mjs_7eec04e0._.js +3 -0
  193. package/.next/standalone/packages/ui/.next/server/chunks/ssr/931bf_mermaid_dist_mermaid_core_mjs_1c407865._.js +9 -0
  194. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[externals]_better-sqlite3_a1cc22cb._.js +1 -1
  195. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__015fceb2._.js +1 -1
  196. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__01bfc8ff._.js +1 -1
  197. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__0f0dade1._.js +1 -1
  198. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  199. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__2977636f._.js +3 -3
  200. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__338c65fe._.js +1 -1
  201. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__4ec37765._.js +1 -1
  202. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__50122e7e._.js +1 -1
  203. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__5382b397._.js +1 -1
  204. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +2 -2
  205. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__7f55abaa._.js +1 -1
  206. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__88a691ee._.js +1 -1
  207. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__8b019a26._.js +1 -1
  208. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +2 -2
  209. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__bdbbba01._.js +1 -1
  210. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__cc589a54._.js +1 -1
  211. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__daee3355._.js +3 -0
  212. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__e4a2bcdd._.js +64 -0
  213. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__ec5b96a5._.js +1 -1
  214. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__fd80e4dd._.js +1 -1
  215. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_000dd317._.js +1 -1
  216. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_0f9ffe32._.js +3 -0
  217. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +3 -0
  218. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_22274047._.js +3 -0
  219. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_39562b2a._.js +2 -2
  220. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3b617676._.js +1 -1
  221. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_3fac7eca._.js +1 -1
  222. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_4129cc0f._.js +1 -1
  223. package/.next/standalone/packages/ui/.next/server/chunks/ssr/{_196b5a83._.js → _497c8b73._.js} +2 -2
  224. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_85effc18._.js +2 -2
  225. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_8f9656c4._.js +2 -2
  226. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_911f204b._.js +1 -1
  227. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ac867463._.js +3 -0
  228. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_ad8c1e99._.js +1 -1
  229. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b6ac86b4._.js +3 -0
  230. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_b9dc2415._.js +2 -2
  231. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_bae6d2b8._.js +2 -2
  232. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +3 -3
  233. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f7344ef6._.js +2 -2
  234. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_fdd7780b._.js +2 -2
  235. package/.next/standalone/packages/ui/.next/server/chunks/ssr/c7b92_d3-shape_src_arc_9341f572.js +3 -0
  236. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f0bdc_katex_dist_katex_mjs_27a6c950._.js +3 -0
  237. package/.next/standalone/packages/ui/.next/server/chunks/ssr/f825c_server_app_projects_[projectId]_specs_[specId]_page_actions_22d9c35e.js +1 -1
  238. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_03d68913._.js +62 -0
  239. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_1aec4342._.js +17 -0
  240. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_2a29db83._.js +3 -0
  241. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_3ba1438c._.js +3 -0
  242. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_472d6274._.js +3 -0
  243. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_50944832._.js +1 -1
  244. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_5237fdd7._.js +3 -0
  245. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_69372f5b._.js +3 -0
  246. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_76d4233c._.js +17 -0
  247. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_7791e3b8._.js +3 -0
  248. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_79befbed._.js +3 -0
  249. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_88c8b88b._.js +3 -0
  250. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_a01fbd8e._.js +3 -0
  251. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_a3f2a370._.js +3 -0
  252. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_ab5a8afc._.js +3 -0
  253. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b23175bb._.js +38 -0
  254. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b247a526._.js +264 -0
  255. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_b5a3d3a5._.js +3 -0
  256. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_c17f27b1._.js +45 -0
  257. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_c22df304._.js +17 -0
  258. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_c766836f._.js +3 -0
  259. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_cb5a045f._.js +3 -0
  260. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_d8037b10._.js +3 -0
  261. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e175b92a._.js +31 -0
  262. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_e440897f._.js +3 -0
  263. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_ea1bddc7._.js +3 -0
  264. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f5b29533._.js +3 -0
  265. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_f732d0bb._.js +26 -0
  266. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app__global-error_page_actions_e9e4a8e1.js +1 -1
  267. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app__not-found_page_actions_428c805d.js +1 -1
  268. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_page_actions_f4c42a31.js +1 -1
  269. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_[projectId]_page_actions_f2986585.js +1 -1
  270. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_projects_page_actions_715940ea.js +1 -1
  271. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_specs_[id]_page_actions_555bb544.js +1 -1
  272. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_specs_page_actions_b92ceb22.js +1 -1
  273. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui__next-internal_server_app_stats_page_actions_35d53654.js +1 -1
  274. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_19541980._.js +1 -1
  275. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_error_tsx_7bf5aa01._.js +1 -1
  276. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_error_tsx_d8203bfe._.js +1 -1
  277. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_loading_tsx_9304a706._.js +1 -1
  278. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_be242d6c._.js +1 -1
  279. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_[projectId]_project-context-syncer_tsx_7954ea3b._.js +1 -1
  280. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_projects_page_tsx_6e166c8e._.js +1 -1
  281. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  282. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  283. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_select_tsx_7e21d40f._.js +1 -1
  284. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_specs_sources_database-source_ts_f7186c2a._.js +2 -2
  285. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_utils_ts_259f88e4._.js +1 -1
  286. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_lib_utils_ts_c47f8e19._.js +1 -1
  287. package/.next/standalone/packages/ui/.next/server/middleware-build-manifest.js +6 -6
  288. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  289. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  290. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  291. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  292. package/.next/standalone/packages/ui/.next/static/chunks/038fb2d565c88582.js +2 -0
  293. package/.next/standalone/packages/ui/.next/static/chunks/0f108f65249f8820.js +19 -0
  294. package/.next/standalone/packages/ui/.next/static/chunks/1104de0c16e0b792.js +59 -0
  295. package/.next/standalone/packages/ui/.next/static/chunks/1490995adc7829e2.js +136 -0
  296. package/.next/standalone/packages/ui/.next/static/chunks/16b742746668b9d6.js +56 -0
  297. package/.next/standalone/packages/ui/.next/static/chunks/16ff9833ae1bb3ae.js +1 -0
  298. package/.next/standalone/packages/ui/.next/static/chunks/192b2f6118d057e2.js +60 -0
  299. package/.next/standalone/packages/ui/.next/static/chunks/1a910f137d27fff0.js +63 -0
  300. package/.next/standalone/packages/ui/.next/static/chunks/1f052e076ca9a3ff.js +1 -0
  301. package/.next/standalone/packages/ui/.next/static/chunks/20f4141ccb5d4eb4.js +1 -0
  302. package/.next/standalone/packages/ui/.next/static/chunks/2136b3131f74188f.js +1 -0
  303. package/.next/standalone/packages/ui/.next/static/chunks/2204c0f16b23ec4c.js +3 -0
  304. package/.next/standalone/packages/ui/.next/static/chunks/294dea6dbec43ca6.js +1 -0
  305. package/.next/standalone/packages/ui/.next/static/chunks/2a33b9246ea4be03.js +2 -0
  306. package/.next/standalone/packages/ui/.next/static/chunks/2c85b8059e42248a.js +1 -0
  307. package/.next/standalone/packages/ui/.next/static/chunks/305b74f3c20cb4ef.js +1 -0
  308. package/.next/standalone/packages/ui/.next/static/chunks/3276ca6fd9005903.js +13 -0
  309. package/.next/standalone/packages/ui/.next/static/chunks/37f2e45cf97245d9.js +117 -0
  310. package/.next/standalone/packages/ui/.next/static/chunks/39691fae9a3463fe.js +262 -0
  311. package/.next/standalone/packages/ui/.next/static/chunks/3b6b058ebd14dbed.js +1 -0
  312. package/.next/standalone/packages/ui/.next/static/chunks/3ed1465109fecc2d.js +1 -0
  313. package/.next/standalone/packages/ui/.next/static/chunks/3f94c1ef6e27c8bd.js +1 -0
  314. package/.next/standalone/packages/ui/.next/static/chunks/414a78f7b9b58d11.js +53 -0
  315. package/.next/standalone/packages/ui/.next/static/chunks/4e85dea329906168.js +1 -0
  316. package/.next/standalone/packages/ui/.next/static/chunks/525d6cb99a13c44a.js +215 -0
  317. package/.next/standalone/packages/ui/.next/static/chunks/5295f0e82fd2a6d3.js +24 -0
  318. package/.next/standalone/packages/ui/.next/static/chunks/567bc31005c31006.js +1 -0
  319. package/.next/standalone/packages/ui/.next/static/chunks/56894ea818ee2a54.js +1 -0
  320. package/.next/standalone/packages/ui/.next/static/chunks/569b4347ce55d973.js +1 -0
  321. package/.next/standalone/packages/ui/.next/static/chunks/5fffdea0623d8a25.js +1 -0
  322. package/.next/standalone/packages/ui/.next/static/chunks/642374ace530e2bd.js +1 -0
  323. package/.next/standalone/packages/ui/.next/static/chunks/64543dbd7a7a99b7.js +1 -0
  324. package/.next/standalone/packages/ui/.next/static/chunks/6483096c16d96f2c.js +15 -0
  325. package/.next/standalone/packages/ui/.next/static/chunks/66d3fa1af3ff1fbf.js +1 -0
  326. package/.next/standalone/packages/ui/.next/static/chunks/67a1d37727697340.js +1 -0
  327. package/.next/standalone/packages/ui/.next/static/chunks/6f3c460ef90843d6.js +215 -0
  328. package/.next/standalone/packages/ui/.next/static/chunks/6ff7b0a8653036b2.js +1 -0
  329. package/.next/standalone/packages/ui/.next/static/chunks/72dde43947381f78.js +1 -0
  330. package/.next/standalone/packages/ui/.next/static/chunks/7590e65bcaa41e8b.js +1 -0
  331. package/.next/standalone/packages/ui/.next/static/chunks/762fe8c3999a1965.js +1 -0
  332. package/.next/standalone/packages/ui/.next/static/chunks/794f3931f1ca12d2.js +1 -0
  333. package/.next/standalone/packages/ui/.next/static/chunks/7b70989270600907.js +148 -0
  334. package/.next/standalone/packages/ui/.next/static/chunks/8287406f2fe1c1c3.js +1 -0
  335. package/.next/standalone/packages/ui/.next/static/chunks/839e44eec90aa73d.js +60 -0
  336. package/.next/standalone/packages/ui/.next/static/chunks/85b2b8ec762b7c79.js +62 -0
  337. package/.next/standalone/packages/ui/.next/static/chunks/89a8f922ce491ce9.js +93 -0
  338. package/.next/standalone/packages/ui/.next/static/chunks/8ff23db3e3143bc7.js +5 -0
  339. package/.next/standalone/packages/ui/.next/static/chunks/942cf63b4032c808.js +29 -0
  340. package/.next/standalone/packages/ui/.next/static/chunks/95bd0faa6092d8ba.js +1 -0
  341. package/.next/standalone/packages/ui/.next/static/chunks/97bd44afaee5f129.js +1 -0
  342. package/.next/standalone/packages/ui/.next/static/chunks/97c8160044aea609.js +77 -0
  343. package/.next/standalone/packages/ui/.next/static/chunks/9d06bd5d701ace73.js +1 -0
  344. package/.next/standalone/packages/ui/.next/static/chunks/a0b34f852bfa3d1b.js +36 -0
  345. package/.next/standalone/packages/ui/.next/static/chunks/a1ca5af350378f72.js +1 -0
  346. package/.next/standalone/packages/ui/.next/static/chunks/af643629ba393b18.js +15 -0
  347. package/.next/standalone/packages/ui/.next/static/chunks/b6976cf6c48996e5.js +1 -0
  348. package/.next/standalone/packages/ui/.next/static/chunks/b6ffd44cbe740f15.js +1 -0
  349. package/.next/standalone/packages/ui/.next/static/chunks/b8353eb8c6fb895e.js +1 -0
  350. package/.next/standalone/packages/ui/.next/static/chunks/b845813463167db0.js +5 -0
  351. package/.next/standalone/packages/ui/.next/static/chunks/b900efab2eee69a0.js +15 -0
  352. package/.next/standalone/packages/ui/.next/static/chunks/bd9893e28f8f6a9a.css +1 -0
  353. package/.next/standalone/packages/ui/.next/static/chunks/c762baa705e11b30.js +1 -0
  354. package/.next/standalone/packages/ui/.next/static/chunks/cbfb9d957f708c08.js +1 -0
  355. package/.next/standalone/packages/ui/.next/static/chunks/cca4441cde342ae3.js +1 -0
  356. package/.next/standalone/packages/ui/.next/static/chunks/cf53882a2c15630f.js +1 -0
  357. package/.next/standalone/packages/ui/.next/static/chunks/d43971093c91d3b2.js +160 -0
  358. package/.next/standalone/packages/ui/.next/static/chunks/d784d84d5b880e48.js +1 -0
  359. package/.next/standalone/packages/ui/.next/static/chunks/db44023a744297d1.js +1 -0
  360. package/.next/standalone/packages/ui/.next/static/chunks/dbe7840308be36b8.js +1 -0
  361. package/.next/standalone/packages/ui/.next/static/chunks/dc0a4df8f7080b29.js +1 -0
  362. package/.next/standalone/packages/ui/.next/static/chunks/dd8e053aa48c6398.js +1 -0
  363. package/.next/standalone/packages/ui/.next/static/chunks/ddc7726e19e5e25c.js +43 -0
  364. package/.next/standalone/packages/ui/.next/static/chunks/df7e61b074dee049.js +152 -0
  365. package/.next/standalone/packages/ui/.next/static/chunks/e20849e3abe63aa5.js +55 -0
  366. package/.next/standalone/packages/ui/.next/static/chunks/e2792c100b4041a1.js +15 -0
  367. package/.next/standalone/packages/ui/.next/static/chunks/e2dce648399ad4d4.js +1 -0
  368. package/.next/standalone/packages/ui/.next/static/chunks/e3bc96a996e2a314.js +24 -0
  369. package/.next/standalone/packages/ui/.next/static/chunks/e5aab2c562822175.js +1 -0
  370. package/.next/standalone/packages/ui/.next/static/chunks/efbbc4dc4b32a270.js +4 -0
  371. package/.next/standalone/packages/ui/.next/static/chunks/f0376ba3b56dbf10.js +4 -0
  372. package/.next/standalone/packages/ui/.next/static/chunks/f88536b96f1df686.js +1 -0
  373. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-5fa55215af0efb15.js +3 -0
  374. package/.next/standalone/packages/ui/next.config.ts +5 -0
  375. package/.next/standalone/packages/ui/package.json +2 -1
  376. package/.next/standalone/packages/ui/scripts/post-build.mjs +15 -1
  377. package/.next/standalone/packages/ui/server.js +1 -1
  378. package/.next/standalone/packages/ui/src/app/globals.css +25 -0
  379. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +180 -140
  380. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +3 -3
  381. package/.next/standalone/packages/ui/src/components/mermaid-diagram.test.ts +92 -0
  382. package/.next/standalone/packages/ui/src/components/mermaid-diagram.tsx +139 -0
  383. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +47 -7
  384. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -13
  385. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +14 -14
  386. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  387. package/.next/static/chunks/038fb2d565c88582.js +2 -0
  388. package/.next/static/chunks/0f108f65249f8820.js +19 -0
  389. package/.next/static/chunks/1104de0c16e0b792.js +59 -0
  390. package/.next/static/chunks/1490995adc7829e2.js +136 -0
  391. package/.next/static/chunks/16b742746668b9d6.js +56 -0
  392. package/.next/static/chunks/16ff9833ae1bb3ae.js +1 -0
  393. package/.next/static/chunks/192b2f6118d057e2.js +60 -0
  394. package/.next/static/chunks/1a910f137d27fff0.js +63 -0
  395. package/.next/static/chunks/1f052e076ca9a3ff.js +1 -0
  396. package/.next/static/chunks/20f4141ccb5d4eb4.js +1 -0
  397. package/.next/static/chunks/2136b3131f74188f.js +1 -0
  398. package/.next/static/chunks/2204c0f16b23ec4c.js +3 -0
  399. package/.next/static/chunks/294dea6dbec43ca6.js +1 -0
  400. package/.next/static/chunks/2a33b9246ea4be03.js +2 -0
  401. package/.next/static/chunks/2c85b8059e42248a.js +1 -0
  402. package/.next/static/chunks/305b74f3c20cb4ef.js +1 -0
  403. package/.next/static/chunks/3276ca6fd9005903.js +13 -0
  404. package/.next/static/chunks/37f2e45cf97245d9.js +117 -0
  405. package/.next/static/chunks/39691fae9a3463fe.js +262 -0
  406. package/.next/static/chunks/3b6b058ebd14dbed.js +1 -0
  407. package/.next/static/chunks/3ed1465109fecc2d.js +1 -0
  408. package/.next/static/chunks/3f94c1ef6e27c8bd.js +1 -0
  409. package/.next/static/chunks/414a78f7b9b58d11.js +53 -0
  410. package/.next/static/chunks/4e85dea329906168.js +1 -0
  411. package/.next/static/chunks/525d6cb99a13c44a.js +215 -0
  412. package/.next/static/chunks/5295f0e82fd2a6d3.js +24 -0
  413. package/.next/static/chunks/567bc31005c31006.js +1 -0
  414. package/.next/static/chunks/56894ea818ee2a54.js +1 -0
  415. package/.next/static/chunks/569b4347ce55d973.js +1 -0
  416. package/.next/static/chunks/5fffdea0623d8a25.js +1 -0
  417. package/.next/static/chunks/642374ace530e2bd.js +1 -0
  418. package/.next/static/chunks/64543dbd7a7a99b7.js +1 -0
  419. package/.next/static/chunks/6483096c16d96f2c.js +15 -0
  420. package/.next/static/chunks/66d3fa1af3ff1fbf.js +1 -0
  421. package/.next/static/chunks/67a1d37727697340.js +1 -0
  422. package/.next/static/chunks/6f3c460ef90843d6.js +215 -0
  423. package/.next/static/chunks/6ff7b0a8653036b2.js +1 -0
  424. package/.next/static/chunks/72dde43947381f78.js +1 -0
  425. package/.next/static/chunks/7590e65bcaa41e8b.js +1 -0
  426. package/.next/static/chunks/762fe8c3999a1965.js +1 -0
  427. package/.next/static/chunks/794f3931f1ca12d2.js +1 -0
  428. package/.next/static/chunks/7b70989270600907.js +148 -0
  429. package/.next/static/chunks/8287406f2fe1c1c3.js +1 -0
  430. package/.next/static/chunks/839e44eec90aa73d.js +60 -0
  431. package/.next/static/chunks/85b2b8ec762b7c79.js +62 -0
  432. package/.next/static/chunks/89a8f922ce491ce9.js +93 -0
  433. package/.next/static/chunks/8ff23db3e3143bc7.js +5 -0
  434. package/.next/static/chunks/942cf63b4032c808.js +29 -0
  435. package/.next/static/chunks/95bd0faa6092d8ba.js +1 -0
  436. package/.next/static/chunks/97bd44afaee5f129.js +1 -0
  437. package/.next/static/chunks/97c8160044aea609.js +77 -0
  438. package/.next/static/chunks/9d06bd5d701ace73.js +1 -0
  439. package/.next/static/chunks/a0b34f852bfa3d1b.js +36 -0
  440. package/.next/static/chunks/a1ca5af350378f72.js +1 -0
  441. package/.next/static/chunks/af643629ba393b18.js +15 -0
  442. package/.next/static/chunks/b6976cf6c48996e5.js +1 -0
  443. package/.next/static/chunks/b6ffd44cbe740f15.js +1 -0
  444. package/.next/static/chunks/b8353eb8c6fb895e.js +1 -0
  445. package/.next/static/chunks/b845813463167db0.js +5 -0
  446. package/.next/static/chunks/b900efab2eee69a0.js +15 -0
  447. package/.next/static/chunks/bd9893e28f8f6a9a.css +1 -0
  448. package/.next/static/chunks/c762baa705e11b30.js +1 -0
  449. package/.next/static/chunks/cbfb9d957f708c08.js +1 -0
  450. package/.next/static/chunks/cca4441cde342ae3.js +1 -0
  451. package/.next/static/chunks/cf53882a2c15630f.js +1 -0
  452. package/.next/static/chunks/d43971093c91d3b2.js +160 -0
  453. package/.next/static/chunks/d784d84d5b880e48.js +1 -0
  454. package/.next/static/chunks/db44023a744297d1.js +1 -0
  455. package/.next/static/chunks/dbe7840308be36b8.js +1 -0
  456. package/.next/static/chunks/dc0a4df8f7080b29.js +1 -0
  457. package/.next/static/chunks/dd8e053aa48c6398.js +1 -0
  458. package/.next/static/chunks/ddc7726e19e5e25c.js +43 -0
  459. package/.next/static/chunks/df7e61b074dee049.js +152 -0
  460. package/.next/static/chunks/e20849e3abe63aa5.js +55 -0
  461. package/.next/static/chunks/e2792c100b4041a1.js +15 -0
  462. package/.next/static/chunks/e2dce648399ad4d4.js +1 -0
  463. package/.next/static/chunks/e3bc96a996e2a314.js +24 -0
  464. package/.next/static/chunks/e5aab2c562822175.js +1 -0
  465. package/.next/static/chunks/efbbc4dc4b32a270.js +4 -0
  466. package/.next/static/chunks/f0376ba3b56dbf10.js +4 -0
  467. package/.next/static/chunks/f88536b96f1df686.js +1 -0
  468. package/.next/static/chunks/turbopack-5fa55215af0efb15.js +3 -0
  469. package/package.json +3 -2
  470. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__c592f5d1._.js +0 -3
  471. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6174313a._.js +0 -3
  472. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6e4dd8b6._.js +0 -3
  473. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_7fa1d4b1._.js +0 -3
  474. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_e1889307._.js +0 -3
  475. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f1e82b43._.js +0 -3
  476. package/.next/standalone/packages/ui/.next/server/chunks/ssr/node_modules__pnpm_af9d3830._.js +0 -3
  477. package/.next/standalone/packages/ui/.next/static/chunks/07f48b316e895080.js +0 -1
  478. package/.next/standalone/packages/ui/.next/static/chunks/0a7be410b438418a.js +0 -1
  479. package/.next/standalone/packages/ui/.next/static/chunks/1089ca88f6bef846.js +0 -1
  480. package/.next/standalone/packages/ui/.next/static/chunks/17471c87082c392c.js +0 -5
  481. package/.next/standalone/packages/ui/.next/static/chunks/220ba5cb8fe4dd69.js +0 -1
  482. package/.next/standalone/packages/ui/.next/static/chunks/35ccd3286e538bd2.js +0 -1
  483. package/.next/standalone/packages/ui/.next/static/chunks/4a7396c9a77e64d5.js +0 -1
  484. package/.next/standalone/packages/ui/.next/static/chunks/50aead33b660f05c.js +0 -1
  485. package/.next/standalone/packages/ui/.next/static/chunks/571033caca823138.js +0 -1
  486. package/.next/standalone/packages/ui/.next/static/chunks/5a6fc30cd64085b4.css +0 -1
  487. package/.next/standalone/packages/ui/.next/static/chunks/5c2072ad938de8ed.js +0 -1
  488. package/.next/standalone/packages/ui/.next/static/chunks/7f732ea69e643219.js +0 -2
  489. package/.next/standalone/packages/ui/.next/static/chunks/843e1dfdc28e1385.js +0 -1
  490. package/.next/standalone/packages/ui/.next/static/chunks/9dad7fd31627df80.js +0 -1
  491. package/.next/standalone/packages/ui/.next/static/chunks/a02c1f50ff00204f.js +0 -1
  492. package/.next/standalone/packages/ui/.next/static/chunks/a055d4b2866ff8d4.js +0 -1
  493. package/.next/standalone/packages/ui/.next/static/chunks/afb7c5a4255f4081.js +0 -3
  494. package/.next/standalone/packages/ui/.next/static/chunks/b760a3a9c2c8be28.js +0 -1
  495. package/.next/standalone/packages/ui/.next/static/chunks/b9b9d7565bc2c2ad.js +0 -1
  496. package/.next/standalone/packages/ui/.next/static/chunks/db281fdc89c063c5.js +0 -1
  497. package/.next/standalone/packages/ui/.next/static/chunks/dcdd95180149fa10.js +0 -1
  498. package/.next/standalone/packages/ui/.next/static/chunks/ebd89051637b9a47.js +0 -4
  499. package/.next/standalone/packages/ui/.next/static/chunks/f3ec9fd77a8618b1.js +0 -19
  500. package/.next/standalone/packages/ui/.next/static/chunks/f9db24028d8c058e.js +0 -1
  501. package/.next/standalone/packages/ui/.next/static/chunks/fb640f50455ba34f.js +0 -1
  502. package/.next/standalone/packages/ui/.next/static/chunks/turbopack-b9690cacbf9fe48c.js +0 -3
  503. package/.next/standalone/packages/ui/dist/BUILD_ID +0 -1
  504. package/.next/standalone/packages/ui/dist/public/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -1
  505. package/.next/standalone/packages/ui/dist/public/favicon.ico +0 -0
  506. package/.next/standalone/packages/ui/dist/public/file.svg +0 -1
  507. package/.next/standalone/packages/ui/dist/public/github-mark-white.svg +0 -1
  508. package/.next/standalone/packages/ui/dist/public/github-mark.svg +0 -1
  509. package/.next/standalone/packages/ui/dist/public/globe.svg +0 -1
  510. package/.next/standalone/packages/ui/dist/public/icon.svg +0 -7
  511. package/.next/standalone/packages/ui/dist/public/logo-dark-bg.svg +0 -17
  512. package/.next/standalone/packages/ui/dist/public/logo-with-bg.svg +0 -17
  513. package/.next/standalone/packages/ui/dist/public/logo.svg +0 -17
  514. package/.next/standalone/packages/ui/dist/public/next.svg +0 -1
  515. package/.next/standalone/packages/ui/dist/public/vercel.svg +0 -1
  516. package/.next/standalone/packages/ui/dist/public/window.svg +0 -1
  517. package/.next/standalone/packages/ui/dist/standalone/packages/web/README.md +0 -196
  518. package/.next/standalone/packages/ui/dist/standalone/packages/web/leanspec.db +0 -0
  519. package/.next/standalone/packages/ui/dist/standalone/packages/web/package.json +0 -75
  520. package/.next/standalone/packages/ui/dist/standalone/packages/web/server.js +0 -44
  521. package/.next/standalone/packages/ui/dist/standalone/specs/014-complete-custom-frontmatter/README.md +0 -175
  522. package/.next/standalone/packages/ui/dist/standalone/specs/016-github-action/README.md +0 -317
  523. package/.next/standalone/packages/ui/dist/standalone/specs/017-vscode-extension/README.md +0 -261
  524. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CLI-DESIGN.md +0 -380
  525. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION-EXAMPLES.md +0 -230
  526. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/CONFIGURATION.md +0 -285
  527. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/IMPLEMENTATION.md +0 -358
  528. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/README.md +0 -303
  529. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/TESTING.md +0 -368
  530. package/.next/standalone/packages/ui/dist/standalone/specs/018-spec-validation/VALIDATION-RULES.md +0 -327
  531. package/.next/standalone/packages/ui/dist/standalone/specs/024-pattern-aware-list-grouping/README.md +0 -117
  532. package/.next/standalone/packages/ui/dist/standalone/specs/025-template-config-updates/README.md +0 -73
  533. package/.next/standalone/packages/ui/dist/standalone/specs/026-init-pattern-selection/README.md +0 -109
  534. package/.next/standalone/packages/ui/dist/standalone/specs/034-copilot-slash-commands/README.md +0 -107
  535. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/ARCHITECTURE.md +0 -244
  536. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/IMPLEMENTATION.md +0 -429
  537. package/.next/standalone/packages/ui/dist/standalone/specs/035-live-specs-showcase/README.md +0 -302
  538. package/.next/standalone/packages/ui/dist/standalone/specs/036-pm-integrations/README.md +0 -158
  539. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-AI-ASSISTED.md +0 -359
  540. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-FULL-LIFECYCLE.md +0 -86
  541. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-REAL-FEATURE.md +0 -437
  542. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DEMO-SCRIPT.md +0 -365
  543. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-FINAL.md +0 -203
  544. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SESSION-2025-11-06.md +0 -174
  545. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/DOGFOODING-SUMMARY.md +0 -156
  546. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/IMPLEMENTATION.md +0 -183
  547. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/MARKETING.md +0 -229
  548. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/NEXT-STEPS-DEMO.md +0 -243
  549. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/README.md +0 -217
  550. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/SESSION-2025-11-06.md +0 -166
  551. package/.next/standalone/packages/ui/dist/standalone/specs/043-official-launch-02/TESTING.md +0 -126
  552. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/ACTUAL-IMPLEMENTATION.md +0 -108
  553. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/DESIGN.md +0 -382
  554. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/IMPLEMENTATION.md +0 -144
  555. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/RATIONALE.md +0 -146
  556. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/README.md +0 -208
  557. package/.next/standalone/packages/ui/dist/standalone/specs/045-unified-dashboard/TESTING.md +0 -182
  558. package/.next/standalone/packages/ui/dist/standalone/specs/047-git-backfill-timestamps/README.md +0 -314
  559. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/FINDINGS.md +0 -113
  560. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/GUIDELINES.md +0 -237
  561. package/.next/standalone/packages/ui/dist/standalone/specs/048-spec-complexity-analysis/README.md +0 -149
  562. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-COMPARISONS.md +0 -175
  563. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/ANALYSIS-CONSTRAINTS.md +0 -254
  564. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/FIRST-PRINCIPLES.md +0 -376
  565. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-ROADMAP.md +0 -240
  566. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/OPERATIONALIZATION-TOOLS.md +0 -175
  567. package/.next/standalone/packages/ui/dist/standalone/specs/049-leanspec-first-principles/README.md +0 -374
  568. package/.next/standalone/packages/ui/dist/standalone/specs/051-docs-system-prompt-principles/README.md +0 -339
  569. package/.next/standalone/packages/ui/dist/standalone/specs/052-branding-assets/README.md +0 -128
  570. package/.next/standalone/packages/ui/dist/standalone/specs/053-spec-assets-philosophy/README.md +0 -97
  571. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/DESIGN-DECISIONS.md +0 -93
  572. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/OUTPUT-FORMAT-SPEC.md +0 -146
  573. package/.next/standalone/packages/ui/dist/standalone/specs/054-validate-output-lint-style/README.md +0 -175
  574. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART1.md +0 -397
  575. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS-PART2.md +0 -342
  576. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/ANALYSIS.md +0 -44
  577. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CHANGES.md +0 -150
  578. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/CONCERNS-ANALYSIS.md +0 -351
  579. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/DOCS-ALIGNMENT-ANALYSIS.md +0 -238
  580. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/README.md +0 -280
  581. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-DRAFT.md +0 -372
  582. package/.next/standalone/packages/ui/dist/standalone/specs/055-readme-redesign-ai-first/REDESIGN-REFINED.md +0 -466
  583. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/AUDIT-RESULTS.md +0 -178
  584. package/.next/standalone/packages/ui/dist/standalone/specs/056-docs-site-accuracy-audit/README.md +0 -174
  585. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/README.md +0 -295
  586. package/.next/standalone/packages/ui/dist/standalone/specs/057-docs-validation-comprehensive/VALIDATION-RESULTS.md +0 -487
  587. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/ANALYSIS.md +0 -241
  588. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/DESIGN.md +0 -279
  589. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/IMPLEMENTATION.md +0 -642
  590. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/NOTES.md +0 -125
  591. package/.next/standalone/packages/ui/dist/standalone/specs/058-docs-overview-polish/README.md +0 -286
  592. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/ARCHITECTURE.md +0 -392
  593. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/COMMANDS.md +0 -1002
  594. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/CONTEXT-ENGINEERING.md +0 -411
  595. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/IMPLEMENTATION.md +0 -812
  596. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/README.md +0 -504
  597. package/.next/standalone/packages/ui/dist/standalone/specs/059-programmatic-spec-management/TESTING.md +0 -724
  598. package/.next/standalone/packages/ui/dist/standalone/specs/060-core-concepts-coherence/README.md +0 -125
  599. package/.next/standalone/packages/ui/dist/standalone/specs/061-ai-assisted-spec-writing/README.md +0 -299
  600. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/IMPLEMENTATION-PLAN.md +0 -174
  601. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PAGE-SPECIFICATIONS.md +0 -265
  602. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/PROBLEM-ANALYSIS.md +0 -36
  603. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/README.md +0 -243
  604. package/.next/standalone/packages/ui/dist/standalone/specs/062-docs-info-architecture-v2/SOLUTION-DESIGN.md +0 -82
  605. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/DESIGN.md +0 -338
  606. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/EXAMPLES.md +0 -354
  607. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/IMPLEMENTATION.md +0 -189
  608. package/.next/standalone/packages/ui/dist/standalone/specs/063-migration-from-existing-tools/README.md +0 -119
  609. package/.next/standalone/packages/ui/dist/standalone/specs/064-docs-site-zh-translation/README.md +0 -170
  610. package/.next/standalone/packages/ui/dist/standalone/specs/065-v03-planning/README.md +0 -158
  611. package/.next/standalone/packages/ui/dist/standalone/specs/066-context-economy-thresholds-refinement/README.md +0 -842
  612. package/.next/standalone/packages/ui/dist/standalone/specs/067-monorepo-core-extraction/README.md +0 -358
  613. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/DESIGN.md +0 -444
  614. package/.next/standalone/packages/ui/dist/standalone/specs/068-live-specs-ux-enhancements/README.md +0 -357
  615. package/.next/standalone/packages/ui/dist/standalone/specs/069-token-counting-utils/README.md +0 -551
  616. package/.next/standalone/packages/ui/dist/standalone/specs/070-mcp-token-counting-tool/README.md +0 -372
  617. package/.next/standalone/packages/ui/dist/standalone/specs/071-simplified-token-validation/README.md +0 -489
  618. package/.next/standalone/packages/ui/dist/standalone/specs/072-ai-agent-first-use-workflow/README.md +0 -285
  619. package/.next/standalone/packages/ui/dist/standalone/specs/073-template-engine-agents-md/README.md +0 -323
  620. package/.next/standalone/packages/ui/dist/standalone/specs/074-content-at-creation/README.md +0 -136
  621. package/.next/standalone/packages/ui/dist/standalone/specs/075-intelligent-search-engine/README.md +0 -399
  622. package/.next/standalone/packages/ui/dist/standalone/specs/076-programmatic-spec-relationships/README.md +0 -301
  623. package/.next/standalone/packages/ui/dist/standalone/specs/077-archiving-strategy/README.md +0 -235
  624. package/.next/standalone/packages/ui/dist/standalone/specs/078-sub-spec-template-system/README.md +0 -303
  625. package/.next/standalone/packages/ui/dist/standalone/specs/079-cli-alphabetical-organization/README.md +0 -196
  626. package/.next/standalone/packages/ui/dist/standalone/specs/080-mcp-server-modular-architecture/README.md +0 -388
  627. package/.next/standalone/packages/ui/dist/standalone/specs/081-web-app-ux-redesign/README.md +0 -824
  628. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DATABASE.md +0 -111
  629. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/DEPLOYMENT.md +0 -69
  630. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/FILESYSTEM.md +0 -77
  631. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/IMPLEMENTATION.md +0 -184
  632. package/.next/standalone/packages/ui/dist/standalone/specs/082-web-realtime-sync-architecture/README.md +0 -496
  633. package/.next/standalone/packages/ui/dist/standalone/specs/083-web-navigation-performance/README.md +0 -490
  634. package/.next/standalone/packages/ui/dist/standalone/specs/084-sub-spec-visibility-in-tools/README.md +0 -389
  635. package/.next/standalone/packages/ui/dist/standalone/specs/085-cli-relationship-commands/README.md +0 -920
  636. package/.next/standalone/packages/ui/dist/standalone/specs/086-template-component-deduplication/README.md +0 -146
  637. package/.next/standalone/packages/ui/dist/standalone/specs/087-cli-ui-command/README.md +0 -607
  638. package/.next/standalone/packages/ui/dist/standalone/specs/088-core-concepts-terminology-only/README.md +0 -104
  639. package/.next/standalone/packages/ui/dist/standalone/specs/089-sdd-practical-tutorials/README.md +0 -124
  640. package/.next/standalone/packages/ui/dist/standalone/specs/090-leanspec-sdd-case-studies/README.md +0 -129
  641. package/.next/standalone/packages/ui/dist/standalone/specs/091-chinese-localization-strategy/README.md +0 -244
  642. package/.next/standalone/packages/ui/dist/standalone/specs/092-docs-site-submodule-migration/README.md +0 -148
  643. package/.next/standalone/packages/ui/dist/standalone/specs/093-spec-detail-ui-improvements/README.md +0 -54
  644. package/.next/standalone/packages/ui/dist/standalone/specs/archived/001-typescript-cli-migration/README.md +0 -37
  645. package/.next/standalone/packages/ui/dist/standalone/specs/archived/002-template-system-redesign/README.md +0 -60
  646. package/.next/standalone/packages/ui/dist/standalone/specs/archived/003-init-system-redesign/README.md +0 -113
  647. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/README.md +0 -69
  648. package/.next/standalone/packages/ui/dist/standalone/specs/archived/004-existing-project-integration/SUMMARY.md +0 -112
  649. package/.next/standalone/packages/ui/dist/standalone/specs/archived/005-structured-frontmatter/README.md +0 -229
  650. package/.next/standalone/packages/ui/dist/standalone/specs/archived/006-pm-visualization-tools/README.md +0 -406
  651. package/.next/standalone/packages/ui/dist/standalone/specs/archived/007-system-prompt-updates/README.md +0 -168
  652. package/.next/standalone/packages/ui/dist/standalone/specs/archived/008-commander-migration/README.md +0 -174
  653. package/.next/standalone/packages/ui/dist/standalone/specs/archived/009-cli-ux-enhancement/README.md +0 -212
  654. package/.next/standalone/packages/ui/dist/standalone/specs/archived/010-commands-refactor/README.md +0 -249
  655. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/README.md +0 -60
  656. package/.next/standalone/packages/ui/dist/standalone/specs/archived/011-test-results/TEST_SUMMARY.md +0 -139
  657. package/.next/standalone/packages/ui/dist/standalone/specs/archived/012-sub-spec-files/README.md +0 -722
  658. package/.next/standalone/packages/ui/dist/standalone/specs/archived/013-custom-spec-templates/README.md +0 -413
  659. package/.next/standalone/packages/ui/dist/standalone/specs/archived/015-npm-publishing/README.md +0 -255
  660. package/.next/standalone/packages/ui/dist/standalone/specs/archived/019-readme-improvement/README.md +0 -252
  661. package/.next/standalone/packages/ui/dist/standalone/specs/archived/020-documentation-website/README.md +0 -253
  662. package/.next/standalone/packages/ui/dist/standalone/specs/archived/021-docusaurus-vercel-migration/README.md +0 -612
  663. package/.next/standalone/packages/ui/dist/standalone/specs/archived/022-flexible-folder-structure/README.md +0 -794
  664. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/DESIGN.md +0 -834
  665. package/.next/standalone/packages/ui/dist/standalone/specs/archived/023-folder-structure-improvements/README.md +0 -255
  666. package/.next/standalone/packages/ui/dist/standalone/specs/archived/027-cli-ui-ux-optimization/README.md +0 -454
  667. package/.next/standalone/packages/ui/dist/standalone/specs/archived/028-cli-ui-modernization/README.md +0 -172
  668. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/IMPLEMENTATION.md +0 -152
  669. package/.next/standalone/packages/ui/dist/standalone/specs/archived/029-visualization-improvements/README.md +0 -95
  670. package/.next/standalone/packages/ui/dist/standalone/specs/archived/030-created-date-format-bug/README.md +0 -87
  671. package/.next/standalone/packages/ui/dist/standalone/specs/archived/031-gantt-ux-improvements/README.md +0 -230
  672. package/.next/standalone/packages/ui/dist/standalone/specs/archived/032-console-log-chalk-security/README.md +0 -89
  673. package/.next/standalone/packages/ui/dist/standalone/specs/archived/033-mcp-server/README.md +0 -89
  674. package/.next/standalone/packages/ui/dist/standalone/specs/archived/037-docs-overhaul/README.md +0 -166
  675. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-flat-structure-migration/README.md +0 -276
  676. package/.next/standalone/packages/ui/dist/standalone/specs/archived/038-mcp-frontmatter-bug-fix/README.md +0 -122
  677. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-simplify-viewer-commands/README.md +0 -198
  678. package/.next/standalone/packages/ui/dist/standalone/specs/archived/039-template-variable-sync/README.md +0 -192
  679. package/.next/standalone/packages/ui/dist/standalone/specs/archived/040-spec-viewer-commands/README.md +0 -171
  680. package/.next/standalone/packages/ui/dist/standalone/specs/archived/042-mcp-error-handling/README.md +0 -200
  681. package/.next/standalone/packages/ui/dist/standalone/specs/archived/044-spec-relationships-clarity/README.md +0 -317
  682. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/DESIGN.md +0 -276
  683. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/IMPLEMENTATION.md +0 -241
  684. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/README.md +0 -139
  685. package/.next/standalone/packages/ui/dist/standalone/specs/archived/046-stats-dashboard-refactor/TESTING.md +0 -328
  686. package/.next/standalone/packages/ui/dist/standalone/specs/archived/050-tool-redesign-first-principles/README.md +0 -400
  687. package/.next/standalone/packages/ui/dist/static/chunks/0c19c69aa7625475.js +0 -1
  688. package/.next/standalone/packages/ui/dist/static/chunks/116800b03245a1e5.js +0 -1
  689. package/.next/standalone/packages/ui/dist/static/chunks/15843a3d7584e314.js +0 -1
  690. package/.next/standalone/packages/ui/dist/static/chunks/19e80edf527aef5c.js +0 -1
  691. package/.next/standalone/packages/ui/dist/static/chunks/465954d5af3284a9.js +0 -1
  692. package/.next/standalone/packages/ui/dist/static/chunks/5abeeb89f1412a80.js +0 -3
  693. package/.next/standalone/packages/ui/dist/static/chunks/5c2072ad938de8ed.js +0 -1
  694. package/.next/standalone/packages/ui/dist/static/chunks/6a05a93ec8fa7b83.js +0 -1
  695. package/.next/standalone/packages/ui/dist/static/chunks/778e42188e450b39.css +0 -1
  696. package/.next/standalone/packages/ui/dist/static/chunks/a02c1f50ff00204f.js +0 -1
  697. package/.next/standalone/packages/ui/dist/static/chunks/a45464b9776dd88e.js +0 -1
  698. package/.next/standalone/packages/ui/dist/static/chunks/a6dad97d9634a72d.js +0 -1
  699. package/.next/standalone/packages/ui/dist/static/chunks/b0ea0ac61604f843.js +0 -1
  700. package/.next/standalone/packages/ui/dist/static/chunks/c06e85b449720194.js +0 -1
  701. package/.next/standalone/packages/ui/dist/static/chunks/c557ac675be79771.js +0 -1
  702. package/.next/standalone/packages/ui/dist/static/chunks/cad005a57ffbb2d3.js +0 -1
  703. package/.next/standalone/packages/ui/dist/static/chunks/cdf6fe33bc65efbc.js +0 -1
  704. package/.next/standalone/packages/ui/dist/static/chunks/d12ed5dbe44caed7.js +0 -1
  705. package/.next/standalone/packages/ui/dist/static/chunks/d1ebe5c1a344f4ca.js +0 -5
  706. package/.next/standalone/packages/ui/dist/static/chunks/d42cf1682bc46652.js +0 -1
  707. package/.next/standalone/packages/ui/dist/static/chunks/dde5d8bddd7fbfcf.js +0 -1
  708. package/.next/standalone/packages/ui/dist/static/chunks/ebd89051637b9a47.js +0 -4
  709. package/.next/standalone/packages/ui/dist/static/chunks/ec82875d18b29f47.js +0 -2
  710. package/.next/standalone/packages/ui/dist/static/chunks/f0b701df9769bcc5.js +0 -19
  711. package/.next/standalone/packages/ui/dist/static/chunks/turbopack-1c09a99f4c9e28d3.js +0 -3
  712. package/.next/standalone/packages/ui/leanspec.db +0 -0
  713. package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_buildManifest.js +0 -11
  714. package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_clientMiddlewareManifest.json +0 -1
  715. package/.next/static/T_KGFP0pHt_xSaaYUJa3L/_ssgManifest.js +0 -1
  716. package/.next/static/chunks/07f48b316e895080.js +0 -1
  717. package/.next/static/chunks/0a7be410b438418a.js +0 -1
  718. package/.next/static/chunks/1089ca88f6bef846.js +0 -1
  719. package/.next/static/chunks/17471c87082c392c.js +0 -5
  720. package/.next/static/chunks/220ba5cb8fe4dd69.js +0 -1
  721. package/.next/static/chunks/35ccd3286e538bd2.js +0 -1
  722. package/.next/static/chunks/4a7396c9a77e64d5.js +0 -1
  723. package/.next/static/chunks/50aead33b660f05c.js +0 -1
  724. package/.next/static/chunks/571033caca823138.js +0 -1
  725. package/.next/static/chunks/5a6fc30cd64085b4.css +0 -1
  726. package/.next/static/chunks/5c2072ad938de8ed.js +0 -1
  727. package/.next/static/chunks/7f732ea69e643219.js +0 -2
  728. package/.next/static/chunks/843e1dfdc28e1385.js +0 -1
  729. package/.next/static/chunks/9dad7fd31627df80.js +0 -1
  730. package/.next/static/chunks/a02c1f50ff00204f.js +0 -1
  731. package/.next/static/chunks/a055d4b2866ff8d4.js +0 -1
  732. package/.next/static/chunks/afb7c5a4255f4081.js +0 -3
  733. package/.next/static/chunks/b760a3a9c2c8be28.js +0 -1
  734. package/.next/static/chunks/b9b9d7565bc2c2ad.js +0 -1
  735. package/.next/static/chunks/db281fdc89c063c5.js +0 -1
  736. package/.next/static/chunks/dcdd95180149fa10.js +0 -1
  737. package/.next/static/chunks/ebd89051637b9a47.js +0 -4
  738. package/.next/static/chunks/f3ec9fd77a8618b1.js +0 -19
  739. package/.next/static/chunks/f9db24028d8c058e.js +0 -1
  740. package/.next/static/chunks/fb640f50455ba34f.js +0 -1
  741. package/.next/static/chunks/turbopack-b9690cacbf9fe48c.js +0 -3
  742. /package/.next/standalone/packages/ui/.next/static/{T_KGFP0pHt_xSaaYUJa3L → gmEkSwWc7AIWzMK9b0WXr}/_buildManifest.js +0 -0
  743. /package/.next/standalone/packages/ui/.next/static/{T_KGFP0pHt_xSaaYUJa3L → gmEkSwWc7AIWzMK9b0WXr}/_clientMiddlewareManifest.json +0 -0
  744. /package/.next/standalone/packages/ui/.next/static/{T_KGFP0pHt_xSaaYUJa3L → gmEkSwWc7AIWzMK9b0WXr}/_ssgManifest.js +0 -0
  745. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/gmEkSwWc7AIWzMK9b0WXr}/_buildManifest.js +0 -0
  746. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/gmEkSwWc7AIWzMK9b0WXr}/_clientMiddlewareManifest.json +0 -0
  747. /package/.next/{standalone/packages/ui/dist/static/4ZnYN1WbN4LGJQOwP6FkT → static/gmEkSwWc7AIWzMK9b0WXr}/_ssgManifest.js +0 -0
@@ -1,490 +0,0 @@
1
- ---
2
- status: complete
3
- created: '2025-11-16'
4
- tags:
5
- - web
6
- - performance
7
- - ux
8
- - v0.3
9
- priority: high
10
- created_at: '2025-11-16T13:27:26.767Z'
11
- updated_at: '2025-11-17T01:09:49.197Z'
12
- completed_at: '2025-11-17T01:09:49.197Z'
13
- completed: '2025-11-17'
14
- transitions:
15
- - status: complete
16
- at: '2025-11-17T01:09:49.197Z'
17
- ---
18
-
19
- # Web App Navigation Performance Optimization
20
-
21
- > **Status**: ✅ Complete · **Priority**: High · **Created**: 2025-11-16 · **Tags**: web, performance, ux, v0.3
22
-
23
- **Project**: lean-spec
24
- **Team**: Core Development
25
-
26
- ## Overview
27
-
28
- **The Problem**: Navigating between specs and sub-specs on https://lean-spec-web.vercel.app feels slow (600ms-1.2s per navigation), creating a sluggish user experience that undermines the "realtime" feel we want for v0.3.
29
-
30
- **Root Cause**: The spec detail page (`/specs/[id]`) uses full server-side rendering with `export const dynamic = 'force-dynamic'`, meaning every navigation:
31
-
32
- 1. Makes a full page server request (no client-side navigation)
33
- 2. Triggers filesystem reads even with 60s cache (cold starts: ~500ms-1s)
34
- 3. Fetches ALL specs for sidebar on every page load
35
- 4. Parses markdown on server for every render
36
- 5. No prefetching, no client-side caching, no optimistic UI
37
-
38
- **Why It Matters**:
39
- - Users navigate between specs frequently during spec review/writing
40
- - Slow navigation breaks flow state and creates frustration
41
- - Competitive apps (Notion, Linear, GitHub) feel instant (<100ms)
42
- - Critical for v0.3 launch credibility
43
-
44
- **What We Need**: Hybrid rendering architecture that achieves:
45
- - **Initial load**: Server-rendered for SEO and fast first paint (~200ms)
46
- - **Subsequent navigation**: Client-side transitions (<100ms)
47
- - **Data fetching**: API routes with aggressive caching and prefetching
48
- - **Optimistic UI**: Instant feedback while data loads in background
49
-
50
- ## Design
51
-
52
- ### Current Architecture (Slow)
53
-
54
- ```
55
- User clicks spec → Full page request → Vercel serverless function
56
-
57
- Cold start (~500ms)
58
-
59
- Filesystem read (~50-100ms)
60
-
61
- Load ALL specs for sidebar (~50ms)
62
-
63
- Parse markdown (~50-100ms)
64
-
65
- Server render HTML
66
-
67
- Send to client
68
-
69
- Client hydrates
70
-
71
- Total: 600ms-1.2s per navigation 😱
72
- ```
73
-
74
- ### Target Architecture (Fast)
75
-
76
- ```
77
- Initial Load (Server-Rendered):
78
- User → Server → Filesystem → Parse → HTML (200ms)
79
-
80
- Subsequent Navigation (Client-Side):
81
- User clicks → Client state update (instant)
82
-
83
- Check cache → Hit? Render immediately (<50ms)
84
-
85
- Miss? → API request → Response (~100ms)
86
-
87
- Background: Prefetch adjacent specs
88
-
89
- Total: <100ms per navigation ✨
90
- ```
91
-
92
- ### Three-Tier Optimization Strategy
93
-
94
- **Tier 1: Route Segment Config (Immediate - 30 min)**
95
- ```tsx
96
- // packages/web/src/app/specs/[id]/page.tsx
97
- export const revalidate = 60; // Cache rendered pages for 60s
98
- export const dynamicParams = true; // Generate new pages on demand
99
- ```
100
-
101
- **Impact**: 50-70% faster for repeat visits to same spec
102
- **Trade-off**: Stale data for up to 60s (acceptable given filesystem cache is also 60s)
103
-
104
- **Tier 2: Hybrid Rendering (Primary - 1-2 days)**
105
-
106
- Split page into server + client components:
107
-
108
- ```tsx
109
- // Server component (initial load only)
110
- export default async function SpecDetailPage({ params }) {
111
- const [spec, allSpecs] = await Promise.all([
112
- getSpecById(id),
113
- getSpecs() // For sidebar
114
- ]);
115
-
116
- return (
117
- <SpecDetailClient
118
- initialSpec={spec}
119
- initialSpecs={allSpecs}
120
- />
121
- );
122
- }
123
-
124
- // Client component (handles all navigation)
125
- 'use client';
126
- function SpecDetailClient({ initialSpec, initialSpecs }) {
127
- const [currentSpec, setCurrentSpec] = useState(initialSpec);
128
- const [currentSubSpec, setCurrentSubSpec] = useState<string | null>(null);
129
-
130
- // Client-side cache with SWR
131
- const { data: spec, isLoading } = useSWR(
132
- `/api/specs/${currentSpec.id}`,
133
- { fallbackData: currentSpec, revalidateOnFocus: false }
134
- );
135
-
136
- // Prefetch on hover
137
- const prefetchSpec = (specId: string) => {
138
- fetch(`/api/specs/${specId}`); // Warm cache
139
- };
140
-
141
- // Instant sub-spec switching (no network)
142
- const switchSubSpec = (fileName: string) => {
143
- setCurrentSubSpec(fileName); // Instant UI update
144
- };
145
-
146
- return (
147
- <div>
148
- <SpecsNavSidebar
149
- specs={initialSpecs}
150
- onSpecHover={prefetchSpec}
151
- onSpecClick={(id) => {
152
- setCurrentSpec(specs.find(s => s.id === id)!);
153
- router.push(`/specs/${id}`, { scroll: false });
154
- }}
155
- />
156
-
157
- <SubSpecTabs
158
- subSpecs={spec.subSpecs}
159
- current={currentSubSpec}
160
- onChange={switchSubSpec} // Instant
161
- />
162
-
163
- <MarkdownContent content={currentContent} />
164
- </div>
165
- );
166
- }
167
- ```
168
-
169
- **Key Changes:**
170
- 1. **API routes** for data fetching (not in page component)
171
- 2. **SWR** for client-side caching with stale-while-revalidate
172
- 3. **Prefetching** on sidebar hover (warm cache before click)
173
- 4. **Optimistic UI** for sub-spec switching (instant, no network)
174
- 5. **Shallow routing** (`scroll: false`) to avoid full page loads
175
-
176
- **Tier 3: Advanced Optimizations (Future - 2-3 days)**
177
-
178
- 1. **React Query** (more powerful than SWR)
179
- - Automatic background refetching
180
- - Optimistic updates
181
- - Mutation support for future edit features
182
-
183
- 2. **Virtual scrolling** for sidebar (if >100 specs)
184
-
185
- 3. **Service worker caching** for offline support
186
-
187
- ### API Routes Design
188
-
189
- ```typescript
190
- // packages/web/src/app/api/specs/[id]/route.ts
191
- export async function GET(
192
- request: Request,
193
- { params }: { params: Promise<{ id: string }> }
194
- ) {
195
- const { id } = await params;
196
- const spec = await getSpecById(id);
197
-
198
- return NextResponse.json({ spec }, {
199
- headers: {
200
- 'Cache-Control': 'public, s-maxage=60, stale-while-revalidate=120'
201
- }
202
- });
203
- }
204
-
205
- // packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts
206
- export async function GET(
207
- request: Request,
208
- { params }: { params: Promise<{ id: string; file: string }> }
209
- ) {
210
- const { id, file } = await params;
211
- const spec = await getSpecById(id);
212
- const subSpec = spec?.subSpecs?.find(s => s.file === file);
213
-
214
- return NextResponse.json({ subSpec }, {
215
- headers: {
216
- 'Cache-Control': 'public, s-maxage=60, stale-while-revalidate=120'
217
- }
218
- });
219
- }
220
- ```
221
-
222
- ### Performance Targets
223
-
224
- | Metric | Current | Tier 1 | Tier 2 | Tier 3 |
225
- |--------|---------|--------|--------|--------|
226
- | **Initial Page Load** | ~600ms | ~300ms | ~200ms | ~150ms |
227
- | **Same Spec (Cached)** | ~600ms | ~100ms | ~50ms | ~10ms |
228
- | **Different Spec** | ~800ms | ~400ms | ~100ms | ~50ms |
229
- | **Sub-Spec Switch** | ~600ms | ~600ms | **~10ms** | **~5ms** |
230
- | **Prefetched Spec** | ~800ms | ~400ms | **~50ms** | **~10ms** |
231
- | **Cold Start Penalty** | Yes (500ms) | Yes | Yes | Yes |
232
-
233
- **Success Criteria:**
234
- - ✅ Sub-spec navigation feels instant (<50ms perceived)
235
- - ✅ Spec navigation <100ms for cached/prefetched
236
- - ✅ Initial load still fast (<300ms)
237
- - ✅ No degradation in SEO or accessibility
238
- - ✅ Memory usage remains reasonable (<50MB client cache)
239
-
240
- ## Plan
241
-
242
- ### Phase 1: Tier 1 - Quick Cache Config (Day 1 - 1-2 hours)
243
-
244
- **Goal**: Test route segment caching to validate approach
245
-
246
- - [ ] Add `revalidate: 60` to spec detail page
247
- - [ ] Add `dynamicParams: true` for on-demand generation
248
- - [ ] Deploy to Vercel staging
249
- - [ ] Measure performance with Chrome DevTools
250
- - [ ] Document improvement (expect 50-70% on repeat visits)
251
- - [ ] If successful, proceed to Tier 2; if minimal gain, skip Tier 1
252
-
253
- ### Phase 2: Tier 2 - Hybrid Rendering (Days 2-3 - 2 days)
254
-
255
- **Day 2: API Routes + Client Components**
256
- - [ ] Create API route: `GET /api/specs/[id]`
257
- - [ ] Create API route: `GET /api/specs/[id]/subspecs/[file]`
258
- - [ ] Add cache headers (`s-maxage=60, stale-while-revalidate=120`)
259
- - [ ] Split `SpecDetailPage` into server + client components
260
- - [ ] Install SWR: `pnpm add swr`
261
- - [ ] Implement `SpecDetailClient` with SWR caching
262
- - [ ] Test API routes return correct data
263
-
264
- **Day 3: Prefetching + Optimistic UI**
265
- - [ ] Add hover prefetch to `SpecsNavSidebar`
266
- - [ ] Implement instant sub-spec switching (no network)
267
- - [ ] Add loading states (skeleton) for slow connections
268
- - [ ] Add error boundaries for failed fetches
269
- - [ ] Update routing to use shallow navigation
270
- - [ ] Test navigation feels instant (<100ms)
271
-
272
- ### Phase 3: Performance Testing (Day 4 - 1 day)
273
-
274
- **Benchmarking:**
275
- - [ ] Initial page load time (target: <300ms)
276
- - [ ] Sub-spec switch time (target: <50ms)
277
- - [ ] Spec navigation (cached) (target: <100ms)
278
- - [ ] Spec navigation (prefetched) (target: <100ms)
279
- - [ ] Cold start penalty on Vercel (measure only)
280
- - [ ] Memory usage after 50 navigations (<50MB)
281
-
282
- **Real-World Testing:**
283
- - [ ] Test on slow 3G connection
284
- - [ ] Test with 100+ specs (sidebar performance)
285
- - [ ] Test browser back/forward buttons work
286
- - [ ] Test deep linking to sub-specs works
287
- - [ ] Test SEO still works (view-source shows content)
288
-
289
- ### Phase 4: Deployment (Day 5 - 0.5 days)
290
-
291
- - [ ] Deploy to Vercel staging
292
- - [ ] Run Lighthouse audit (target: 90+ performance)
293
- - [ ] Test on mobile devices
294
- - [ ] Verify no regressions in functionality
295
- - [ ] Deploy to production
296
- - [ ] Monitor Vercel analytics for improvements
297
-
298
- ### Phase 5: Tier 3 - Advanced (Future - Optional)
299
-
300
- - [ ] Replace SWR with React Query (if needed)
301
- - [ ] Add virtual scrolling to sidebar (if >100 specs)
302
- - [ ] Add service worker for offline caching
303
- - [ ] Measure sub-10ms navigation times
304
-
305
- ## Test
306
-
307
- ### Performance Testing
308
-
309
- **Automated Benchmarks:**
310
- ```bash
311
- # Run Lighthouse CI
312
- pnpm test:lighthouse
313
-
314
- # Custom performance tests
315
- pnpm test:perf
316
- ```
317
-
318
- **Manual Testing Checklist:**
319
-
320
- **Initial Load (Server-Rendered):**
321
- - [ ] Spec detail page loads in <300ms (Fast 3G)
322
- - [ ] Content visible before JavaScript loads
323
- - [ ] SEO tags present in HTML source
324
- - [ ] Lighthouse Performance score >90
325
-
326
- **Client-Side Navigation:**
327
- - [ ] Sub-spec switching feels instant (<50ms perceived)
328
- - [ ] Spec navigation <100ms when cached
329
- - [ ] Prefetching works (hover → faster click)
330
- - [ ] Loading states appear for slow requests (>200ms)
331
- - [ ] No flash of wrong content
332
-
333
- **Browser Features:**
334
- - [ ] Back button works correctly
335
- - [ ] Forward button works correctly
336
- - [ ] Deep links to sub-specs work (`/specs/82?subspec=DESIGN.md`)
337
- - [ ] URL updates on navigation
338
- - [ ] Page refresh loads correct content
339
-
340
- **Edge Cases:**
341
- - [ ] Offline → online transition works
342
- - [ ] Cache invalidation works (API endpoint)
343
- - [ ] Network error shows graceful fallback
344
- - [ ] 404 for non-existent specs
345
- - [ ] Memory doesn't leak over 100 navigations
346
-
347
- ### Regression Testing
348
-
349
- **Functionality:**
350
- - [ ] All existing features work (sidebar, search, filters)
351
- - [ ] Markdown rendering correct
352
- - [ ] Code highlighting works
353
- - [ ] Table of contents works
354
- - [ ] Back to top button works
355
-
356
- **Accessibility:**
357
- - [ ] Keyboard navigation works
358
- - [ ] Screen reader announces page changes
359
- - [ ] Focus management correct
360
- - [ ] ARIA labels correct
361
-
362
- **SEO:**
363
- - [ ] Meta tags correct
364
- - [ ] Open Graph tags work
365
- - [ ] Twitter cards work
366
- - [ ] Structured data present
367
-
368
- ## Notes
369
-
370
- ### Performance Measurement Tools
371
-
372
- **Chrome DevTools:**
373
- ```javascript
374
- // Measure navigation time
375
- performance.mark('nav-start');
376
- // ... navigation happens
377
- performance.mark('nav-end');
378
- performance.measure('navigation', 'nav-start', 'nav-end');
379
- console.log(performance.getEntriesByName('navigation')[0].duration);
380
- ```
381
-
382
- **Real User Monitoring:**
383
- ```typescript
384
- // Add to SpecDetailClient
385
- useEffect(() => {
386
- const navigationTime = performance.now();
387
- analytics.track('spec_navigation', {
388
- specId: spec.id,
389
- loadTime: navigationTime,
390
- cached: !isLoading
391
- });
392
- }, [spec.id]);
393
- ```
394
-
395
- **Vercel Analytics:**
396
- - Built-in Web Vitals tracking
397
- - Real-world performance data
398
- - Geographic distribution
399
-
400
- ### Key Design Decisions
401
-
402
- **Why Tier 2 (Hybrid) over Tier 1 (Cache) alone?**
403
- - Tier 1 only helps repeat visits to *same* spec
404
- - Users navigate between *different* specs frequently
405
- - Tier 2 enables prefetching and client-side transitions
406
- - Sub-spec switching needs client-side (no network round-trip)
407
-
408
- **Why SWR over React Query?**
409
- - Simpler API for our use case
410
- - Smaller bundle size (~5KB vs ~13KB)
411
- - Built-in stale-while-revalidate pattern
412
- - Can upgrade to React Query later if needed
413
-
414
- **Why keep server rendering?**
415
- - SEO requires server-rendered HTML
416
- - Fast initial load (no client JS required)
417
- - Progressive enhancement (works without JS)
418
- - Best of both worlds: server first load, client subsequent
419
-
420
- **Why not ISR immediately?**
421
- **Why not ISR?**
422
- - Filesystem mode already has 60s caching (same benefit)
423
- - Adds build complexity without clear win
424
- - Cold starts acceptable with Tier 1+2 optimizations
425
- - Can revisit if cold starts become issue
426
- ### Alternative Approaches Considered
427
-
428
- **1. Full Static Generation (SSG)**
429
- - **Pros**: Fastest possible (CDN cached HTML)
430
- - **Cons**: Requires rebuild on every spec change, breaks realtime updates
431
- - **Verdict**: ❌ Conflicts with v0.3 realtime goals
432
-
433
- **2. Full Client-Side Rendering (CSR)**
434
- - **Pros**: Instant navigation, simple architecture
435
- - **Cons**: Bad SEO, slow initial load, no progressive enhancement
436
- - **Verdict**: ❌ SEO is critical for public showcase
437
-
438
- **3. Server Components Only (Current Approach)**
439
- - **Pros**: Simple, SEO-friendly, no client JS
440
- - **Cons**: Slow navigation, no caching, no prefetching
441
- - **Verdict**: ❌ Too slow for good UX
442
-
443
- **4. Hybrid Rendering (Chosen Approach)**
444
- - **Pros**: SEO + fast navigation, best of both worlds
445
- - **Cons**: More complex, requires API routes
446
- - **Verdict**: ✅ Optimal balance
447
-
448
- ### Dependencies & Relationships
449
-
450
- **This spec depends on:**
451
- - Spec 082 (web-realtime-sync-architecture) - Provides filesystem source and service layer
452
- - Existing spec detail page (`/specs/[id]/page.tsx`)
453
- - Next.js 14+ App Router features
454
-
455
- **This spec enables:**
456
- - v0.3 launch with acceptable performance
457
- - Better user experience for spec navigation
458
- - Foundation for future features (edit, comments)
459
-
460
- **Related specs:**
461
- - Spec 081 (web-app-ux-redesign) - UX/UI improvements
462
- - Spec 068 (live-specs-ux-enhancements) - Phase 2 UX work
463
- - Spec 035 (live-specs-showcase) - Public showcase goals
464
-
465
- ### Open Questions
466
-
467
- - [ ] What's acceptable cache size? (Start with 20 specs × 200KB = 4MB)
468
- - [ ] Prefetch all specs on initial load? (No - only prefetch on hover)
469
- - [ ] Virtual scroll sidebar? (Only if >100 specs becomes issue)
470
- - [ ] React Query vs SWR? (Start with SWR, migrate if needed)
471
-
472
- ### Success Metrics
473
-
474
- **Quantitative:**
475
- - Navigation time: 600ms → <100ms (83% reduction)
476
- - Sub-spec switch: 600ms → <50ms (92% reduction)
477
- - Lighthouse Performance: Unknown → >90
478
- - Time to Interactive: Unknown → <2s
479
-
480
- **Qualitative:**
481
- - Navigation feels instant (user perception)
482
- - No more frustration during spec review sessions
483
- - Competitive with modern web apps (Linear, Notion)
484
- - Confidence to launch v0.3 publicly
485
-
486
- **Business Impact:**
487
- - Higher engagement (more specs viewed per session)
488
- - Lower bounce rate (users don't leave due to slow navigation)
489
- - Better first impression for new users
490
- - Validates LeanSpec as production-ready tool