@shepai/cli 1.106.3-pr326.2d86e1d → 1.106.4-pr326.f9b6ed2

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 (129) hide show
  1. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.d.ts.map +1 -1
  2. package/dist/src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.js +3 -1
  3. package/dist/src/presentation/web/hooks/use-sound.d.ts.map +1 -1
  4. package/dist/src/presentation/web/hooks/use-sound.js +13 -3
  5. package/dist/tsconfig.build.tsbuildinfo +1 -1
  6. package/package.json +1 -1
  7. package/web/.next/BUILD_ID +1 -1
  8. package/web/.next/build-manifest.json +2 -2
  9. package/web/.next/fallback-build-manifest.json +2 -2
  10. package/web/.next/prerender-manifest.json +3 -3
  11. package/web/.next/required-server-files.js +2 -2
  12. package/web/.next/required-server-files.json +2 -2
  13. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +19 -19
  14. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  15. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  16. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
  17. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  18. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  19. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +25 -25
  20. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  21. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  22. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +17 -17
  23. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  24. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  25. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +19 -19
  26. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  27. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  28. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
  29. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  30. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  31. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +25 -25
  32. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  33. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  34. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +17 -17
  35. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  36. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  37. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +17 -17
  38. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  39. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  40. package/web/.next/server/app/_global-error.html +2 -2
  41. package/web/.next/server/app/_global-error.rsc +1 -1
  42. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  43. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  44. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  45. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  46. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  47. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  48. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  49. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  50. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  51. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  52. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  53. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  54. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  55. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  57. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  58. package/web/.next/server/chunks/[root-of-the-server]__f47bb8a5._.js +1 -1
  59. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  60. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  61. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_7fc19e0a.js +1 -1
  62. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_7fc19e0a.js.map +1 -1
  63. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_c3aca900.js +1 -1
  64. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_c3aca900.js.map +1 -1
  65. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  66. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  67. package/web/.next/server/chunks/ssr/[root-of-the-server]__13dc8e37._.js +1 -1
  68. package/web/.next/server/chunks/ssr/[root-of-the-server]__13dc8e37._.js.map +1 -1
  69. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  70. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  71. package/web/.next/server/chunks/ssr/[root-of-the-server]__3a2d3067._.js +1 -1
  72. package/web/.next/server/chunks/ssr/[root-of-the-server]__3a2d3067._.js.map +1 -1
  73. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  74. package/web/.next/server/chunks/ssr/[root-of-the-server]__5f776c10._.js +1 -1
  75. package/web/.next/server/chunks/ssr/[root-of-the-server]__5f776c10._.js.map +1 -1
  76. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  77. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  78. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  79. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +2 -2
  80. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  81. package/web/.next/server/chunks/ssr/[root-of-the-server]__c03a4370._.js +1 -1
  82. package/web/.next/server/chunks/ssr/[root-of-the-server]__c03a4370._.js.map +1 -1
  83. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  84. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  85. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  86. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  87. package/web/.next/server/chunks/ssr/{_350fda95._.js → _4dbfa2c4._.js} +2 -2
  88. package/web/.next/server/chunks/ssr/{_350fda95._.js.map → _4dbfa2c4._.js.map} +1 -1
  89. package/web/.next/server/chunks/ssr/{_148140cb._.js → _63920708._.js} +2 -2
  90. package/web/.next/server/chunks/ssr/{_148140cb._.js.map → _63920708._.js.map} +1 -1
  91. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  92. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  93. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  94. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  95. package/web/.next/server/chunks/ssr/_e6f2da4f._.js.map +1 -1
  96. package/web/.next/server/chunks/ssr/{_09345032._.js → _f479e2e8._.js} +2 -2
  97. package/web/.next/server/chunks/ssr/{_09345032._.js.map → _f479e2e8._.js.map} +1 -1
  98. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  99. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  100. package/web/.next/server/chunks/ssr/src_presentation_web_9f444130._.js +2 -2
  101. package/web/.next/server/chunks/ssr/src_presentation_web_9f444130._.js.map +1 -1
  102. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_85d37ebe.js +1 -1
  103. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_85d37ebe.js.map +1 -1
  104. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  105. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  106. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  107. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  108. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  109. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  110. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  111. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  112. package/web/.next/server/chunks/ssr/src_presentation_web_d7392251._.js +2 -2
  113. package/web/.next/server/chunks/ssr/src_presentation_web_d7392251._.js.map +1 -1
  114. package/web/.next/server/pages/500.html +2 -2
  115. package/web/.next/server/server-reference-manifest.js +1 -1
  116. package/web/.next/server/server-reference-manifest.json +30 -30
  117. package/web/.next/static/chunks/{41c6f0c0a51d55c0.js → 01ba9af84561f1de.js} +1 -1
  118. package/web/.next/static/chunks/{a126ccd4e7c0ff4b.js → 1bcb9cea556264be.js} +1 -1
  119. package/web/.next/static/chunks/{f59bd516c57406f7.js → 1efd560424f964bc.js} +1 -1
  120. package/web/.next/static/chunks/{b744fa8c0ec5f4ef.js → 47cb562cdfd658ee.js} +1 -1
  121. package/web/.next/static/chunks/{be1de18677065920.js → 7974892204cb77af.js} +1 -1
  122. package/web/.next/static/chunks/{125326eff68aa819.js → 99ae01f6487799a3.js} +2 -2
  123. package/web/.next/static/chunks/{0142224c5471ee38.js → a2a134272e350be8.js} +2 -2
  124. package/web/.next/static/chunks/{b01b8b69f482e41e.js → bef25e3de3ccc184.js} +1 -1
  125. package/web/.next/static/chunks/{6c1aca2a14151ad0.js → d001c315a91fa0d6.js} +1 -1
  126. package/web/.next/static/chunks/{4ea34a453fed162c.js → ec3c3274f43409e6.js} +2 -2
  127. /package/web/.next/static/{kzC4UZpGoyGxtfEZ-FWzG → AKX-fGrJ4g-AmQgp32F2N}/_buildManifest.js +0 -0
  128. /package/web/.next/static/{kzC4UZpGoyGxtfEZ-FWzG → AKX-fGrJ4g-AmQgp32F2N}/_clientMiddlewareManifest.json +0 -0
  129. /package/web/.next/static/{kzC4UZpGoyGxtfEZ-FWzG → AKX-fGrJ4g-AmQgp32F2N}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAQ9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAiD3F,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAGzC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,SAAS,GACV,EAAE,sBAAsB,2CAwTxB"}
