@beyondwork/docx-react-component 1.0.0

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 (690) hide show
  1. package/.codex/config.toml +5 -0
  2. package/.corepack/v1/pnpm/10.30.3/.corepack +1 -0
  3. package/.corepack/v1/pnpm/10.30.3/LICENSE +22 -0
  4. package/.corepack/v1/pnpm/10.30.3/README.md +240 -0
  5. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +6 -0
  6. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +5 -0
  7. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +195400 -0
  8. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +2 -0
  9. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  10. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  11. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  12. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  13. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +31 -0
  14. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +22 -0
  15. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +193 -0
  16. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +27 -0
  17. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  18. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  19. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +10119 -0
  20. package/.corepack/v1/pnpm/10.30.3/package.json +192 -0
  21. package/.cursor/mcp.json +7 -0
  22. package/.github/workflows/ci.yml +35 -0
  23. package/.mcp.json +7 -0
  24. package/.openclaw/workspace-state.json +4 -0
  25. package/.pnpmrc.json +1 -0
  26. package/.wave-launch.sh +7 -0
  27. package/.workspace-marker +1 -0
  28. package/AGENTS.md +78 -0
  29. package/CHANGELOG.md +177 -0
  30. package/DESIGN.md +929 -0
  31. package/HEARTBEAT.md +7 -0
  32. package/IDENTITY.md +23 -0
  33. package/LICENSE.md +31 -0
  34. package/README.md +180 -0
  35. package/SOUL.md +36 -0
  36. package/TOOLS.md +40 -0
  37. package/USER.md +17 -0
  38. package/docs/README.md +107 -0
  39. package/docs/agents/wave-cont-eval-role.md +36 -0
  40. package/docs/agents/wave-cont-qa-role.md +52 -0
  41. package/docs/agents/wave-deploy-verifier-role.md +34 -0
  42. package/docs/agents/wave-design-role.md +47 -0
  43. package/docs/agents/wave-documentation-role.md +34 -0
  44. package/docs/agents/wave-infra-role.md +34 -0
  45. package/docs/agents/wave-integration-role.md +37 -0
  46. package/docs/agents/wave-launcher-role.md +41 -0
  47. package/docs/agents/wave-orchestrator-role.md +52 -0
  48. package/docs/agents/wave-planner-role.md +39 -0
  49. package/docs/agents/wave-security-role.md +40 -0
  50. package/docs/architecture/docx/README.md +10 -0
  51. package/docs/architecture/future/README.md +8 -0
  52. package/docs/architecture/ooxml-upgrade-analysis.md +134 -0
  53. package/docs/architecture/platform/shared-openxml-editor-platform.md +153 -0
  54. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +187 -0
  55. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +150 -0
  56. package/docs/comment-redline-overview.md +350 -0
  57. package/docs/concepts/context7-vs-skills.md +118 -0
  58. package/docs/concepts/operating-modes.md +91 -0
  59. package/docs/concepts/runtime-agnostic-orchestration.md +111 -0
  60. package/docs/concepts/what-is-a-wave.md +217 -0
  61. package/docs/context7/bundles.json +222 -0
  62. package/docs/context7/planner-agent/README.md +28 -0
  63. package/docs/context7/planner-agent/manifest.json +83 -0
  64. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +3283 -0
  65. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +1699 -0
  66. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +2251 -0
  67. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +1729 -0
  68. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +3747 -0
  69. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +1675 -0
  70. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +1173 -0
  71. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +5211 -0
  72. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +24 -0
  73. package/docs/evals/arm-templates/README.md +13 -0
  74. package/docs/evals/arm-templates/full-wave.json +15 -0
  75. package/docs/evals/arm-templates/single-agent.json +15 -0
  76. package/docs/evals/benchmark-catalog.json +670 -0
  77. package/docs/evals/cases/README.md +47 -0
  78. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +73 -0
  79. package/docs/evals/cases/wave-contradiction-conflict.json +104 -0
  80. package/docs/evals/cases/wave-expert-routing-preservation.json +69 -0
  81. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +81 -0
  82. package/docs/evals/cases/wave-premature-closure-guard.json +71 -0
  83. package/docs/evals/cases/wave-silo-cross-agent-state.json +77 -0
  84. package/docs/evals/cases/wave-simultaneous-lockstep.json +92 -0
  85. package/docs/evals/external-benchmarks.json +85 -0
  86. package/docs/evals/external-command-config.sample.json +9 -0
  87. package/docs/evals/external-command-config.swe-bench-pro.json +8 -0
  88. package/docs/evals/pilots/README.md +47 -0
  89. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +64 -0
  90. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +111 -0
  91. package/docs/evals/wave-benchmark-program.md +302 -0
  92. package/docs/guides/planner.md +220 -0
  93. package/docs/guides/recommendations-0.8.9.md +133 -0
  94. package/docs/guides/signal-wrappers.md +165 -0
  95. package/docs/guides/terminal-surfaces.md +96 -0
  96. package/docs/image copy.png +0 -0
  97. package/docs/image.png +0 -0
  98. package/docs/images/image.png +0 -0
  99. package/docs/legal-feedback-architecture.md +498 -0
  100. package/docs/plans/component-cutover-matrix.json +1072 -0
  101. package/docs/plans/component-cutover-matrix.md +307 -0
  102. package/docs/plans/context7-wave-orchestrator.md +155 -0
  103. package/docs/plans/current-state.md +198 -0
  104. package/docs/plans/docx/README.md +9 -0
  105. package/docs/plans/examples/wave-benchmark-improvement.md +108 -0
  106. package/docs/plans/examples/wave-example-live-proof.md +435 -0
  107. package/docs/plans/master-plan.md +224 -0
  108. package/docs/plans/migration.md +538 -0
  109. package/docs/plans/operations/README.md +7 -0
  110. package/docs/plans/operations/wave-10-word-certification.md +87 -0
  111. package/docs/plans/operations/wave-8-railway-staging.md +153 -0
  112. package/docs/plans/operations/wave-9-manual-certification.md +73 -0
  113. package/docs/plans/platform/README.md +9 -0
  114. package/docs/plans/reference/legal-checklist-coverage.md +258 -0
  115. package/docs/plans/wave-orchestrator.md +423 -0
  116. package/docs/plans/waves/README.md +75 -0
  117. package/docs/plans/waves/completed/wave-0.md +195 -0
  118. package/docs/plans/waves/completed/wave-1.md +379 -0
  119. package/docs/plans/waves/completed/wave-10.md +670 -0
  120. package/docs/plans/waves/completed/wave-11.md +335 -0
  121. package/docs/plans/waves/completed/wave-12.md +417 -0
  122. package/docs/plans/waves/completed/wave-13.md +316 -0
  123. package/docs/plans/waves/completed/wave-14.md +319 -0
  124. package/docs/plans/waves/completed/wave-15.md +321 -0
  125. package/docs/plans/waves/completed/wave-16.md +316 -0
  126. package/docs/plans/waves/completed/wave-17.md +331 -0
  127. package/docs/plans/waves/completed/wave-18.md +328 -0
  128. package/docs/plans/waves/completed/wave-2.md +438 -0
  129. package/docs/plans/waves/completed/wave-3.md +435 -0
  130. package/docs/plans/waves/completed/wave-4.md +430 -0
  131. package/docs/plans/waves/completed/wave-5.md +430 -0
  132. package/docs/plans/waves/completed/wave-6.md +430 -0
  133. package/docs/plans/waves/completed/wave-7.md +526 -0
  134. package/docs/plans/waves/completed/wave-8.md +596 -0
  135. package/docs/plans/waves/completed/wave-9.md +552 -0
  136. package/docs/plans/waves/deferred/README.md +14 -0
  137. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +282 -0
  138. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +308 -0
  139. package/docs/plans/waves/deferred/wave-encrypted-intake.md +451 -0
  140. package/docs/plans/waves/design/README.md +5 -0
  141. package/docs/plans/waves/design/wave-1-a1.md +309 -0
  142. package/docs/plans/waves/reviews/README.md +5 -0
  143. package/docs/plans/waves/reviews/wave-0-cont-qa.md +151 -0
  144. package/docs/plans/waves/reviews/wave-1-cont-qa.md +46 -0
  145. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +51 -0
  146. package/docs/plans/waves/reviews/wave-10-cont-qa.md +24 -0
  147. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +46 -0
  148. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +55 -0
  149. package/docs/plans/waves/reviews/wave-10-regression-proof.md +23 -0
  150. package/docs/plans/waves/reviews/wave-10-release-audit.md +31 -0
  151. package/docs/plans/waves/reviews/wave-10-service-proof.md +83 -0
  152. package/docs/plans/waves/reviews/wave-10-word-certification.md +31 -0
  153. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +277 -0
  154. package/docs/plans/waves/reviews/wave-18-cont-qa.md +255 -0
  155. package/docs/plans/waves/reviews/wave-18-parity-proof.md +271 -0
  156. package/docs/plans/waves/reviews/wave-19-cont-qa.md +59 -0
  157. package/docs/plans/waves/reviews/wave-2-cont-qa.md +72 -0
  158. package/docs/plans/waves/reviews/wave-20-cont-qa.md +60 -0
  159. package/docs/plans/waves/reviews/wave-25-cont-qa.md +48 -0
  160. package/docs/plans/waves/reviews/wave-28-cont-qa.md +46 -0
  161. package/docs/plans/waves/reviews/wave-29-cont-qa.md +53 -0
  162. package/docs/plans/waves/reviews/wave-3-cont-qa.md +53 -0
  163. package/docs/plans/waves/reviews/wave-3-core-proof.md +77 -0
  164. package/docs/plans/waves/reviews/wave-3-validator-proof.md +73 -0
  165. package/docs/plans/waves/reviews/wave-32-cont-qa.md +43 -0
  166. package/docs/plans/waves/reviews/wave-33-cont-qa.md +526 -0
  167. package/docs/plans/waves/reviews/wave-34-cont-qa.md +100 -0
  168. package/docs/plans/waves/reviews/wave-35-cont-qa.md +145 -0
  169. package/docs/plans/waves/reviews/wave-4-cont-qa.md +47 -0
  170. package/docs/plans/waves/reviews/wave-4-structure-proof.md +69 -0
  171. package/docs/plans/waves/reviews/wave-5-comment-proof.md +158 -0
  172. package/docs/plans/waves/reviews/wave-5-cont-qa.md +68 -0
  173. package/docs/plans/waves/reviews/wave-6-cont-qa.md +416 -0
  174. package/docs/plans/waves/reviews/wave-6-redline-proof.md +130 -0
  175. package/docs/plans/waves/reviews/wave-7-cont-qa.md +82 -0
  176. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +85 -0
  177. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +119 -0
  178. package/docs/plans/waves/reviews/wave-7-trust-ux.md +87 -0
  179. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +128 -0
  180. package/docs/plans/waves/reviews/wave-8-cont-qa.md +92 -0
  181. package/docs/plans/waves/reviews/wave-8-live-proof.md +140 -0
  182. package/docs/plans/waves/reviews/wave-8-security.md +47 -0
  183. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +39 -0
  184. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +56 -0
  185. package/docs/plans/waves/reviews/wave-9-live-proof.md +105 -0
  186. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +152 -0
  187. package/docs/plans/waves/specs/README.md +5 -0
  188. package/docs/plans/waves/specs/wave-1-component-boundaries.md +322 -0
  189. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +323 -0
  190. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +339 -0
  191. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +509 -0
  192. package/docs/plans/waves/wave-19.md +341 -0
  193. package/docs/plans/waves/wave-20.md +308 -0
  194. package/docs/plans/waves/wave-21.md +289 -0
  195. package/docs/plans/waves/wave-22.md +221 -0
  196. package/docs/plans/waves/wave-23.md +295 -0
  197. package/docs/plans/waves/wave-24.md +286 -0
  198. package/docs/plans/waves/wave-25.md +313 -0
  199. package/docs/plans/waves/wave-26.md +300 -0
  200. package/docs/plans/waves/wave-27.md +299 -0
  201. package/docs/plans/waves/wave-28.md +368 -0
  202. package/docs/plans/waves/wave-29.md +303 -0
  203. package/docs/plans/waves/wave-30.md +307 -0
  204. package/docs/plans/waves/wave-31.md +231 -0
  205. package/docs/plans/waves/wave-32.md +152 -0
  206. package/docs/plans/waves/wave-33.md +147 -0
  207. package/docs/plans/waves/wave-34.md +148 -0
  208. package/docs/plans/waves/wave-35.md +141 -0
  209. package/docs/plans/waves/wave-36.md +146 -0
  210. package/docs/plans/xlsx/README.md +14 -0
  211. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +126 -0
  212. package/docs/reference/cli-reference.md +600 -0
  213. package/docs/reference/coordination-and-closure.md +487 -0
  214. package/docs/reference/deep-research-report (15).md +25 -0
  215. package/docs/reference/docx/README.md +10 -0
  216. package/docs/reference/legal-checklist.md +445 -0
  217. package/docs/reference/live-proof-waves.md +199 -0
  218. package/docs/reference/ooxml-compliance.md +129 -0
  219. package/docs/reference/ooxml-feature-parity-matrix.md +172 -0
  220. package/docs/reference/platform/shared-ooxml-platform-guidance.md +77 -0
  221. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +155 -0
  222. package/docs/reference/public-api.md +456 -0
  223. package/docs/reference/repository-guidance.md +58 -0
  224. package/docs/reference/runtime-config/README.md +182 -0
  225. package/docs/reference/runtime-config/claude.md +110 -0
  226. package/docs/reference/runtime-config/codex.md +82 -0
  227. package/docs/reference/runtime-config/opencode.md +93 -0
  228. package/docs/reference/sample-waves.md +105 -0
  229. package/docs/reference/skills.md +237 -0
  230. package/docs/reference/templates/AGENTS.md +78 -0
  231. package/docs/reference/templates/HEARTBEAT.md +7 -0
  232. package/docs/reference/templates/IDENTITY.md +23 -0
  233. package/docs/reference/templates/SOUL.md +36 -0
  234. package/docs/reference/templates/TOOLS.md +40 -0
  235. package/docs/reference/templates/USER.md +17 -0
  236. package/docs/reference/wave-control.md +184 -0
  237. package/docs/reference/wave-planning-lessons.md +167 -0
  238. package/docs/reference/word-review-editor-frontend-architecture.md +479 -0
  239. package/docs/reference/word-review-editor-ux-guide.md +253 -0
  240. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +137 -0
  241. package/docs/research/agent-context-sources.md +178 -0
  242. package/docs/research/coordination-failure-review.md +290 -0
  243. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +2317 -0
  244. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +219 -0
  245. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +1112 -0
  246. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +751 -0
  247. package/docs/research/xlsx/raw/README.md +13 -0
  248. package/docs/roadmap.md +174 -0
  249. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +677 -0
  250. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +274 -0
  251. package/docs/xlsx-react/README.md +38 -0
  252. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +621 -0
  253. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +948 -0
  254. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +228 -0
  255. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +809 -0
  256. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +537 -0
  257. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +520 -0
  258. package/docs/xlsx-react/xlsx-editor-research-pack.md +871 -0
  259. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +436 -0
  260. package/docs/xlsx-react/xlsx-ooxml-compliance.md +320 -0
  261. package/examples/README.md +16 -0
  262. package/memory/MEMORY.md +24 -0
  263. package/package.json +63 -0
  264. package/pnpm-workspace.yaml +4 -0
  265. package/scripts/check-no-authored-js.sh +13 -0
  266. package/scripts/context7-api-check.sh +65 -0
  267. package/scripts/context7-export-env.sh +42 -0
  268. package/scripts/run-context7-mcp.sh +8 -0
  269. package/scripts/run-workspace-tests.sh +15 -0
  270. package/scripts/start-wave-10-local.sh +189 -0
  271. package/scripts/wave-agent-attach.sh +47 -0
  272. package/scripts/wave-auto-answer.sh +118 -0
  273. package/scripts/wave-dashboard-attach.sh +13 -0
  274. package/scripts/wave-launch.sh +273 -0
  275. package/scripts/wave-overnight-supervisor.sh +145 -0
  276. package/scripts/wave-status.sh +379 -0
  277. package/scripts/wave-watch.sh +231 -0
  278. package/services/README.md +17 -0
  279. package/services/openxml-validator/Dockerfile +29 -0
  280. package/services/openxml-validator/OpenXmlValidator.Api.csproj +12 -0
  281. package/services/openxml-validator/Program.cs +436 -0
  282. package/services/openxml-validator/README.md +152 -0
  283. package/services/openxml-validator/railway.json +16 -0
  284. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +318 -0
  285. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +1302 -0
  286. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +546 -0
  287. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +146 -0
  288. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +2 -0
  289. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +818 -0
  290. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +229 -0
  291. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +121 -0
  292. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +21 -0
  293. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +1 -0
  294. package/services/react-word-editor/Dockerfile +26 -0
  295. package/services/react-word-editor/README.md +254 -0
  296. package/services/react-word-editor/app/api/certification/route.ts +79 -0
  297. package/services/react-word-editor/app/api/demo-sessions/route.ts +109 -0
  298. package/services/react-word-editor/app/api/deploy-health/route.ts +23 -0
  299. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +34 -0
  300. package/services/react-word-editor/app/api/exports/route.ts +81 -0
  301. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +100 -0
  302. package/services/react-word-editor/app/api/health/route.ts +70 -0
  303. package/services/react-word-editor/app/api/runs/[runId]/route.ts +36 -0
  304. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +85 -0
  305. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +199 -0
  306. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +45 -0
  307. package/services/react-word-editor/app/api/uploads/route.ts +70 -0
  308. package/services/react-word-editor/app/api/validate/route.ts +310 -0
  309. package/services/react-word-editor/app/certification/[runId]/page.tsx +14 -0
  310. package/services/react-word-editor/app/certification/page.tsx +32 -0
  311. package/services/react-word-editor/app/dashboard/page.tsx +7 -0
  312. package/services/react-word-editor/app/demo/page.tsx +30 -0
  313. package/services/react-word-editor/app/demo/prototype-client.tsx +1080 -0
  314. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +33 -0
  315. package/services/react-word-editor/app/fixtures/page.tsx +7 -0
  316. package/services/react-word-editor/app/globals.css +121 -0
  317. package/services/react-word-editor/app/layout.tsx +32 -0
  318. package/services/react-word-editor/app/page.tsx +30 -0
  319. package/services/react-word-editor/app/runs/[runId]/page.tsx +34 -0
  320. package/services/react-word-editor/app/wave-10-word-review/page.tsx +7 -0
  321. package/services/react-word-editor/components/harness-control-bar.tsx +289 -0
  322. package/services/react-word-editor/components/harness-editor-session-client.tsx +1214 -0
  323. package/services/react-word-editor/components/harness-workspace-page.tsx +715 -0
  324. package/services/react-word-editor/components/reduced-motion-toggle.tsx +79 -0
  325. package/services/react-word-editor/components/workspace-certification-panel.tsx +307 -0
  326. package/services/react-word-editor/lib/certification-bundle.ts +796 -0
  327. package/services/react-word-editor/lib/certification-store.ts +661 -0
  328. package/services/react-word-editor/lib/demo-fixtures.test.mjs +195 -0
  329. package/services/react-word-editor/lib/demo-fixtures.ts +1519 -0
  330. package/services/react-word-editor/lib/editor-session-summary.test.mjs +68 -0
  331. package/services/react-word-editor/lib/editor-session-summary.ts +14 -0
  332. package/services/react-word-editor/lib/editor-session.ts +228 -0
  333. package/services/react-word-editor/lib/exports-route.test.mjs +32 -0
  334. package/services/react-word-editor/lib/harness-client.ts +347 -0
  335. package/services/react-word-editor/lib/harness-config.json +30 -0
  336. package/services/react-word-editor/lib/harness-config.test.mjs +31 -0
  337. package/services/react-word-editor/lib/harness-config.ts +21 -0
  338. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +220 -0
  339. package/services/react-word-editor/lib/harness-editor-datastore.ts +161 -0
  340. package/services/react-word-editor/lib/private-mode.test.mjs +42 -0
  341. package/services/react-word-editor/lib/private-mode.ts +61 -0
  342. package/services/react-word-editor/lib/regression-report.test.mjs +352 -0
  343. package/services/react-word-editor/lib/regression-report.ts +896 -0
  344. package/services/react-word-editor/lib/run-artifacts.ts +934 -0
  345. package/services/react-word-editor/lib/run-history.ts +755 -0
  346. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +41 -0
  347. package/services/react-word-editor/lib/scenario-artifacts.ts +44 -0
  348. package/services/react-word-editor/lib/storage.ts +953 -0
  349. package/services/react-word-editor/lib/validator-client.test.mjs +54 -0
  350. package/services/react-word-editor/lib/validator-client.ts +95 -0
  351. package/services/react-word-editor/lib/workspace-navigation.ts +79 -0
  352. package/services/react-word-editor/middleware.ts +35 -0
  353. package/services/react-word-editor/next-env.d.ts +6 -0
  354. package/services/react-word-editor/next.config.mjs +15 -0
  355. package/services/react-word-editor/package.json +38 -0
  356. package/services/react-word-editor/postcss.config.mjs +8 -0
  357. package/services/react-word-editor/railway.json +21 -0
  358. package/services/react-word-editor/scripts/wave-10-certification.mjs +101 -0
  359. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +911 -0
  360. package/services/react-word-editor/tsconfig.json +39 -0
  361. package/services/react-word-editor/tsconfig.tsbuildinfo +1 -0
  362. package/skills/README.md +48 -0
  363. package/skills/domain-docx-compatibility/SKILL.md +44 -0
  364. package/skills/domain-docx-compatibility/skill.json +19 -0
  365. package/skills/domain-editor-architecture/SKILL.md +49 -0
  366. package/skills/domain-editor-architecture/skill.json +19 -0
  367. package/skills/domain-legal-review/SKILL.md +39 -0
  368. package/skills/domain-legal-review/skill.json +19 -0
  369. package/skills/provider-aws/SKILL.md +117 -0
  370. package/skills/provider-aws/adapters/claude.md +1 -0
  371. package/skills/provider-aws/adapters/codex.md +1 -0
  372. package/skills/provider-aws/references/service-verification.md +39 -0
  373. package/skills/provider-aws/skill.json +54 -0
  374. package/skills/provider-custom-deploy/SKILL.md +64 -0
  375. package/skills/provider-custom-deploy/skill.json +50 -0
  376. package/skills/provider-docker-compose/SKILL.md +96 -0
  377. package/skills/provider-docker-compose/adapters/local.md +1 -0
  378. package/skills/provider-docker-compose/skill.json +53 -0
  379. package/skills/provider-github-release/SKILL.md +121 -0
  380. package/skills/provider-github-release/adapters/claude.md +1 -0
  381. package/skills/provider-github-release/adapters/codex.md +1 -0
  382. package/skills/provider-github-release/skill.json +55 -0
  383. package/skills/provider-kubernetes/SKILL.md +143 -0
  384. package/skills/provider-kubernetes/adapters/claude.md +1 -0
  385. package/skills/provider-kubernetes/adapters/codex.md +1 -0
  386. package/skills/provider-kubernetes/references/kubectl-patterns.md +58 -0
  387. package/skills/provider-kubernetes/skill.json +52 -0
  388. package/skills/provider-railway/SKILL.md +123 -0
  389. package/skills/provider-railway/adapters/claude.md +1 -0
  390. package/skills/provider-railway/adapters/codex.md +1 -0
  391. package/skills/provider-railway/adapters/local.md +1 -0
  392. package/skills/provider-railway/adapters/opencode.md +1 -0
  393. package/skills/provider-railway/references/verification-commands.md +39 -0
  394. package/skills/provider-railway/skill.json +71 -0
  395. package/skills/provider-ssh-manual/SKILL.md +97 -0
  396. package/skills/provider-ssh-manual/skill.json +54 -0
  397. package/skills/repo-coding-rules/SKILL.md +55 -0
  398. package/skills/repo-coding-rules/skill.json +34 -0
  399. package/skills/role-cont-eval/SKILL.md +91 -0
  400. package/skills/role-cont-eval/adapters/codex.md +1 -0
  401. package/skills/role-cont-eval/skill.json +36 -0
  402. package/skills/role-cont-qa/SKILL.md +100 -0
  403. package/skills/role-cont-qa/adapters/claude.md +1 -0
  404. package/skills/role-cont-qa/skill.json +36 -0
  405. package/skills/role-deploy/SKILL.md +97 -0
  406. package/skills/role-deploy/skill.json +36 -0
  407. package/skills/role-design/SKILL.md +50 -0
  408. package/skills/role-design/skill.json +36 -0
  409. package/skills/role-documentation/SKILL.md +76 -0
  410. package/skills/role-documentation/skill.json +36 -0
  411. package/skills/role-implementation/SKILL.md +45 -0
  412. package/skills/role-implementation/skill.json +36 -0
  413. package/skills/role-infra/SKILL.md +81 -0
  414. package/skills/role-infra/skill.json +36 -0
  415. package/skills/role-integration/SKILL.md +91 -0
  416. package/skills/role-integration/skill.json +36 -0
  417. package/skills/role-planner/SKILL.md +39 -0
  418. package/skills/role-planner/skill.json +21 -0
  419. package/skills/role-research/SKILL.md +65 -0
  420. package/skills/role-research/skill.json +36 -0
  421. package/skills/role-security/SKILL.md +60 -0
  422. package/skills/role-security/skill.json +36 -0
  423. package/skills/runtime-claude/SKILL.md +66 -0
  424. package/skills/runtime-claude/skill.json +36 -0
  425. package/skills/runtime-codex/SKILL.md +58 -0
  426. package/skills/runtime-codex/skill.json +36 -0
  427. package/skills/runtime-local/SKILL.md +46 -0
  428. package/skills/runtime-local/skill.json +36 -0
  429. package/skills/runtime-opencode/SKILL.md +58 -0
  430. package/skills/runtime-opencode/skill.json +36 -0
  431. package/skills/signal-hygiene/SKILL.md +51 -0
  432. package/skills/signal-hygiene/skill.json +20 -0
  433. package/skills/tui-design/SKILL.md +77 -0
  434. package/skills/tui-design/references/tui-design.md +259 -0
  435. package/skills/tui-design/skill.json +36 -0
  436. package/skills/wave-core/SKILL.md +141 -0
  437. package/skills/wave-core/references/marker-syntax.md +70 -0
  438. package/skills/wave-core/skill.json +35 -0
  439. package/src/README.md +85 -0
  440. package/src/api/README.md +22 -0
  441. package/src/api/public-types.ts +525 -0
  442. package/src/component-inventory.md +99 -0
  443. package/src/core/README.md +10 -0
  444. package/src/core/commands/README.md +3 -0
  445. package/src/core/commands/formatting-commands.ts +161 -0
  446. package/src/core/commands/image-commands.ts +144 -0
  447. package/src/core/commands/index.ts +1013 -0
  448. package/src/core/commands/list-commands.ts +370 -0
  449. package/src/core/commands/review-commands.ts +108 -0
  450. package/src/core/commands/text-commands.ts +119 -0
  451. package/src/core/schema/README.md +3 -0
  452. package/src/core/schema/text-schema.ts +512 -0
  453. package/src/core/selection/README.md +3 -0
  454. package/src/core/selection/mapping.ts +238 -0
  455. package/src/core/selection/review-anchors.ts +94 -0
  456. package/src/core/state/README.md +3 -0
  457. package/src/core/state/editor-state.ts +580 -0
  458. package/src/core/state/text-transaction.ts +276 -0
  459. package/src/formats/xlsx/io/parse-shared-strings.ts +41 -0
  460. package/src/formats/xlsx/io/parse-sheet.ts +289 -0
  461. package/src/formats/xlsx/io/parse-styles.ts +57 -0
  462. package/src/formats/xlsx/io/parse-workbook.ts +75 -0
  463. package/src/formats/xlsx/io/xlsx-session.ts +306 -0
  464. package/src/formats/xlsx/model/cell.ts +189 -0
  465. package/src/formats/xlsx/model/sheet.ts +244 -0
  466. package/src/formats/xlsx/model/styles.ts +118 -0
  467. package/src/formats/xlsx/model/workbook.ts +449 -0
  468. package/src/io/README.md +10 -0
  469. package/src/io/docx-session.ts +1763 -0
  470. package/src/io/export/README.md +3 -0
  471. package/src/io/export/export-session.ts +165 -0
  472. package/src/io/export/minimal-docx.ts +115 -0
  473. package/src/io/export/reattach-preserved-parts.ts +54 -0
  474. package/src/io/export/serialize-comments.ts +876 -0
  475. package/src/io/export/serialize-footnotes.ts +217 -0
  476. package/src/io/export/serialize-headers-footers.ts +200 -0
  477. package/src/io/export/serialize-main-document.ts +982 -0
  478. package/src/io/export/serialize-numbering.ts +97 -0
  479. package/src/io/export/serialize-revisions.ts +389 -0
  480. package/src/io/export/serialize-runtime-revisions.ts +265 -0
  481. package/src/io/export/serialize-tables.ts +147 -0
  482. package/src/io/export/split-review-boundaries.ts +194 -0
  483. package/src/io/normalize/README.md +3 -0
  484. package/src/io/normalize/normalize-text.ts +437 -0
  485. package/src/io/ooxml/README.md +3 -0
  486. package/src/io/ooxml/parse-comments.ts +779 -0
  487. package/src/io/ooxml/parse-complex-content.ts +287 -0
  488. package/src/io/ooxml/parse-fields.ts +438 -0
  489. package/src/io/ooxml/parse-footnotes.ts +403 -0
  490. package/src/io/ooxml/parse-headers-footers.ts +483 -0
  491. package/src/io/ooxml/parse-inline-media.ts +431 -0
  492. package/src/io/ooxml/parse-main-document.ts +1846 -0
  493. package/src/io/ooxml/parse-numbering.ts +425 -0
  494. package/src/io/ooxml/parse-revisions.ts +658 -0
  495. package/src/io/ooxml/parse-shapes.ts +271 -0
  496. package/src/io/ooxml/parse-tables.ts +568 -0
  497. package/src/io/ooxml/parse-theme.ts +314 -0
  498. package/src/io/ooxml/part-manifest.ts +136 -0
  499. package/src/io/ooxml/revision-boundaries.ts +351 -0
  500. package/src/io/opc/README.md +3 -0
  501. package/src/io/opc/corrupt-package.ts +166 -0
  502. package/src/io/opc/docx-package.ts +74 -0
  503. package/src/io/opc/package-reader.ts +320 -0
  504. package/src/io/opc/package-writer.ts +273 -0
  505. package/src/model/README.md +3 -0
  506. package/src/model/canonical-document.ts +1911 -0
  507. package/src/model/cds-1.0.0.ts +196 -0
  508. package/src/model/snapshot.ts +393 -0
  509. package/src/preservation/README.md +3 -0
  510. package/src/preservation/markup-compatibility.ts +48 -0
  511. package/src/preservation/opaque-fragment-store.ts +89 -0
  512. package/src/preservation/opaque-region.ts +233 -0
  513. package/src/preservation/package-preservation.ts +120 -0
  514. package/src/preservation/preserved-part-manifest.ts +56 -0
  515. package/src/preservation/relationship-retention.ts +57 -0
  516. package/src/preservation/store.ts +185 -0
  517. package/src/review/README.md +16 -0
  518. package/src/review/store/README.md +3 -0
  519. package/src/review/store/comment-anchors.ts +70 -0
  520. package/src/review/store/comment-remapping.ts +154 -0
  521. package/src/review/store/comment-store.ts +331 -0
  522. package/src/review/store/comment-thread.ts +109 -0
  523. package/src/review/store/revision-actions.ts +394 -0
  524. package/src/review/store/revision-store.ts +303 -0
  525. package/src/review/store/revision-types.ts +168 -0
  526. package/src/review/store/runtime-comment-store.ts +43 -0
  527. package/src/runtime/README.md +3 -0
  528. package/src/runtime/ai-action-policy.ts +764 -0
  529. package/src/runtime/document-runtime.ts +969 -0
  530. package/src/runtime/read-only-diagnostics-runtime.ts +232 -0
  531. package/src/runtime/review-runtime.ts +44 -0
  532. package/src/runtime/revision-runtime.ts +107 -0
  533. package/src/runtime/session-capabilities.ts +138 -0
  534. package/src/runtime/surface-projection.ts +570 -0
  535. package/src/runtime/table-commands.ts +84 -0
  536. package/src/runtime/table-schema.ts +125 -0
  537. package/src/ui/README.md +30 -0
  538. package/src/ui/WordReviewEditor.tsx +1283 -0
  539. package/src/ui/comments/README.md +3 -0
  540. package/src/ui/compatibility/README.md +3 -0
  541. package/src/ui/editor-surface/README.md +3 -0
  542. package/src/ui/headless/comment-decoration-model.ts +124 -0
  543. package/src/ui/headless/revision-decoration-model.ts +128 -0
  544. package/src/ui/headless/selection-helpers.ts +34 -0
  545. package/src/ui/headless/use-editor-keyboard.ts +98 -0
  546. package/src/ui/review/README.md +3 -0
  547. package/src/ui/shared/revision-filters.ts +31 -0
  548. package/src/ui/status/README.md +3 -0
  549. package/src/ui/theme/README.md +3 -0
  550. package/src/ui/toolbar/README.md +3 -0
  551. package/src/ui-tailwind/chrome/tw-alert-banner.tsx +48 -0
  552. package/src/ui-tailwind/chrome/tw-selection-toolbar.tsx +44 -0
  553. package/src/ui-tailwind/chrome/tw-unsaved-modal.tsx +58 -0
  554. package/src/ui-tailwind/chrome/use-before-unload.ts +20 -0
  555. package/src/ui-tailwind/editor-surface/pm-command-bridge.ts +139 -0
  556. package/src/ui-tailwind/editor-surface/pm-decorations.ts +98 -0
  557. package/src/ui-tailwind/editor-surface/pm-position-map.ts +123 -0
  558. package/src/ui-tailwind/editor-surface/pm-schema.ts +452 -0
  559. package/src/ui-tailwind/editor-surface/pm-state-from-snapshot.ts +327 -0
  560. package/src/ui-tailwind/editor-surface/search-plugin.ts +157 -0
  561. package/src/ui-tailwind/editor-surface/tw-caret.tsx +12 -0
  562. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +150 -0
  563. package/src/ui-tailwind/editor-surface/tw-inline-token.tsx +118 -0
  564. package/src/ui-tailwind/editor-surface/tw-opaque-block.tsx +52 -0
  565. package/src/ui-tailwind/editor-surface/tw-paragraph-block.tsx +151 -0
  566. package/src/ui-tailwind/editor-surface/tw-prosemirror-surface.tsx +215 -0
  567. package/src/ui-tailwind/editor-surface/tw-segment-view.tsx +111 -0
  568. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +108 -0
  569. package/src/ui-tailwind/index.ts +61 -0
  570. package/src/ui-tailwind/review/tw-comment-sidebar.tsx +276 -0
  571. package/src/ui-tailwind/review/tw-health-panel.tsx +120 -0
  572. package/src/ui-tailwind/review/tw-review-rail.tsx +120 -0
  573. package/src/ui-tailwind/review/tw-revision-sidebar.tsx +164 -0
  574. package/src/ui-tailwind/status/tw-status-bar.tsx +58 -0
  575. package/src/ui-tailwind/theme/editor-theme.css +190 -0
  576. package/src/ui-tailwind/toolbar/tw-toolbar-icon-button.tsx +48 -0
  577. package/src/ui-tailwind/toolbar/tw-toolbar.tsx +231 -0
  578. package/src/ui-tailwind/tw-review-workspace.tsx +140 -0
  579. package/src/validation/README.md +3 -0
  580. package/src/validation/compatibility-engine.ts +317 -0
  581. package/src/validation/compatibility-report.ts +160 -0
  582. package/src/validation/diagnostics.ts +203 -0
  583. package/src/validation/import-diagnostics.ts +128 -0
  584. package/src/validation/low-priority-word-surfaces.ts +373 -0
  585. package/test/README.md +16 -0
  586. package/test/core/formatting-commands.test.ts +285 -0
  587. package/test/core/image-commands.test.ts +298 -0
  588. package/test/core/mapping.test.ts +186 -0
  589. package/test/core/text-commands.test.ts +176 -0
  590. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  591. package/test/fixtures/docx/F01-basic-contract.md +33 -0
  592. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  593. package/test/fixtures/docx/F02-headings-styles.md +33 -0
  594. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  595. package/test/fixtures/docx/F03-legal-outline-numbering.md +34 -0
  596. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  597. package/test/fixtures/docx/F04-restart-numbering-schedules.md +33 -0
  598. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  599. package/test/fixtures/docx/F05-table-heavy-agreement.md +34 -0
  600. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  601. package/test/fixtures/docx/F06-merged-cells-signature-table.md +34 -0
  602. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  603. package/test/fixtures/docx/F07-inline-images-exhibit.md +34 -0
  604. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  605. package/test/fixtures/docx/F08-hyperlinks.md +33 -0
  606. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  607. package/test/fixtures/docx/F09-comments-single-paragraph.md +33 -0
  608. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  609. package/test/fixtures/docx/F10-threaded-comments-resolve.md +33 -0
  610. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  611. package/test/fixtures/docx/F11-redlines-basic.md +33 -0
  612. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  613. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +33 -0
  614. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  615. package/test/fixtures/docx/F13-comments-on-deleted-text.md +33 -0
  616. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  617. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +33 -0
  618. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  619. package/test/fixtures/docx/F15-sections-headers-footers.md +33 -0
  620. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  621. package/test/fixtures/docx/F16-footnotes-endnotes.md +33 -0
  622. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  623. package/test/fixtures/docx/F17-fields-and-toc.md +33 -0
  624. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  625. package/test/fixtures/docx/F18-content-controls-template.md +33 -0
  626. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  627. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +35 -0
  628. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  629. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +33 -0
  630. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  631. package/test/fixtures/docx/F21-malformed-broken-docx.md +33 -0
  632. package/test/fixtures/docx/README.md +74 -0
  633. package/test/fixtures/docx/certification-manifest.json +104 -0
  634. package/test/fixtures/docx/fixtures.manifest.json +196 -0
  635. package/test/fixtures/encrypted-docx/README.md +27 -0
  636. package/test/fixtures/encrypted-docx/certification-manifest.json +9 -0
  637. package/test/fixtures/encrypted-docx/fixtures.manifest.json +47 -0
  638. package/test/fixtures/scenarios/docx/README.md +25 -0
  639. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  640. package/test/fixtures/scenarios/docx/S01-sow-template.md +30 -0
  641. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  642. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +32 -0
  643. package/test/fixtures/scenarios/docx/scenario-manifest.json +53 -0
  644. package/test/formats/xlsx/io/xlsx-import.test.ts +766 -0
  645. package/test/formats/xlsx/model/workbook.test.ts +669 -0
  646. package/test/helpers/dom-setup.ts +124 -0
  647. package/test/io/comment-roundtrip.test.ts +272 -0
  648. package/test/io/complex-content-roundtrip.test.ts +632 -0
  649. package/test/io/docx-compatibility-regression.test.ts +199 -0
  650. package/test/io/docx-session.test.ts +1495 -0
  651. package/test/io/footnotes-roundtrip.test.ts +318 -0
  652. package/test/io/headers-footers-roundtrip.test.ts +547 -0
  653. package/test/io/numbering-roundtrip.test.ts +234 -0
  654. package/test/io/package-reader.test.ts +199 -0
  655. package/test/io/paragraph-properties-roundtrip.test.ts +129 -0
  656. package/test/io/preserved-package-roundtrip.test.ts +365 -0
  657. package/test/io/property-completeness.test.ts +292 -0
  658. package/test/io/revision-roundtrip.test.ts +347 -0
  659. package/test/io/structural-blocks.test.ts +202 -0
  660. package/test/io/table-media-roundtrip.test.ts +448 -0
  661. package/test/io/table-properties-roundtrip.test.ts +569 -0
  662. package/test/io/table-roundtrip.test.ts +302 -0
  663. package/test/io/text-roundtrip.test.ts +344 -0
  664. package/test/model/canonical-document.test.ts +285 -0
  665. package/test/preservation/opaque-fragment-store.test.ts +121 -0
  666. package/test/preservation/package-preservation.test.ts +395 -0
  667. package/test/preservation/store.test.ts +84 -0
  668. package/test/review/comment-remapping.test.ts +220 -0
  669. package/test/review/comment-store.test.ts +180 -0
  670. package/test/review/move-revisions.test.ts +143 -0
  671. package/test/review/property-change-revisions.test.ts +225 -0
  672. package/test/review/revision-actions.test.ts +330 -0
  673. package/test/review/revision-store.test.ts +193 -0
  674. package/test/runtime/session-capabilities.test.ts +260 -0
  675. package/test/runtime/table-commands.test.ts +356 -0
  676. package/test/runtime/table-schema.test.ts +221 -0
  677. package/test/runtime/tracked-changes-toggle.test.ts +107 -0
  678. package/test/ui/comment-review-surface.test.tsx +114 -0
  679. package/test/ui/reduced-motion-toggle.test.tsx +137 -0
  680. package/test/ui/word-review-editor.imported-scenarios.test.tsx +169 -0
  681. package/test/ui/word-review-editor.interaction.test.tsx +1198 -0
  682. package/test/ui/word-review-editor.test.js +188 -0
  683. package/test/ui/word-review-editor.test.tsx +280 -0
  684. package/test/ui-tailwind/search-plugin.test.ts +286 -0
  685. package/test/validation/compatibility-engine.test.ts +336 -0
  686. package/test/validation/compatibility-report.test.ts +189 -0
  687. package/test/validation/low-priority-word-surfaces.test.ts +282 -0
  688. package/test/validation/malformed-doc.test.ts +113 -0
  689. package/test-results/.last-run.json +4 -0
  690. package/wave.config.json +406 -0