1
+ {"version":3,"file":"feature-drawer-tabs.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/feature-drawer-tabs/feature-drawer-tabs.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAS9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AACzF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAC;AACjG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAMxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAQ9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uDAAuD,CAAC;AAiD3F,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,eAAe,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,gFAAgF;IAChF,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mFAAmF;IACnF,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAGzC,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC1E,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,QAAQ,CAAC,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC3E,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC5E,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAwBD,wBAAgB,iBAAiB,CAAC,EAChC,WAAW,EACX,SAAS,EACT,UAAU,EACV,MAAM,EACN,OAAO,EACP,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,SAAS,GACV,EAAE,sBAAsB,2CA2TxB"}
@@ -66,7 +66,6 @@ const TAB_FETCHERS = {
66
66
  };
67
67
  export function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab, prdData, prdSelections, onPrdSelect, onPrdApprove, onPrdReject, isPrdLoading, techData, onTechApprove, onTechReject, isTechLoading, productData, mergeData, onMergeApprove, onMergeReject, isMergeLoading, isRejecting, chatInput, onChatInputChange, sseEvents, }) {
68
68
  const pathname = usePathname();
69
- const featureLogs = useFeatureLogs(featureId);
70
69
  const visibleTabs = useMemo(() => computeVisibleTabs(featureNode), [featureNode]);
71
70
  const visibleTabDefs = useMemo(() => ALL_TABS.filter((t) => visibleTabs.includes(t.key)), [visibleTabs]);
72
71
  // Derive the base path (without tab segment) from the current pathname.
@@ -86,6 +85,9 @@ export function FeatureDrawerTabs({ featureNode, featureId, initialTab, urlTab,
86
85
  // eslint-disable-next-line react-hooks/exhaustive-deps
87
86
  }, []);
88
87
  const [activeTab, setActiveTab] = useState(effectiveInitial);
88
+ // Only subscribe to log SSE when the log tab is active to avoid
89
+ // opening an EventSource connection on every drawer open.
90
+ const featureLogs = useFeatureLogs(activeTab === 'log' ? featureId : null);
89
91
  const { tabs, fetchTab, refreshTab } = useTabDataFetch(featureId, TAB_FETCHERS);
90
92
  // Sync URL when active tab changes via user interaction.
91
93
  // Use window.history.pushState instead of router.push to avoid triggering a
@@ -1 +1 @@
1
- {"version":3,"file":"use-sound.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-sound.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,WAAW,oWA6BP,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CAgDvF;AAED,qEAAqE;AACrE,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"use-sound.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/hooks/use-sound.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,WAAW,oWA6BP,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAgBD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,GAAE,eAAoB,GAAG,cAAc,CA8CvF;AAED,qEAAqE;AACrE,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -31,6 +31,18 @@ const SOUND_NAMES = [
31
31
  'type_04',
32
32
  'type_05',
33
33
  ];
34
+ // Module-level cache: Audio objects are created once per sound name and reused
35
+ // across component mounts to avoid re-downloading WAV files on every drawer open.
36
+ const audioCache = new Map();
37
+ function getOrCreateAudio(name) {
38
+ let audio = audioCache.get(name);
39
+ if (!audio) {
40
+ audio = new Audio(`/sounds/${name}.wav`);
41
+ audio.preload = 'auto';
42
+ audioCache.set(name, audio);
43
+ }
44
+ return audio;
45
+ }
34
46
  export function useSound(name, options = {}) {
35
47
  const { volume = 1, loop = false } = options;
36
48
  const { enabled } = useSoundEnabled();
@@ -39,8 +51,7 @@ export function useSound(name, options = {}) {
39
51
  useEffect(() => {
40
52
  if (typeof window === 'undefined')
41
53
  return;
42
- const audio = new Audio(`/sounds/${name}.wav`);
43
- audio.preload = 'auto';
54
+ const audio = getOrCreateAudio(name);
44
55
  audio.loop = loop;
45
56
  audio.volume = Math.max(0, Math.min(1, volume));
46
57
  audio.addEventListener('ended', () => {
@@ -49,7 +60,6 @@ export function useSound(name, options = {}) {
49
60
  audioRef.current = audio;
50
61
  return () => {
51
62
  audio.pause();
52
- audio.removeAttribute('src');
53
63
  audioRef.current = null;
54
64
  isPlayingRef.current = false;
55
65
  };