@@ -0,0 +1,145 @@
1
+ # Wave 35 cont-QA Review
2
+
3
+ - Wave: 35
4
+ - Agent: A0
5
+ - Role: cont-QA
6
+ - Reviewed: 2026-04-06
7
+ - Verdict: PASS
8
+
9
+ ---
10
+
11
+ ## Summary
12
+
13
+ Wave 35 targets the `track-change-extensions` component and declares a single promotion: `baseline-proved`. The implementation is owned by A1. A8 performed integration synthesis. A9 confirmed shared-plan documentation closure.
14
+
15
+ This review judges the landed evidence against the declared exit contract and component promotion target.
16
+
17
+ ---
18
+
19
+ ## Exit Contract Verification — A1
20
+
21
+ Declared exit contract:
22
+ - completion: authoritative
23
+ - durability: durable
24
+ - proof: integration
25
+ - doc-impact: none
26
+
27
+ ### Deliverables check
28
+
29
+ All seven declared deliverables are confirmed present in the landed tree:
30
+
31
+ | File | Status |
32
+ |---|---|
33
+ | `src/io/ooxml/parse-revisions.ts` | Present — `parseTblPropertyRevisions()` and `parseSectPrRevisions()` confirmed at lines 478, 525 |
34
+ | `src/io/export/serialize-revisions.ts` | Present — `serializePropertyChangeMarkup()` confirmed at line 335 |
35
+ | `src/review/store/revision-types.ts` | Present — `PropertyChangeData`, `MoveData`, `SupportedRevisionKind` includes `'property-change'` confirmed |
36
+ | `src/review/store/revision-store.ts` | Present — `createRevisionRecord` passes through `propertyChangeData` and `moveData` (declared in proof bundle) |
37
+ | `src/model/canonical-document.ts` | Present — `RevisionPropertyChangeData`, `RevisionMoveData`, optional metadata fields confirmed |
38
+ | `test/review/property-change-revisions.test.ts` | Present — 10 tests |
39
+ | `test/review/move-revisions.test.ts` | Present — 7 tests |
40
+ | `.tmp/wave-35-track-proof/revisions.json` | Present — proof bundle with full test results and interface change inventory |
41
+
42
+ All deliverables: **confirmed**.
43
+
44
+ ### Proof bundle verification
45
+
46
+ Proof artifact: `.tmp/wave-35-track-proof/revisions.json`
47
+
48
+ New test results from the proof bundle:
49
+ - `property-change-revisions.test.ts`: 10/10 passed, 0 failed
50
+ - `move-revisions.test.ts`: 7/7 passed, 0 failed
51
+
52
+ Existing revision test results (regression check):
53
+ - `revision-store.test.ts`: 8/8 passed, 0 failed
54
+ - `revision-actions.test.ts`: 11/11 passed, 0 failed
55
+
56
+ Total: 17 new tests passing, 19 existing tests unaffected (0 regressions).
57
+
58
+ Proof level: **integration** — satisfied. New tests prove accept/reject paths, preserve-only behavior, linked move IDs, and round-trip serialization. Existing tests confirm no regressions in the revision layer.
59
+
60
+ ### Interface changes verified
61
+
62
+ Five interface files changed as declared:
63
+ 1. `src/review/store/revision-types.ts` — `SupportedRevisionKind` union extended, `PropertyChangeData`, `MoveData`, `PropertyChangeRevision`, `MoveRevision` added
64
+ 2. `src/review/store/revision-store.ts` — metadata passthrough added
65
+ 3. `src/model/canonical-document.ts` — `RevisionPropertyChangeData`, `RevisionMoveData` added; `RevisionRecord.kind` union extended
66
+ 4. `src/io/ooxml/parse-revisions.ts` — two new parsing functions; moveFrom/moveTo and pPrChange/rPrChange carry structured metadata
67
+ 5. `src/io/export/serialize-revisions.ts` — `serializePropertyChangeMarkup()` function added; handles accept (remove `*PrChange` element) and reject (replace container with `beforeContainerXml`)
68
+
69
+ All interface changes: **confirmed landed**.
70
+
71
+ ### Architecture alignment
72
+
73
+ Per `docs/reference/repository-guidance.md`:
74
+ - Changes route through the canonical model (`src/model/canonical-document.ts`) — satisfied
75
+ - OOXML content is not silently dropped: pPrChange and rPrChange are preserve-only with `PropertyChangeData` in metadata; moveFrom/moveTo are preserve-only with `MoveData` and linked `moveId` — satisfied
76
+ - Actionable property-change kinds (sectPrChange, tblPrChange) have defined accept/reject semantics — satisfied
77
+ - Wave planning lessons rule 12 ("one canonical contract per seam"): the revision contract is extended additively; no parallel runtime envelope created — satisfied
78
+
79
+ No architecture violations identified.
80
+
81
+ ---
82
+
83
+ ## Component Promotion Verification
84
+
85
+ Declared promotion: `track-change-extensions` → `baseline-proved`
86
+
87
+ Component matrix check (`.json` and `.md`):
88
+ - `component-cutover-matrix.json` line 1037: `"currentLevel": "baseline-proved"` for `track-change-extensions` — **confirmed**
89
+ - `component-cutover-matrix.md` row for `track-change-extensions`: `baseline-proved` with proof surfaces listed — **confirmed**
90
+ - Wave 35 promotion entry present in both files — **confirmed**
91
+
92
+ The declared promotion is satisfied by the landed proof.
93
+
94
+ ---
95
+
96
+ ## A8 Integration Synthesis Check
97
+
98
+ Integration recommendation: `ready-for-doc-closure`
99
+
100
+ Key integration claims against landed state:
101
+ - "A1 proof complete (17/17 tests, 0 regressions)" — confirmed by proof bundle
102
+ - "5 interface changes in revision layer" — confirmed (5 files)
103
+ - "component matrix and current-state already reflect baseline-proved promotion" — confirmed by direct inspection
104
+ - "0 blockers, 0 conflicts, 0 proof gaps" — consistent with landed state
105
+
106
+ A8 recommendation: **consistent with landed evidence**.
107
+
108
+ ---
109
+
110
+ ## Documentation Closure Check
111
+
112
+ A9 coordination record (`coord-decision-f0242c53`): "All shared-plan docs already aligned — no-change for wave 35"
113
+
114
+ Verification against actual doc state:
115
+ - `docs/plans/current-state.md`: Wave 35 entry present at "Active Maturity Line" — 17/17 tests, proof artifact path, `track-change-extensions` at `baseline-proved` — **confirmed**
116
+ - `docs/plans/component-cutover-matrix.md`: `track-change-extensions` row present with `baseline-proved` and correct proof surfaces — **confirmed**
117
+ - `docs/plans/component-cutover-matrix.json`: `currentLevel: "baseline-proved"` and promotions entry for wave 35 — **confirmed**
118
+
119
+ The three "documentation gaps" listed in the integration report (`A1:shared:docs/plans/component-cutover-matrix.md`, `A1:shared:docs/plans/component-cutover-matrix.json`, `component-matrix:track-change-extensions`) were tracker residue from A1's handoff before A9 ran. Actual doc state satisfies all three — no gaps remain.
120
+
121
+ A9 no-change declaration: **accepted** (docs verified against actual file state).
122
+
123
+ Documentation gate: **closed**.
124
+
125
+ ---
126
+
127
+ ## Blocking Set
128
+
129
+ None. All gates clear.
130
+
131
+ ---
132
+
133
+ ## Gate Summary
134
+
135
+ | Gate | Status | Evidence |
136
+ |---|---|---|
137
+ | Architecture | pass | Canonical model extended additively; no DOM shortcuts; OOXML preserved or structured |
138
+ | Integration | pass | A8 ready-for-doc-closure; 0 conflicts, 0 proof gaps |
139
+ | Durability | pass | 17/17 new tests, 0 regressions in existing 19 revision tests |
140
+ | Live | pass | No live deployment claimed; baseline-proved does not require live proof |
141
+ | Docs | pass | component matrix and current-state confirmed aligned; A9 no-change accepted |
142
+
143
+ ---
144
+
145
+ Verdict: PASS
@@ -0,0 +1,47 @@
1
+ # Wave 4 cont-QA Report
2
+
3
+ ## 2026-03-26T14:06:41Z Reconciliation Pass
4
+
5
+ Wave 4 is closed under the replanned architecture-only scope.
6
+
7
+ Evidence reviewed:
8
+
9
+ - `docs/reference/repository-guidance.md`
10
+ - `docs/reference/wave-planning-lessons.md`
11
+ - `docs/plans/master-plan.md`
12
+ - `docs/plans/current-state.md`
13
+ - `docs/plans/component-cutover-matrix.md`
14
+ - `docs/plans/component-cutover-matrix.json`
15
+ - `docs/plans/waves/README.md`
16
+ - `docs/plans/waves/wave-4.md`
17
+ - `docs/plans/waves/wave-5.md`
18
+ - `docs/plans/waves/reviews/wave-4-structure-proof.md`
19
+ - `docs/roadmap.md`
20
+ - `src/ui/WordReviewEditor.tsx`
21
+ - `src/ui/editor-surface/editor-surface.tsx`
22
+ - `src/preservation/opaque-fragment-store.ts`
23
+ - `src/validation/compatibility-report.ts`
24
+ - `test/ui/word-review-editor.test.tsx`
25
+
26
+ Reconciliation:
27
+
28
+ - Earlier blocked Wave 4 passes evaluated a superseded closure bar that still treated `F03`/`F05`/`F06`/`F07` structural baseline proof as a Wave 4 deliverable.
29
+ - The current shared plan closes Wave 4 as the live shell architecture bridge: runtime-owned editing, review projections, preservation substrate, and compatibility-report derivation.
30
+ - The historical structural packet in [`docs/plans/waves/reviews/wave-4-structure-proof.md`](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-4-structure-proof.md) remains useful carry-forward evidence, but it is no longer the Wave 4 closure gate.
31
+ - Structural fixture proof and comment OOXML roundtrip proof moved to Wave 5 and are already reflected there in the current shared-plan docs.
32
+
33
+ Gate judgment:
34
+
35
+ - Architecture: pass. The live `WordReviewEditor` path, runtime-owned review surfaces, preservation substrate, and compatibility derivation are the actual Wave 4 deliverables and are consistently described.
36
+ - Integration: pass. Wave 4 no longer needs to close the structural fixture packet itself; that proof is a Wave 5 responsibility and no longer blocks the architecture slice.
37
+ - Durability: pass. The promoted Wave 4 components close at `repo-landed`, not `baseline-proved`, and the shared docs now honor that narrower bar.
38
+ - Live: pass. This wave has no standalone deploy target or live-service gate.
39
+ - Docs: pass. `README`, `roadmap`, `master-plan`, `current-state`, and the component matrix now tell one consistent Wave 4 story.
40
+
41
+ Residual carry-forward:
42
+
43
+ - `F03`/`F05`/`F06`/`F07` structural baseline proof belongs to Wave 5, not Wave 4.
44
+ - Comment OOXML roundtrip proof also belongs to Wave 5.
45
+
46
+ [wave-gate] architecture=pass integration=pass durability=pass live=pass docs=pass detail=Wave 4 closes as the replanned architecture slice; structural baseline proof moved to and closed in Wave 5
47
+ Verdict: PASS
@@ -0,0 +1,69 @@
1
+ # Wave 4 Structural Proof
2
+
3
+ ## Status Note
4
+
5
+ This packet is historical carry-forward evidence from the pre-replan structural pass. It remains useful as a record of what was repo-landed before the live-path proof line stabilized, but it is not the controlling Wave 4 closure gate anymore. Numbering and inline-image closure moved forward into the later live-path proof set; `F05` and `F06` remain preserve-only table/package evidence until the deferred legal-fidelity packet lands first-class tables.
6
+
7
+ ## 2026-03-26T11:04:31Z Structural Fixture Bundle Refresh
8
+
9
+ Owned deliverables verified:
10
+
11
+ - `docs/plans/waves/reviews/wave-4-structure-proof.md`
12
+ - `test/fixtures/docx/F03-legal-outline-numbering.docx`
13
+ - `test/fixtures/docx/F05-table-heavy-agreement.docx`
14
+ - `test/fixtures/docx/F06-merged-cells-signature-table.docx`
15
+ - `test/fixtures/docx/F07-inline-images-exhibit.docx`
16
+ - `.tmp/wave-4-structure/structure-roundtrip-report.json`
17
+ - `.tmp/wave-4-structure/sdk-validation-report.json`
18
+ - `.tmp/wave-4-structure/fixture-summary.md`
19
+
20
+ Proof commands executed:
21
+
22
+ - `dotnet build services/openxml-validator/OpenXmlValidator.Api.csproj`
23
+ - `curl -fsS http://127.0.0.1:5080/health`
24
+ - `cd services/react-word-editor && ./node_modules/.bin/tsc --ignoreConfig --pretty false --target ES2022 --module nodenext --moduleResolution nodenext --lib ES2022,DOM --types node --typeRoots ./node_modules/@types --esModuleInterop --strict --ignoreDeprecations 6.0 --allowImportingTsExtensions --rewriteRelativeImportExtensions --rootDir ../.. --outDir ../../.tmp/wave-4-structure/build-runtime ../../src/model/cds-1.0.0.ts ../../src/model/canonical-document.ts ../../src/core/commands/list-commands.ts ../../src/io/ooxml/part-manifest.ts ../../src/io/ooxml/parse-main-document.ts ../../src/io/ooxml/parse-numbering.ts ../../src/io/ooxml/parse-tables.ts ../../src/io/ooxml/parse-inline-media.ts ../../src/io/normalize/normalize-text.ts ../../src/io/export/export-session.ts ../../src/io/export/serialize-main-document.ts ../../src/io/export/serialize-numbering.ts ../../src/io/export/serialize-tables.ts ../../src/io/opc/package-reader.ts ../../src/io/opc/package-writer.ts ../../test/io/numbering-roundtrip.test.ts ../../test/io/table-media-roundtrip.test.ts`
25
+ - historical capture note: the 2026-03-26 strict compile attempt hit a then-current import mismatch in `src/core/commands/list-commands.ts` (`CanonicalDocumentEnvelope` vs. the model-layer `CanonicalDocument`). The current repo source no longer carries that drift; the fallback below is retained only as part of the historical capture record.
26
+ - `cd services/react-word-editor && ./node_modules/.bin/tsc --noCheck --ignoreConfig --pretty false --target ES2022 --module nodenext --moduleResolution nodenext --lib ES2022,DOM --types node --typeRoots ./node_modules/@types --esModuleInterop --strict --ignoreDeprecations 6.0 --allowImportingTsExtensions --rewriteRelativeImportExtensions --rootDir ../.. --outDir ../../.tmp/wave-4-structure/build-runtime ../../src/model/cds-1.0.0.ts ../../src/model/canonical-document.ts ../../src/core/commands/list-commands.ts ../../src/io/ooxml/part-manifest.ts ../../src/io/ooxml/parse-main-document.ts ../../src/io/ooxml/parse-numbering.ts ../../src/io/ooxml/parse-tables.ts ../../src/io/ooxml/parse-inline-media.ts ../../src/io/normalize/normalize-text.ts ../../src/io/export/export-session.ts ../../src/io/export/serialize-main-document.ts ../../src/io/export/serialize-numbering.ts ../../src/io/export/serialize-tables.ts ../../src/io/opc/package-reader.ts ../../src/io/opc/package-writer.ts ../../test/io/numbering-roundtrip.test.ts ../../test/io/table-media-roundtrip.test.ts`
27
+ - `node --test .tmp/wave-4-structure/build-runtime/test/io/numbering-roundtrip.test.js .tmp/wave-4-structure/build-runtime/test/io/table-media-roundtrip.test.js`
28
+ - transient validator run held open for the proof refresh shell:
29
+ - `dotnet run --project services/openxml-validator/OpenXmlValidator.Api.csproj --urls http://127.0.0.1:5080`
30
+ - repo-root proof runner `node .tmp/wave-4-structure/generate-structure-proof.mjs` using `.tmp/wave-4-structure/build-runtime/src/...` imports to:
31
+ - load real F03/F05/F06/F07 fixtures
32
+ - parse and normalize each fixture through the current repo import path
33
+ - export a no-op roundtrip variant into `.tmp/wave-4-structure/exports/`
34
+ - validate both source and roundtrip packages through `http://127.0.0.1:5080/validate`
35
+ - write `.tmp/wave-4-structure/structure-roundtrip-report.json`
36
+ - write `.tmp/wave-4-structure/sdk-validation-report.json`
37
+
38
+ Durable proof outcome:
39
+
40
+ - This historical packet recorded a `--noCheck` fallback after a then-current `src/core/commands/list-commands.ts` import mismatch. The current repo source no longer needs that specific workaround, but this document still records the original capture rather than fresh proof.
41
+ - Focused runtime tests passed `4/4`:
42
+ - `numbering-roundtrip.test`
43
+ - `table-media-roundtrip.test`
44
+ - All four source fixtures are now valid `.docx` packages under the Open XML SDK validator.
45
+ - `F03` intentionally carries restart-numbering coverage inside the owned fixture set by using two numbering instances (`numId=1` and `numId=2`) in one legal-outline document.
46
+ - `F03` source and roundtrip packages are both SDK-valid, but the repo still drops list semantics on import or export:
47
+ - source `w:numPr` count is `8`
48
+ - roundtrip `w:numPr` count is `0`
49
+ - normalized numbered paragraph count is `0`
50
+ - restart numbering with `numId=2` disappears from canonical state and export
51
+ - `F05` stays package-valid and preserves `w:tbl` plus `w:tblGrid` on a no-op roundtrip, but the table imports as opaque preserved OOXML instead of a typed table surface.
52
+ - `F06` stays package-valid and preserves `w:gridSpan` plus `w:vMerge` on a no-op roundtrip, but merged-cell tables also remain opaque preserved OOXML instead of canonical table state.
53
+ - `F07` source is SDK-valid, but the roundtrip package fails SDK validation because the serializer emits preserved drawing XML without redeclaring the `wp`, `a`, and `pic` namespaces on `word/document.xml`.
54
+ - `F07` also still imports the drawing as `opaque_inline` content rather than a typed image node.
55
+
56
+ Result:
57
+
58
+ - Wave 4 structural fixtures and refreshed proof artifacts are durably landed.
59
+ - The owned proof bundle is authoritative for the current repo state, but `compatibility-and-word-validation` is still a `gap`, not `baseline-proved`.
60
+ - The current blockers are:
61
+ - numbering metadata is not carried into canonical state for `F03`
62
+ - tables and merged-cell tables are preserve-only for `F05` and `F06`
63
+ - inline-image roundtrip exports are not SDK-valid for `F07`
64
+
65
+ Follow-up required outside A5 ownership:
66
+
67
+ - A1: carry `w:numPr`, `numId`, `ilvl`, and restart semantics into canonical numbering state and back out through export.
68
+ - A2: move tables and inline images off opaque preservation paths into typed structural import or export support.
69
+ - A2: preserve or re-emit required drawing namespaces so exported image fixtures remain SDK-valid.
@@ -0,0 +1,158 @@
1
+ # Wave 5 Comment Baseline Proof
2
+
3
+ ## Scope
4
+
5
+ Agent A5 owns the Wave 5 baseline proof bundle for `comments-and-anchor-mapping`.
6
+
7
+ Owned deliverables:
8
+
9
+ - `docs/plans/waves/reviews/wave-5-comment-proof.md`
10
+ - `test/fixtures/docx/F09-comments-single-paragraph.docx`
11
+ - `test/fixtures/docx/F10-threaded-comments-resolve.docx`
12
+ - `test/fixtures/docx/F13-comments-on-deleted-text.docx`
13
+
14
+ Required proof artifacts:
15
+
16
+ - `.tmp/wave-5-comments/comment-anchor-report.json`
17
+ - `.tmp/wave-5-comments/thread-roundtrip-report.json`
18
+ - `.tmp/wave-5-comments/comment-ui-proof.json`
19
+
20
+ Supplemental proof artifacts captured for this note:
21
+
22
+ - `.tmp/wave-5-comments/fixture-sdk-validation.json`
23
+ - `.tmp/wave-5-comments/s01-validator-delta.json`
24
+
25
+ ## Commands
26
+
27
+ ```bash
28
+ dotnet run --project .tmp/wave-5-comments/CommentFixtureProof.csproj
29
+ pnpm exec tsx .tmp/wave-5-comments/generate-comment-proofs.ts
30
+ pnpm exec tsx --test test/io/comment-roundtrip.test.ts test/review/comment-store.test.ts test/review/comment-remapping.test.ts test/core/mapping.test.ts test/validation/compatibility-engine.test.ts test/ui/comment-review-surface.test.tsx test/ui/word-review-editor.interaction.test.tsx
31
+ pnpm --filter @docx-react-component/react-word-editor-harness test
32
+ ```
33
+
34
+ ## Durable Proof
35
+
36
+ Fixture validation artifact:
37
+
38
+ - `.tmp/wave-5-comments/fixture-sdk-validation.json`
39
+ - generated at `2026-03-26T11:47:45.9211205Z`
40
+ - generator: `DocumentFormat.OpenXml 3.5.1.0`
41
+
42
+ Anchor remap artifact:
43
+
44
+ - `.tmp/wave-5-comments/comment-anchor-report.json`
45
+ - generated at `2026-03-26T11:47:29.138Z`
46
+ - result: `allCasesPassed = true`
47
+
48
+ Round-trip artifact:
49
+
50
+ - `.tmp/wave-5-comments/thread-roundtrip-report.json`
51
+ - generated by `test/io/comment-roundtrip.test.ts`
52
+ - supported fixture: comment id `7` stayed stable across parse, edit, and export
53
+ - supported import fidelity: leading and trailing whitespace in single-paragraph comment bodies now stays intact across parse and export
54
+ - preserve-only fixture: comment id `9` imported detached and stayed out of active serialization
55
+
56
+ UI integration artifact:
57
+
58
+ - `.tmp/wave-5-comments/comment-ui-proof.json`
59
+ - generated at `2026-03-26T11:48:23.139Z`
60
+ - result: all recorded assertions are `true`
61
+
62
+ Scenario smoke artifact:
63
+
64
+ - `.tmp/wave-5-comments/s01-validator-delta.json`
65
+ - generated at `2026-03-26T11:47:45.9211205Z`
66
+ - `S01` expected vs actual validator delta: package `0 -> 0`, SDK `10 -> 10`
67
+
68
+ ## Fixture Results
69
+
70
+ `F09` (`test/fixtures/docx/F09-comments-single-paragraph.docx`)
71
+
72
+ - nested single-paragraph comment anchors on one paragraph
73
+ - package entries: `5`
74
+ - package findings: `0`
75
+ - SDK findings: `0`
76
+ - comment ids: `0`, `1`
77
+ - anchor ids in `word/document.xml`: `0`, `1`
78
+
79
+ `F10` (`test/fixtures/docx/F10-threaded-comments-resolve.docx`)
80
+
81
+ - threaded reply plus resolution metadata
82
+ - package entries: `8`
83
+ - package findings: `0`
84
+ - SDK findings: `0`
85
+ - package includes `word/commentsExtended.xml`, `word/commentsIds.xml`, and `word/people.xml`
86
+ - `commentsExtended` records root `paraId=00AAA111 done=true`
87
+ - reply entry records `paraId=00AAA222 paraIdParent=00AAA111`
88
+
89
+ `F13` (`test/fixtures/docx/F13-comments-on-deleted-text.docx`)
90
+
91
+ - comment range wraps deleted revision content
92
+ - package entries: `5`
93
+ - package findings: `0`
94
+ - SDK findings: `0`
95
+ - `deletedRunCount = 1`
96
+ - comment range id: `0`
97
+
98
+ ## Remap And UI Coverage
99
+
100
+ `comment-anchor-report.json` covers:
101
+
102
+ - overlapping single-paragraph anchors surviving inline edit
103
+ - delete-through behavior detaching the stored anchor instead of dropping the thread
104
+ - paragraph merge remapping an anchored range deterministically across a structural edit
105
+
106
+ Observed remap outcomes:
107
+
108
+ - overlap case: outer range `6-16 -> 6-24`, inner range `11-16 -> 19-24`
109
+ - delete-through case: anchor detached with `reason=deleted`, `lastKnownRange=7-9`
110
+ - paragraph merge case: range `6-10 -> 5-9`
111
+
112
+ `comment-ui-proof.json` covers:
113
+
114
+ - initial detached thread visibility
115
+ - runtime-added thread count increase from `1` to `2`
116
+ - anchor decoration visibility after add
117
+ - resolve transition from open to resolved
118
+ - compatibility report still advertising `comments-single-paragraph` with `blockExport=false`
119
+
120
+ ## Validation Runs
121
+
122
+ Focused TypeScript proof run:
123
+
124
+ - command: `pnpm exec tsx --test test/io/comment-roundtrip.test.ts test/review/comment-store.test.ts test/review/comment-remapping.test.ts test/core/mapping.test.ts test/validation/compatibility-engine.test.ts test/ui/comment-review-surface.test.tsx test/ui/word-review-editor.interaction.test.tsx`
125
+ - result: `28/28` passing
126
+
127
+ Live runtime correction:
128
+
129
+ - `src/core/commands/index.ts` now routes content-changing edits through detached-anchor normalization instead of raw anchor remap only
130
+ - `src/runtime/document-runtime.ts` now exposes `comments.activeCommentId` in `RuntimeRenderSnapshot`
131
+ - `src/ui/WordReviewEditor.tsx` now passes that runtime value through to `EditorSurface`
132
+ - `src/io/ooxml/parse-comments.ts` now preserves leading and trailing whitespace for supported imported comment bodies instead of trimming them away
133
+ - the live shell regression is covered in `test/ui/word-review-editor.interaction.test.tsx`
134
+
135
+ Harness scenario-manifest run:
136
+
137
+ - command: `pnpm --filter @docx-react-component/react-word-editor-harness test`
138
+ - result: `4/4` passing
139
+
140
+ ## Word Caveat
141
+
142
+ `F13` proves that a comment range wrapped around deleted text is structurally valid OOXML with zero SDK findings. Word UI behavior for deleted commented text is still pending Word desktop and Word web certification.
143
+
144
+ Inference from the encoded structure:
145
+
146
+ - once the commented content is deleted, reviewers should expect the comment to surface through revision-oriented review UI rather than as a normal inline active-range highlight
147
+ - the fixture exists to keep that behavior explicit and diagnosable, not to hide the edge case behind a false “clean” baseline
148
+
149
+ ## Result
150
+
151
+ Wave 5 comment baseline proof is met at the durable local integration level:
152
+
153
+ - the missing F09/F10/F13 fixtures now exist
154
+ - all three fixtures validate with zero package findings and zero SDK findings in the local SDK proof run
155
+ - the comment remap artifact covers overlapping and edited-anchor cases, and supported single-paragraph comment-body whitespace now roundtrips without trimming
156
+ - the round-trip artifact captures supported single-paragraph stability and preserve-only multi-paragraph handling
157
+ - the UI artifact shows detached, open, and resolved comment state flowing through the live editor shell
158
+ - `S01` was recorded separately as a scenario delta artifact rather than treated as a zero-finding release-gate fixture
@@ -0,0 +1,68 @@
1
+ # Wave 5 cont-QA Report
2
+
3
+ ## 2026-03-26T12:50:19Z Manual Closure Pass
4
+
5
+ Wave 5 is now clean enough to close.
6
+
7
+ Evidence reviewed:
8
+
9
+ - `docs/reference/repository-guidance.md`
10
+ - `docs/reference/ooxml-compliance.md`
11
+ - `docs/roadmap.md`
12
+ - `docs/plans/master-plan.md`
13
+ - `docs/plans/current-state.md`
14
+ - `docs/plans/component-cutover-matrix.md`
15
+ - `docs/plans/component-cutover-matrix.json`
16
+ - `docs/plans/waves/wave-5.md`
17
+ - `docs/plans/waves/reviews/wave-5-comment-proof.md`
18
+ - `src/api/public-types.ts`
19
+ - `src/core/commands/index.ts`
20
+ - `src/io/ooxml/parse-comments.ts`
21
+ - `src/io/export/serialize-comments.ts`
22
+ - `src/review/store/comment-remapping.ts`
23
+ - `src/review/store/comment-thread.ts`
24
+ - `src/review/store/revision-store.ts`
25
+ - `src/runtime/document-runtime.ts`
26
+ - `src/runtime/review-runtime.ts`
27
+ - `src/ui/WordReviewEditor.tsx`
28
+ - `src/ui/comments/comment-sidebar.tsx`
29
+ - `src/ui/comments/comment-thread-view.tsx`
30
+ - `test/io/comment-roundtrip.test.ts`
31
+ - `test/io/numbering-roundtrip.test.ts`
32
+ - `test/io/table-media-roundtrip.test.ts`
33
+ - `test/review/comment-remapping.test.ts`
34
+ - `test/review/comment-store.test.ts`
35
+ - `test/review/revision-store.test.ts`
36
+ - `test/ui/comment-review-surface.test.tsx`
37
+ - `test/ui/structural-surface.test.tsx`
38
+ - `test/ui/word-review-editor.interaction.test.tsx`
39
+ - `.tmp/wave-5-comments/comment-anchor-report.json`
40
+ - `.tmp/wave-5-comments/thread-roundtrip-report.json`
41
+ - `.tmp/wave-5-comments/comment-ui-proof.json`
42
+ - `.tmp/wave-5-comments/fixture-sdk-validation.json`
43
+ - `.tmp/wave-5-comments/s01-validator-delta.json`
44
+
45
+ Validation rerun:
46
+
47
+ - `pnpm exec tsx --test test/io/comment-roundtrip.test.ts test/review/comment-store.test.ts test/review/comment-remapping.test.ts test/core/mapping.test.ts test/validation/compatibility-engine.test.ts test/ui/comment-review-surface.test.tsx test/ui/word-review-editor.interaction.test.tsx`
48
+ - `pnpm exec tsx --test test/io/numbering-roundtrip.test.ts test/io/table-media-roundtrip.test.ts test/ui/structural-surface.test.tsx`
49
+ - `pnpm --filter @docx-react-component/react-word-editor-harness test`
50
+ - `pnpm run wave:doctor`
51
+ - `git diff --check`
52
+
53
+ Gate judgment:
54
+
55
+ - Architecture: pass. Comments remain detached from the content tree, anchors only move through transaction mappings, and the live shell now surfaces runtime-owned active-thread state and detached-anchor warnings.
56
+ - Integration: pass. Comment import/export, remapping, structural fixtures, and review UI now line up on one runtime-owned editing path.
57
+ - Durability: pass. Durable artifacts exist under `.tmp/wave-5-comments/`, and the structural/comment test surface reran green after the runtime active-thread and detachment fixes.
58
+ - Live: pass. `S01` remains a delta-tracked scenario artifact with a stable `10 -> 10` SDK-finding baseline, and the harness manifest/tests remain green.
59
+ - Docs: pass. Shared-plan docs and the component matrix now reflect Wave 5 closure, while tracked changes remain bounded to `repo-landed`.
60
+
61
+ Residual later-scope work:
62
+
63
+ - tracked-change OOXML import/export and accept/reject flows remain Wave 6 work
64
+ - package-level preservation baseline and malformed-document diagnostics remain later-wave work
65
+ - `S02` remains the primary real-world redline scenario for Wave 6 and later
66
+
67
+ [wave-gate] architecture=pass integration=pass durability=pass live=pass docs=pass detail=Wave-5 manually closed after structural and comment proof reran green and the live runtime now exposes active-thread plus detached-anchor state end to end
68
+ Verdict: PASS