@beyondwork/docx-react-component 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/README.md +44 -104
  2. package/package.json +66 -15
  3. package/src/api/public-types.ts +1 -1
  4. package/src/compare/diff-engine.ts +530 -0
  5. package/src/compare/export-redlines.ts +162 -0
  6. package/src/compare/snapshot.ts +37 -0
  7. package/src/core/commands/index.ts +1 -1
  8. package/src/core/state/editor-state.ts +2 -2
  9. package/src/index.ts +45 -0
  10. package/src/legal/bookmarks.ts +196 -0
  11. package/src/legal/cross-references.ts +356 -0
  12. package/src/legal/defined-terms.ts +203 -0
  13. package/src/runtime/document-runtime.ts +3 -5
  14. package/src/runtime/table-commands.ts +4 -1
  15. package/src/runtime/table-schema.ts +17 -2
  16. package/src/runtime/virtualized-rendering.ts +258 -0
  17. package/src/ui/WordReviewEditor.tsx +256 -35
  18. package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +2 -2
  19. package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +16 -2
  20. package/.codex/config.toml +0 -5
  21. package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
  22. package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
  23. package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
  24. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
  25. package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
  26. package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
  27. package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
  28. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
  29. package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
  30. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
  31. package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
  32. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
  33. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
  34. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
  35. package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
  36. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
  37. package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
  38. package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
  39. package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
  40. package/.cursor/mcp.json +0 -7
  41. package/.github/workflows/ci.yml +0 -35
  42. package/.mcp.json +0 -7
  43. package/.openclaw/workspace-state.json +0 -4
  44. package/.pnpmrc.json +0 -1
  45. package/.wave-launch.sh +0 -7
  46. package/.workspace-marker +0 -1
  47. package/AGENTS.md +0 -78
  48. package/CHANGELOG.md +0 -177
  49. package/DESIGN.md +0 -929
  50. package/HEARTBEAT.md +0 -7
  51. package/IDENTITY.md +0 -23
  52. package/SOUL.md +0 -36
  53. package/TOOLS.md +0 -40
  54. package/USER.md +0 -17
  55. package/docs/README.md +0 -107
  56. package/docs/agents/wave-cont-eval-role.md +0 -36
  57. package/docs/agents/wave-cont-qa-role.md +0 -52
  58. package/docs/agents/wave-deploy-verifier-role.md +0 -34
  59. package/docs/agents/wave-design-role.md +0 -47
  60. package/docs/agents/wave-documentation-role.md +0 -34
  61. package/docs/agents/wave-infra-role.md +0 -34
  62. package/docs/agents/wave-integration-role.md +0 -37
  63. package/docs/agents/wave-launcher-role.md +0 -41
  64. package/docs/agents/wave-orchestrator-role.md +0 -52
  65. package/docs/agents/wave-planner-role.md +0 -39
  66. package/docs/agents/wave-security-role.md +0 -40
  67. package/docs/architecture/docx/README.md +0 -10
  68. package/docs/architecture/future/README.md +0 -8
  69. package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
  70. package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
  71. package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
  72. package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
  73. package/docs/comment-redline-overview.md +0 -350
  74. package/docs/concepts/context7-vs-skills.md +0 -118
  75. package/docs/concepts/operating-modes.md +0 -91
  76. package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
  77. package/docs/concepts/what-is-a-wave.md +0 -217
  78. package/docs/context7/bundles.json +0 -222
  79. package/docs/context7/planner-agent/README.md +0 -28
  80. package/docs/context7/planner-agent/manifest.json +0 -83
  81. package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
  82. package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
  83. package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
  84. package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
  85. package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
  86. package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
  87. package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
  88. package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
  89. package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
  90. package/docs/evals/arm-templates/README.md +0 -13
  91. package/docs/evals/arm-templates/full-wave.json +0 -15
  92. package/docs/evals/arm-templates/single-agent.json +0 -15
  93. package/docs/evals/benchmark-catalog.json +0 -670
  94. package/docs/evals/cases/README.md +0 -47
  95. package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
  96. package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
  97. package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
  98. package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
  99. package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
  100. package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
  101. package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
  102. package/docs/evals/external-benchmarks.json +0 -85
  103. package/docs/evals/external-command-config.sample.json +0 -9
  104. package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
  105. package/docs/evals/pilots/README.md +0 -47
  106. package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
  107. package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
  108. package/docs/evals/wave-benchmark-program.md +0 -302
  109. package/docs/guides/planner.md +0 -220
  110. package/docs/guides/recommendations-0.8.9.md +0 -133
  111. package/docs/guides/signal-wrappers.md +0 -165
  112. package/docs/guides/terminal-surfaces.md +0 -96
  113. package/docs/image copy.png +0 -0
  114. package/docs/image.png +0 -0
  115. package/docs/images/image.png +0 -0
  116. package/docs/legal-feedback-architecture.md +0 -498
  117. package/docs/plans/component-cutover-matrix.json +0 -1072
  118. package/docs/plans/component-cutover-matrix.md +0 -307
  119. package/docs/plans/context7-wave-orchestrator.md +0 -155
  120. package/docs/plans/current-state.md +0 -198
  121. package/docs/plans/docx/README.md +0 -9
  122. package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
  123. package/docs/plans/examples/wave-example-live-proof.md +0 -435
  124. package/docs/plans/master-plan.md +0 -224
  125. package/docs/plans/migration.md +0 -538
  126. package/docs/plans/operations/README.md +0 -7
  127. package/docs/plans/operations/wave-10-word-certification.md +0 -87
  128. package/docs/plans/operations/wave-8-railway-staging.md +0 -153
  129. package/docs/plans/operations/wave-9-manual-certification.md +0 -73
  130. package/docs/plans/platform/README.md +0 -9
  131. package/docs/plans/reference/legal-checklist-coverage.md +0 -258
  132. package/docs/plans/wave-orchestrator.md +0 -423
  133. package/docs/plans/waves/README.md +0 -75
  134. package/docs/plans/waves/completed/wave-0.md +0 -195
  135. package/docs/plans/waves/completed/wave-1.md +0 -379
  136. package/docs/plans/waves/completed/wave-10.md +0 -670
  137. package/docs/plans/waves/completed/wave-11.md +0 -335
  138. package/docs/plans/waves/completed/wave-12.md +0 -417
  139. package/docs/plans/waves/completed/wave-13.md +0 -316
  140. package/docs/plans/waves/completed/wave-14.md +0 -319
  141. package/docs/plans/waves/completed/wave-15.md +0 -321
  142. package/docs/plans/waves/completed/wave-16.md +0 -316
  143. package/docs/plans/waves/completed/wave-17.md +0 -331
  144. package/docs/plans/waves/completed/wave-18.md +0 -328
  145. package/docs/plans/waves/completed/wave-2.md +0 -438
  146. package/docs/plans/waves/completed/wave-3.md +0 -435
  147. package/docs/plans/waves/completed/wave-4.md +0 -430
  148. package/docs/plans/waves/completed/wave-5.md +0 -430
  149. package/docs/plans/waves/completed/wave-6.md +0 -430
  150. package/docs/plans/waves/completed/wave-7.md +0 -526
  151. package/docs/plans/waves/completed/wave-8.md +0 -596
  152. package/docs/plans/waves/completed/wave-9.md +0 -552
  153. package/docs/plans/waves/deferred/README.md +0 -14
  154. package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
  155. package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
  156. package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
  157. package/docs/plans/waves/design/README.md +0 -5
  158. package/docs/plans/waves/design/wave-1-a1.md +0 -309
  159. package/docs/plans/waves/reviews/README.md +0 -5
  160. package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
  161. package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
  162. package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
  163. package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
  164. package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
  165. package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
  166. package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
  167. package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
  168. package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
  169. package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
  170. package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
  171. package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
  172. package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
  173. package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
  174. package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
  175. package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
  176. package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
  177. package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
  178. package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
  179. package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
  180. package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
  181. package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
  182. package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
  183. package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
  184. package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
  185. package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
  186. package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
  187. package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
  188. package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
  189. package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
  190. package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
  191. package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
  192. package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
  193. package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
  194. package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
  195. package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
  196. package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
  197. package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
  198. package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
  199. package/docs/plans/waves/reviews/wave-8-security.md +0 -47
  200. package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
  201. package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
  202. package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
  203. package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
  204. package/docs/plans/waves/specs/README.md +0 -5
  205. package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
  206. package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
  207. package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
  208. package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
  209. package/docs/plans/waves/wave-19.md +0 -341
  210. package/docs/plans/waves/wave-20.md +0 -308
  211. package/docs/plans/waves/wave-21.md +0 -289
  212. package/docs/plans/waves/wave-22.md +0 -221
  213. package/docs/plans/waves/wave-23.md +0 -295
  214. package/docs/plans/waves/wave-24.md +0 -286
  215. package/docs/plans/waves/wave-25.md +0 -313
  216. package/docs/plans/waves/wave-26.md +0 -300
  217. package/docs/plans/waves/wave-27.md +0 -299
  218. package/docs/plans/waves/wave-28.md +0 -368
  219. package/docs/plans/waves/wave-29.md +0 -303
  220. package/docs/plans/waves/wave-30.md +0 -307
  221. package/docs/plans/waves/wave-31.md +0 -231
  222. package/docs/plans/waves/wave-32.md +0 -152
  223. package/docs/plans/waves/wave-33.md +0 -147
  224. package/docs/plans/waves/wave-34.md +0 -148
  225. package/docs/plans/waves/wave-35.md +0 -141
  226. package/docs/plans/waves/wave-36.md +0 -146
  227. package/docs/plans/xlsx/README.md +0 -14
  228. package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
  229. package/docs/reference/cli-reference.md +0 -600
  230. package/docs/reference/coordination-and-closure.md +0 -487
  231. package/docs/reference/deep-research-report (15).md +0 -25
  232. package/docs/reference/docx/README.md +0 -10
  233. package/docs/reference/legal-checklist.md +0 -445
  234. package/docs/reference/live-proof-waves.md +0 -199
  235. package/docs/reference/ooxml-compliance.md +0 -129
  236. package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
  237. package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
  238. package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
  239. package/docs/reference/public-api.md +0 -456
  240. package/docs/reference/repository-guidance.md +0 -58
  241. package/docs/reference/runtime-config/README.md +0 -182
  242. package/docs/reference/runtime-config/claude.md +0 -110
  243. package/docs/reference/runtime-config/codex.md +0 -82
  244. package/docs/reference/runtime-config/opencode.md +0 -93
  245. package/docs/reference/sample-waves.md +0 -105
  246. package/docs/reference/skills.md +0 -237
  247. package/docs/reference/templates/AGENTS.md +0 -78
  248. package/docs/reference/templates/HEARTBEAT.md +0 -7
  249. package/docs/reference/templates/IDENTITY.md +0 -23
  250. package/docs/reference/templates/SOUL.md +0 -36
  251. package/docs/reference/templates/TOOLS.md +0 -40
  252. package/docs/reference/templates/USER.md +0 -17
  253. package/docs/reference/wave-control.md +0 -184
  254. package/docs/reference/wave-planning-lessons.md +0 -167
  255. package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
  256. package/docs/reference/word-review-editor-ux-guide.md +0 -253
  257. package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
  258. package/docs/research/agent-context-sources.md +0 -178
  259. package/docs/research/coordination-failure-review.md +0 -290
  260. package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
  261. package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
  262. package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
  263. package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
  264. package/docs/research/xlsx/raw/README.md +0 -13
  265. package/docs/roadmap.md +0 -174
  266. package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
  267. package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
  268. package/docs/xlsx-react/README.md +0 -38
  269. package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
  270. package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
  271. package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
  272. package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
  273. package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
  274. package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
  275. package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
  276. package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
  277. package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
  278. package/examples/README.md +0 -16
  279. package/memory/MEMORY.md +0 -24
  280. package/pnpm-workspace.yaml +0 -4
  281. package/scripts/check-no-authored-js.sh +0 -13
  282. package/scripts/context7-api-check.sh +0 -65
  283. package/scripts/context7-export-env.sh +0 -42
  284. package/scripts/run-context7-mcp.sh +0 -8
  285. package/scripts/run-workspace-tests.sh +0 -15
  286. package/scripts/start-wave-10-local.sh +0 -189
  287. package/scripts/wave-agent-attach.sh +0 -47
  288. package/scripts/wave-auto-answer.sh +0 -118
  289. package/scripts/wave-dashboard-attach.sh +0 -13
  290. package/scripts/wave-launch.sh +0 -273
  291. package/scripts/wave-overnight-supervisor.sh +0 -145
  292. package/scripts/wave-status.sh +0 -379
  293. package/scripts/wave-watch.sh +0 -231
  294. package/services/README.md +0 -17
  295. package/services/openxml-validator/Dockerfile +0 -29
  296. package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
  297. package/services/openxml-validator/Program.cs +0 -436
  298. package/services/openxml-validator/README.md +0 -152
  299. package/services/openxml-validator/railway.json +0 -16
  300. package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
  301. package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
  302. package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
  303. package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
  304. package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
  305. package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
  306. package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
  307. package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
  308. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
  309. package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
  310. package/services/react-word-editor/Dockerfile +0 -26
  311. package/services/react-word-editor/README.md +0 -254
  312. package/services/react-word-editor/app/api/certification/route.ts +0 -79
  313. package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
  314. package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
  315. package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
  316. package/services/react-word-editor/app/api/exports/route.ts +0 -81
  317. package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
  318. package/services/react-word-editor/app/api/health/route.ts +0 -70
  319. package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
  320. package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
  321. package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
  322. package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
  323. package/services/react-word-editor/app/api/uploads/route.ts +0 -70
  324. package/services/react-word-editor/app/api/validate/route.ts +0 -310
  325. package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
  326. package/services/react-word-editor/app/certification/page.tsx +0 -32
  327. package/services/react-word-editor/app/dashboard/page.tsx +0 -7
  328. package/services/react-word-editor/app/demo/page.tsx +0 -30
  329. package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
  330. package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
  331. package/services/react-word-editor/app/fixtures/page.tsx +0 -7
  332. package/services/react-word-editor/app/globals.css +0 -121
  333. package/services/react-word-editor/app/layout.tsx +0 -32
  334. package/services/react-word-editor/app/page.tsx +0 -30
  335. package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
  336. package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
  337. package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
  338. package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
  339. package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
  340. package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
  341. package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
  342. package/services/react-word-editor/lib/certification-bundle.ts +0 -796
  343. package/services/react-word-editor/lib/certification-store.ts +0 -661
  344. package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
  345. package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
  346. package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
  347. package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
  348. package/services/react-word-editor/lib/editor-session.ts +0 -228
  349. package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
  350. package/services/react-word-editor/lib/harness-client.ts +0 -347
  351. package/services/react-word-editor/lib/harness-config.json +0 -30
  352. package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
  353. package/services/react-word-editor/lib/harness-config.ts +0 -21
  354. package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
  355. package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
  356. package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
  357. package/services/react-word-editor/lib/private-mode.ts +0 -61
  358. package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
  359. package/services/react-word-editor/lib/regression-report.ts +0 -896
  360. package/services/react-word-editor/lib/run-artifacts.ts +0 -934
  361. package/services/react-word-editor/lib/run-history.ts +0 -755
  362. package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
  363. package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
  364. package/services/react-word-editor/lib/storage.ts +0 -953
  365. package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
  366. package/services/react-word-editor/lib/validator-client.ts +0 -95
  367. package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
  368. package/services/react-word-editor/middleware.ts +0 -35
  369. package/services/react-word-editor/next-env.d.ts +0 -6
  370. package/services/react-word-editor/next.config.mjs +0 -15
  371. package/services/react-word-editor/package.json +0 -38
  372. package/services/react-word-editor/postcss.config.mjs +0 -8
  373. package/services/react-word-editor/railway.json +0 -21
  374. package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
  375. package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
  376. package/services/react-word-editor/tsconfig.json +0 -39
  377. package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
  378. package/skills/README.md +0 -48
  379. package/skills/domain-docx-compatibility/SKILL.md +0 -44
  380. package/skills/domain-docx-compatibility/skill.json +0 -19
  381. package/skills/domain-editor-architecture/SKILL.md +0 -49
  382. package/skills/domain-editor-architecture/skill.json +0 -19
  383. package/skills/domain-legal-review/SKILL.md +0 -39
  384. package/skills/domain-legal-review/skill.json +0 -19
  385. package/skills/provider-aws/SKILL.md +0 -117
  386. package/skills/provider-aws/adapters/claude.md +0 -1
  387. package/skills/provider-aws/adapters/codex.md +0 -1
  388. package/skills/provider-aws/references/service-verification.md +0 -39
  389. package/skills/provider-aws/skill.json +0 -54
  390. package/skills/provider-custom-deploy/SKILL.md +0 -64
  391. package/skills/provider-custom-deploy/skill.json +0 -50
  392. package/skills/provider-docker-compose/SKILL.md +0 -96
  393. package/skills/provider-docker-compose/adapters/local.md +0 -1
  394. package/skills/provider-docker-compose/skill.json +0 -53
  395. package/skills/provider-github-release/SKILL.md +0 -121
  396. package/skills/provider-github-release/adapters/claude.md +0 -1
  397. package/skills/provider-github-release/adapters/codex.md +0 -1
  398. package/skills/provider-github-release/skill.json +0 -55
  399. package/skills/provider-kubernetes/SKILL.md +0 -143
  400. package/skills/provider-kubernetes/adapters/claude.md +0 -1
  401. package/skills/provider-kubernetes/adapters/codex.md +0 -1
  402. package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
  403. package/skills/provider-kubernetes/skill.json +0 -52
  404. package/skills/provider-railway/SKILL.md +0 -123
  405. package/skills/provider-railway/adapters/claude.md +0 -1
  406. package/skills/provider-railway/adapters/codex.md +0 -1
  407. package/skills/provider-railway/adapters/local.md +0 -1
  408. package/skills/provider-railway/adapters/opencode.md +0 -1
  409. package/skills/provider-railway/references/verification-commands.md +0 -39
  410. package/skills/provider-railway/skill.json +0 -71
  411. package/skills/provider-ssh-manual/SKILL.md +0 -97
  412. package/skills/provider-ssh-manual/skill.json +0 -54
  413. package/skills/repo-coding-rules/SKILL.md +0 -55
  414. package/skills/repo-coding-rules/skill.json +0 -34
  415. package/skills/role-cont-eval/SKILL.md +0 -91
  416. package/skills/role-cont-eval/adapters/codex.md +0 -1
  417. package/skills/role-cont-eval/skill.json +0 -36
  418. package/skills/role-cont-qa/SKILL.md +0 -100
  419. package/skills/role-cont-qa/adapters/claude.md +0 -1
  420. package/skills/role-cont-qa/skill.json +0 -36
  421. package/skills/role-deploy/SKILL.md +0 -97
  422. package/skills/role-deploy/skill.json +0 -36
  423. package/skills/role-design/SKILL.md +0 -50
  424. package/skills/role-design/skill.json +0 -36
  425. package/skills/role-documentation/SKILL.md +0 -76
  426. package/skills/role-documentation/skill.json +0 -36
  427. package/skills/role-implementation/SKILL.md +0 -45
  428. package/skills/role-implementation/skill.json +0 -36
  429. package/skills/role-infra/SKILL.md +0 -81
  430. package/skills/role-infra/skill.json +0 -36
  431. package/skills/role-integration/SKILL.md +0 -91
  432. package/skills/role-integration/skill.json +0 -36
  433. package/skills/role-planner/SKILL.md +0 -39
  434. package/skills/role-planner/skill.json +0 -21
  435. package/skills/role-research/SKILL.md +0 -65
  436. package/skills/role-research/skill.json +0 -36
  437. package/skills/role-security/SKILL.md +0 -60
  438. package/skills/role-security/skill.json +0 -36
  439. package/skills/runtime-claude/SKILL.md +0 -66
  440. package/skills/runtime-claude/skill.json +0 -36
  441. package/skills/runtime-codex/SKILL.md +0 -58
  442. package/skills/runtime-codex/skill.json +0 -36
  443. package/skills/runtime-local/SKILL.md +0 -46
  444. package/skills/runtime-local/skill.json +0 -36
  445. package/skills/runtime-opencode/SKILL.md +0 -58
  446. package/skills/runtime-opencode/skill.json +0 -36
  447. package/skills/signal-hygiene/SKILL.md +0 -51
  448. package/skills/signal-hygiene/skill.json +0 -20
  449. package/skills/tui-design/SKILL.md +0 -77
  450. package/skills/tui-design/references/tui-design.md +0 -259
  451. package/skills/tui-design/skill.json +0 -36
  452. package/skills/wave-core/SKILL.md +0 -141
  453. package/skills/wave-core/references/marker-syntax.md +0 -70
  454. package/skills/wave-core/skill.json +0 -35
  455. package/test/README.md +0 -16
  456. package/test/core/formatting-commands.test.ts +0 -285
  457. package/test/core/image-commands.test.ts +0 -298
  458. package/test/core/mapping.test.ts +0 -186
  459. package/test/core/text-commands.test.ts +0 -176
  460. package/test/fixtures/docx/F01-basic-contract.docx +0 -0
  461. package/test/fixtures/docx/F01-basic-contract.md +0 -33
  462. package/test/fixtures/docx/F02-headings-styles.docx +0 -0
  463. package/test/fixtures/docx/F02-headings-styles.md +0 -33
  464. package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
  465. package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
  466. package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
  467. package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
  468. package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
  469. package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
  470. package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
  471. package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
  472. package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
  473. package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
  474. package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
  475. package/test/fixtures/docx/F08-hyperlinks.md +0 -33
  476. package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
  477. package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
  478. package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
  479. package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
  480. package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
  481. package/test/fixtures/docx/F11-redlines-basic.md +0 -33
  482. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
  483. package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
  484. package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
  485. package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
  486. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
  487. package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
  488. package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
  489. package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
  490. package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
  491. package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
  492. package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
  493. package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
  494. package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
  495. package/test/fixtures/docx/F18-content-controls-template.md +0 -33
  496. package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
  497. package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
  498. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
  499. package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
  500. package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
  501. package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
  502. package/test/fixtures/docx/README.md +0 -74
  503. package/test/fixtures/docx/certification-manifest.json +0 -104
  504. package/test/fixtures/docx/fixtures.manifest.json +0 -196
  505. package/test/fixtures/encrypted-docx/README.md +0 -27
  506. package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
  507. package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
  508. package/test/fixtures/scenarios/docx/README.md +0 -25
  509. package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
  510. package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
  511. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
  512. package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
  513. package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
  514. package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
  515. package/test/formats/xlsx/model/workbook.test.ts +0 -669
  516. package/test/helpers/dom-setup.ts +0 -124
  517. package/test/io/comment-roundtrip.test.ts +0 -272
  518. package/test/io/complex-content-roundtrip.test.ts +0 -632
  519. package/test/io/docx-compatibility-regression.test.ts +0 -199
  520. package/test/io/docx-session.test.ts +0 -1495
  521. package/test/io/footnotes-roundtrip.test.ts +0 -318
  522. package/test/io/headers-footers-roundtrip.test.ts +0 -547
  523. package/test/io/numbering-roundtrip.test.ts +0 -234
  524. package/test/io/package-reader.test.ts +0 -199
  525. package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
  526. package/test/io/preserved-package-roundtrip.test.ts +0 -365
  527. package/test/io/property-completeness.test.ts +0 -292
  528. package/test/io/revision-roundtrip.test.ts +0 -347
  529. package/test/io/structural-blocks.test.ts +0 -202
  530. package/test/io/table-media-roundtrip.test.ts +0 -448
  531. package/test/io/table-properties-roundtrip.test.ts +0 -569
  532. package/test/io/table-roundtrip.test.ts +0 -302
  533. package/test/io/text-roundtrip.test.ts +0 -344
  534. package/test/model/canonical-document.test.ts +0 -285
  535. package/test/preservation/opaque-fragment-store.test.ts +0 -121
  536. package/test/preservation/package-preservation.test.ts +0 -395
  537. package/test/preservation/store.test.ts +0 -84
  538. package/test/review/comment-remapping.test.ts +0 -220
  539. package/test/review/comment-store.test.ts +0 -180
  540. package/test/review/move-revisions.test.ts +0 -143
  541. package/test/review/property-change-revisions.test.ts +0 -225
  542. package/test/review/revision-actions.test.ts +0 -330
  543. package/test/review/revision-store.test.ts +0 -193
  544. package/test/runtime/session-capabilities.test.ts +0 -260
  545. package/test/runtime/table-commands.test.ts +0 -356
  546. package/test/runtime/table-schema.test.ts +0 -221
  547. package/test/runtime/tracked-changes-toggle.test.ts +0 -107
  548. package/test/ui/comment-review-surface.test.tsx +0 -114
  549. package/test/ui/reduced-motion-toggle.test.tsx +0 -137
  550. package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
  551. package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
  552. package/test/ui/word-review-editor.test.js +0 -188
  553. package/test/ui/word-review-editor.test.tsx +0 -280
  554. package/test/ui-tailwind/search-plugin.test.ts +0 -286
  555. package/test/validation/compatibility-engine.test.ts +0 -336
  556. package/test/validation/compatibility-report.test.ts +0 -189
  557. package/test/validation/low-priority-word-surfaces.test.ts +0 -282
  558. package/test/validation/malformed-doc.test.ts +0 -113
  559. package/test-results/.last-run.json +0 -4
  560. package/wave.config.json +0 -406
@@ -1,82 +0,0 @@
1
- # Wave 7 cont-QA Report
2
-
3
- ## 2026-03-26T17:31:24Z Final Closure Pass
4
-
5
- Wave 7 now closes on the current worktree.
6
-
7
- Evidence reviewed:
8
-
9
- - `docs/reference/repository-guidance.md`
10
- - `docs/research/agent-context-sources.md`
11
- - `docs/reference/wave-planning-lessons.md`
12
- - `docs/plans/current-state.md`
13
- - `docs/plans/master-plan.md`
14
- - `docs/roadmap.md`
15
- - `docs/plans/component-cutover-matrix.md`
16
- - `docs/plans/component-cutover-matrix.json`
17
- - `docs/plans/migration.md`
18
- - `docs/plans/waves/wave-7.md`
19
- - `docs/plans/waves/wave-8.md`
20
- - `docs/plans/waves/reviews/wave-7-preservation-proof.md`
21
- - `docs/plans/waves/reviews/wave-7-ooxml-compliance.md`
22
- - `docs/plans/waves/reviews/wave-7-trust-ux.md`
23
- - `.tmp/wave-7-preservation/preservation-manifest.json`
24
- - `.tmp/wave-7-preservation/reattachment-report.json`
25
- - `.tmp/wave-7-preservation/package-fidelity-report.json`
26
- - `.tmp/wave-7-preservation/review-boundary-report.json`
27
- - `.tmp/wave-7-preservation/malformed-doc-report.json`
28
- - `.tmp/wave-7-preservation/trust-ux-checklist.md`
29
- - `.tmp/wave-7-preservation/locked-region-ui-smoke.json`
30
- - `.tmp/main-wave-launcher/integration/wave-7.md`
31
- - `.tmp/main-wave-launcher/integration/wave-7.json`
32
- - `.tmp/main-wave-launcher/results/wave-7/attempt-2/A8.json`
33
- - `.tmp/main-wave-launcher/results/wave-7/attempt-2/A9.json`
34
- - `.tmp/main-wave-launcher/results/wave-7/attempt-2/A0.json`
35
- - `src/io/docx-session.ts`
36
- - `src/ui/editor-surface/editor-surface.tsx`
37
- - `src/ui/compatibility/compatibility-panel.tsx`
38
- - `src/ui/status/status-bar.tsx` (test-only standalone variant)
39
- - `test/io/preserved-package-roundtrip.test.ts`
40
- - `test/io/docx-session.test.ts`
41
- - `test/io/revision-roundtrip.test.ts`
42
- - `test/io/comment-roundtrip.test.ts`
43
- - `test/preservation/opaque-fragment-store.test.ts`
44
- - `test/ui/opaque-region.test.tsx`
45
- - `test/ui/core-text-editor.test.tsx`
46
- - `test/ui/word-review-editor.interaction.test.tsx`
47
- - `test/validation/malformed-doc.test.ts`
48
- - `pnpm exec wave control status --lane main --wave 7 --json`
49
-
50
- Validation rerun:
51
-
52
- - `pnpm exec tsx --test test/ui/opaque-region.test.tsx test/ui/core-text-editor.test.tsx test/ui/word-review-editor.interaction.test.tsx test/io/docx-session.test.ts test/validation/malformed-doc.test.ts`
53
- - result: `25` pass, `0` fail
54
- - `pnpm exec tsx --test test/io/preserved-package-roundtrip.test.ts test/io/revision-roundtrip.test.ts test/io/comment-roundtrip.test.ts test/preservation/opaque-fragment-store.test.ts`
55
- - result: `14` pass, `0` fail
56
- - `pnpm run lint:no-authored-js`
57
- - result: pass
58
- - `pnpm exec wave doctor --json`
59
- - result: `ok: true`
60
-
61
- Reconciliation:
62
-
63
- - The Wave 7 package-fidelity, review-boundary, and malformed-doc artifacts remain green and support the bounded Wave 7 proof.
64
- - The mounted trust and diagnostics seam is closed on the shipped path. `src/ui/editor-surface/editor-surface.tsx`, `src/ui/compatibility/compatibility-panel.tsx`, `src/ui/status/status-bar.tsx`, and `src/io/docx-session.ts` now match the runtime-owned compatibility and diagnostics contract on the current worktree.
65
- - The earlier trust-gap and helper-gap residue is superseded by current code plus the focused reruns above. Wave 7 should now be judged from the mounted shell and the live `loadDocxEditorSession(...)` path, not from the stale attempt-1 isolation notes.
66
- - The shared-plan docs now match the landed implementation truth: `unsupported-ooxml-preservation` remains `baseline-proved`, `tracked-changes-and-review-actions` advances to `baseline-proved`, and Wave 8 remains the owner of the explicit harness-backed `.docx -> comment -> review/redline -> export -> validate` proof.
67
- - The remaining control-plane residue is administrative, not architectural. The only remaining work after this report is refreshing the role-owned A8 and A9 closure signals and clearing the stale rerun residue.
68
-
69
- Smallest remaining blocker set:
70
-
71
- 1. None on the current code and documentation truth.
72
-
73
- Gate judgment:
74
-
75
- - Architecture: pass. The mounted preserve-only trust path and the live diagnostics path satisfy the Wave 7 runtime contract.
76
- - Integration: pass. The integration summary, result artifact, and Wave 7 review packet agree on the zero-implementation-blocker state.
77
- - Durability: pass. The Wave 7 proof bundle remains present and green on the current worktree.
78
- - Live: pass. Wave 7 remains a repo proof wave with no deploy bar.
79
- - Docs: pass. The shared-plan set and the Wave 7 review packet match the landed code truth.
80
-
81
- [wave-gate] architecture=pass integration=pass durability=pass live=pass docs=pass detail=Wave 7 proof, integration, and shared-plan docs now match the shipped code and refreshed artifacts
82
- Verdict: PASS
@@ -1,85 +0,0 @@
1
- # Wave 7 OOXML Preservation Compliance Review
2
-
3
- ## 2026-03-26T17:31:24Z Closure Pass
4
-
5
- Wave 7 now clears the full declared compliance bar on the current worktree.
6
-
7
- The earlier package-fidelity gap was already closed, and the later mounted trust and diagnostics gap is now also closed in the shipped editor path. On the current evidence set, both `unsupported-ooxml-preservation` and the bounded Wave 7 claim for `tracked-changes-and-review-actions` meet the declared `baseline-proved` target.
8
-
9
- ### Evidence reviewed
10
-
11
- - [wave-7.md](/home/coder/docx-react-component/docs/plans/waves/wave-7.md)
12
- - [ooxml-compliance.md](/home/coder/docx-react-component/docs/reference/ooxml-compliance.md)
13
- - [repository-guidance.md](/home/coder/docx-react-component/docs/reference/repository-guidance.md)
14
- - [agent-context-sources.md](/home/coder/docx-react-component/docs/research/agent-context-sources.md)
15
- - [wave-7-preservation-proof.md](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-7-preservation-proof.md)
16
- - [wave-7-trust-ux.md](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-7-trust-ux.md)
17
- - [preservation-manifest.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/preservation-manifest.json)
18
- - [reattachment-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/reattachment-report.json)
19
- - [package-fidelity-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/package-fidelity-report.json)
20
- - [review-boundary-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/review-boundary-report.json)
21
- - [malformed-doc-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/malformed-doc-report.json)
22
- - [trust-ux-checklist.md](/home/coder/docx-react-component/.tmp/wave-7-preservation/trust-ux-checklist.md)
23
- - [locked-region-ui-smoke.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/locked-region-ui-smoke.json)
24
- - [package-preservation.ts](/home/coder/docx-react-component/src/preservation/package-preservation.ts)
25
- - [markup-compatibility.ts](/home/coder/docx-react-component/src/preservation/markup-compatibility.ts)
26
- - [docx-session.ts](/home/coder/docx-react-component/src/io/docx-session.ts)
27
- - [serialize-comments.ts](/home/coder/docx-react-component/src/io/export/serialize-comments.ts)
28
- - [serialize-runtime-revisions.ts](/home/coder/docx-react-component/src/io/export/serialize-runtime-revisions.ts)
29
- - [compatibility-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/compatibility-panel.tsx)
30
- - [status-bar.tsx](/home/coder/docx-react-component/src/ui/status/status-bar.tsx) (test-only standalone variant)
31
- - [editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx)
32
- - [preserved-package-roundtrip.test.ts](/home/coder/docx-react-component/test/io/preserved-package-roundtrip.test.ts)
33
- - [package-preservation.test.ts](/home/coder/docx-react-component/test/preservation/package-preservation.test.ts)
34
- - [docx-session.test.ts](/home/coder/docx-react-component/test/io/docx-session.test.ts)
35
- - [opaque-region.test.tsx](/home/coder/docx-react-component/test/ui/opaque-region.test.tsx)
36
- - [word-review-editor.interaction.test.tsx](/home/coder/docx-react-component/test/ui/word-review-editor.interaction.test.tsx)
37
- - [malformed-doc.test.ts](/home/coder/docx-react-component/test/validation/malformed-doc.test.ts)
38
-
39
- ### Compliance judgment
40
-
41
- - unknown package parts and relationships: pass
42
- - `AlternateContent` and `mc:Ignorable`: pass
43
- - note parts, field markup, SDTs, and custom XML wrappers: pass
44
- - preserve-only review markup at export boundaries: pass for the bounded Wave 7 claim
45
- - malformed packages: pass as fail-closed read-only diagnostics with export blocked
46
- - preserve-only trust and diagnostics UX in the mounted editor: pass
47
-
48
- ### Reconciliation
49
-
50
- - The earlier trust blocker is now superseded. [wave-7-trust-ux.md](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-7-trust-ux.md) and the focused mounted-shell rerun now show the preserve-only trust path integrated in the shipped shell.
51
- - [package-fidelity-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/package-fidelity-report.json) still shows `missingPreservedParts = []`, `contentTypeMismatches = []`, and stable preserved relationships across `F15` through `F20`.
52
- - [malformed-doc-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/malformed-doc-report.json) still proves `F21` remains fail-closed with `readOnly: true`, `fatalErrorCode: package_corrupt`, `blockExport: true`, and `exportRejected: true`.
53
- - [review-boundary-report.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/review-boundary-report.json) still proves the bounded tracked-change claim: supported imported redline export remains non-destructive, while preserve-only imported review markup stays explicit and retained.
54
- - [compatibility-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/compatibility-panel.tsx), [status-bar.tsx](/home/coder/docx-react-component/src/ui/status/status-bar.tsx), and [editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx) now align the mounted shell with that runtime-owned compatibility story.
55
-
56
- ### Validation rerun
57
-
58
- ```bash
59
- pnpm exec tsx --test \
60
- test/io/preserved-package-roundtrip.test.ts \
61
- test/io/docx-session.test.ts \
62
- test/preservation/package-preservation.test.ts \
63
- test/ui/opaque-region.test.tsx \
64
- test/ui/word-review-editor.interaction.test.tsx \
65
- test/validation/malformed-doc.test.ts
66
- ```
67
-
68
- Result: `22` pass, `0` fail.
69
-
70
- ### Conclusion
71
-
72
- Current A5 judgment: pass for the declared Wave 7 scope.
73
-
74
- - `unsupported-ooxml-preservation` now has both the durable package-fidelity proof and the mounted trust or diagnostics proof needed for the Wave 7 `baseline-proved` claim.
75
- - `tracked-changes-and-review-actions` has the OOXML and export-boundary evidence needed for its bounded Wave 7 `baseline-proved` claim.
76
-
77
- Shared-plan implication for A8, A9, and A0:
78
-
79
- - treat the old mounted-trust blocker as superseded
80
- - promote `tracked-changes-and-review-actions` to `baseline-proved`
81
- - keep the Wave 7 claim bounded to preserve-only package fidelity plus supported imported-redline export safety, not Word certification
82
-
83
- ## Historical Note
84
-
85
- The earlier `2026-03-26T16:18:00Z` blocked pass was accurate for the pre-rerun worktree, but it is superseded by the mounted-shell integration now present in source and by the refreshed trust artifacts.
@@ -1,119 +0,0 @@
1
- # Wave 7 Preservation Proof
2
-
3
- Generated on `2026-03-26` for Wave 7 / A4.
4
-
5
- ## Scope
6
-
7
- This proof bundle closes the A4-owned preservation baseline for:
8
-
9
- - `unsupported-ooxml-preservation` package and fixture proof across `F15` through `F21`
10
- - `tracked-changes-and-review-actions` at the preserve-only boundary, including supported imported-redline export and preserve-only imported review markup survival
11
-
12
- Durable artifacts:
13
-
14
- - `.tmp/wave-7-preservation/preservation-manifest.json`
15
- - `.tmp/wave-7-preservation/reattachment-report.json`
16
- - `.tmp/wave-7-preservation/package-fidelity-report.json`
17
- - `.tmp/wave-7-preservation/review-boundary-report.json`
18
- - `.tmp/wave-7-preservation/malformed-doc-report.json`
19
-
20
- Generated fixtures:
21
-
22
- - `test/fixtures/docx/F15-sections-headers-footers.docx`
23
- - `test/fixtures/docx/F16-footnotes-endnotes.docx`
24
- - `test/fixtures/docx/F17-fields-and-toc.docx`
25
- - `test/fixtures/docx/F18-content-controls-template.docx`
26
- - `test/fixtures/docx/F19-custom-xml-doc-assembly.docx`
27
- - `test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx`
28
- - `test/fixtures/docx/F21-malformed-broken-docx.docx`
29
-
30
- Roundtrip exports captured for inspection:
31
-
32
- - `.tmp/wave-7-preservation/exports/F15.roundtrip.docx`
33
- - `.tmp/wave-7-preservation/exports/F16.roundtrip.docx`
34
- - `.tmp/wave-7-preservation/exports/F17.roundtrip.docx`
35
- - `.tmp/wave-7-preservation/exports/F18.roundtrip.docx`
36
- - `.tmp/wave-7-preservation/exports/F19.roundtrip.docx`
37
- - `.tmp/wave-7-preservation/exports/F20.roundtrip.docx`
38
- - `.tmp/wave-7-preservation/exports/S02-freeform-edit.docx`
39
- - `.tmp/wave-7-preservation/exports/preserve-only-revision-export.docx`
40
- - `.tmp/wave-7-preservation/exports/preserve-only-comment-export.docx`
41
-
42
- ## Validation Rerun
43
-
44
- Bundle regeneration on the current worktree:
45
-
46
- ```bash
47
- pnpm exec tsx .tmp/wave-7-preservation/generate-wave-7-proof.ts
48
- ```
49
-
50
- Result: regenerated `F15` through `F21`, refreshed all five required reports, and rewrote the roundtrip exports under `.tmp/wave-7-preservation/exports/`.
51
-
52
- Focused rerun on the regenerated bundle:
53
-
54
- ```bash
55
- pnpm exec tsx --test \
56
- test/io/preserved-package-roundtrip.test.ts \
57
- test/io/docx-session.test.ts \
58
- test/io/revision-roundtrip.test.ts \
59
- test/io/comment-roundtrip.test.ts \
60
- test/preservation/opaque-fragment-store.test.ts \
61
- test/ui/opaque-region.test.tsx \
62
- test/validation/malformed-doc.test.ts
63
- ```
64
-
65
- Result: `30` pass, `0` fail.
66
-
67
- Lint check:
68
-
69
- ```bash
70
- pnpm run lint:no-authored-js
71
- ```
72
-
73
- Result: pass.
74
-
75
- ## Fixture Proof
76
-
77
- `preservation-manifest.json`, `reattachment-report.json`, and `package-fidelity-report.json` prove the fixture set below on the package-backed runtime/export path:
78
-
79
- | Fixture | Import state | Export state | Durable proof |
80
- | --- | --- | --- | --- |
81
- | `F15` | `w:sectPr` imports as a locked preserve-only fragment; `/word/header1.xml` and `/word/footer1.xml` register as preserved package parts | runtime text insert changes source bytes while preserving `rIdHeader1`, `rIdFooter1`, header bytes, footer bytes, and the terminal `w:sectPr` subtree | `preservation-manifest.json`, `reattachment-report.json` |
82
- | `F16` | `w:footnoteReference` and `w:endnoteReference` import as locked preserve-only inline markers; `/word/footnotes.xml` and `/word/endnotes.xml` remain preserved package parts | runtime text insert preserves note references, note-part bytes, and the `rIdFootnotes` / `rIdEndnotes` relationship targets | `preservation-manifest.json`, `reattachment-report.json` |
83
- | `F17` | TOC and PAGE field code runs import as preserve-only field fragments | runtime text insert keeps `w:fldChar`, `w:instrText`, and `w:fldSimple` markup intact | `preservation-manifest.json`, `reattachment-report.json` |
84
- | `F18` | block-level `w:sdt` imports as a locked preserve-only content-control fragment | runtime text insert keeps the original `w:sdt` subtree intact | `preservation-manifest.json`, `reattachment-report.json` |
85
- | `F19` | `w:customXml` wrapper imports as a locked preserve-only fragment; `/customXml/item1.xml` and `/customXml/itemProps1.xml` register as preserved package parts | runtime text insert keeps the wrapper intact and preserves both custom XML parts plus `rIdItemProps1` on `itemProps1.xml` | `preservation-manifest.json`, `reattachment-report.json` |
86
- | `F20` | `mc:AlternateContent`, future-namespaced OOXML, and `w:altChunk` import as locked preserve-only fragments; `/word/unknown/future.xml` and `/word/afchunk1.html` register as preserved package parts | runtime text insert preserves `mc:Ignorable`, `xmlns:cx`, `mc:AlternateContent`, `rIdUnknown1`, `rIdAltChunk1`, and both preserved package parts | `preservation-manifest.json`, `reattachment-report.json`, `package-fidelity-report.json` |
87
- | `F21` | unresolved internal relationship graph fails closed into `readOnly: true` with `fatalError.code = package_corrupt` and `blockExport = true` | export rejects instead of stripping or rewriting the broken relationship | `preservation-manifest.json`, `malformed-doc-report.json` |
88
-
89
- Package fidelity results:
90
-
91
- - `package-fidelity-report.json` shows `missingPreservedParts = []` and `contentTypeMismatches = []` for every `F15` through `F20` roundtrip export.
92
- - `F20` also proves root markup-compatibility preservation with `mcIgnorablePreserved = true`, `alternateContentPreserved = true`, and `customNamespacesPreserved = true`.
93
- - `F21` is intentionally not exported; the proof is fail-closed import plus export rejection.
94
-
95
- ## Review Boundary Proof
96
-
97
- `review-boundary-report.json` closes the tracked-change baseline at the preserve-only boundary with three durable cases:
98
-
99
- - Supported imported redline case: scenario `S02` exports after a runtime text insert without flattening imported review markup. The exported document still contains `w:ins` and `w:del`, reopens as `readOnly: false`, and reloads with `227` revision records.
100
- - Preserve-only revision case: an imported insertion containing nested bookmarks stays preserve-only after a runtime text insert. The export still contains `<w:ins w:id="55">`, `bookmarkStart`, and `bookmarkEnd`, and the imported revision carries a preserve-only reason instead of being silently rewritten.
101
- - Preserve-only comment case: an imported comment anchor overlapping preserve-only review markup stays detached on import and exports without stripping `commentRangeStart`, `commentRangeEnd`, `commentReference`, or the preserved bookmark markup inside `comments.xml`.
102
-
103
- This is the bounded Wave 7 claim for `tracked-changes-and-review-actions`: supported imported redline export remains non-destructive, while preserve-only imported review structures stay explicit and preserved instead of being flattened into the editable slice.
104
-
105
- ## User-Visible Lock And Warning Behavior
106
-
107
- Current mounted and isolated trust behavior is now recorded explicitly:
108
-
109
- - `preservation-manifest.json` captures the locked-region affordances exposed by the preservation layer for each opaque fragment: `trustReady`, `deletionLabel`, and `deletionDetail`. The generated trust copy states that the region stays visible, locked, and exportable unless an unsupported-fatal issue exists elsewhere.
110
- - `test/ui/opaque-region.test.tsx` passed in the focused rerun, so the isolated `OpaqueRegionView` and `LockedRegionPanel` surfaces currently have green proof for whole-unit selection, explicit delete affordances, and the distinction between preserve-only regions and other export blockers.
111
- - `test/ui/word-review-editor.interaction.test.tsx` now proves those trust surfaces are also mounted in the shipped shell. The live editor renders the locked-region explanation, surfaces `Export blockers`, and keeps the status bar on `Compatibility 1 export blocker` instead of `Compatibility Clear` when export is blocked.
112
- - `.tmp/wave-7-preservation/trust-ux-checklist.md` and `.tmp/wave-7-preservation/locked-region-ui-smoke.json` now record the mounted-shell truth instead of the earlier pre-rerun gap state.
113
-
114
- That means the preservation proof is now durable, explicit, and aligned with the current user-facing trust integration. This remains a package-backed Wave 7 proof, not a Word-certification claim.
115
-
116
- ## Limits
117
-
118
- - Word desktop and Word on the web were not executed locally in this environment. The Wave 7 proof remains a durable package-backed integration proof, not live Word certification.
119
- - `F21` remains `unsupported-fatal` by contract. A successful export for that fixture would be a regression, not a milestone.
@@ -1,87 +0,0 @@
1
- # Wave 7 Trust UX Review
2
-
3
- Generated on `2026-03-26` for Wave 7 / A6.
4
-
5
- Status: `pass`
6
-
7
- This review checks whether preserve-only and diagnostics UX answers three questions for legal-review users:
8
-
9
- - what happened
10
- - what is safe
11
- - what can I do next
12
-
13
- ## 2026-03-26T17:31:24Z Closure Pass
14
-
15
- The Wave 7 trust UX bar is now met on the shipped editor path.
16
-
17
- The preserve-only trust surfaces are mounted in the live shell, blocked export now shows the runtime's concrete blocker text, and the status bar no longer reports `Compatibility Clear` while export is blocked. The mounted path is not a generic polish pass anymore; it now reflects the runtime-owned compatibility and diagnostics contract directly.
18
-
19
- ## Evidence Reviewed
20
-
21
- - [editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx)
22
- - [locked-region-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/locked-region-panel.tsx)
23
- - [opaque-region-view.tsx](/home/coder/docx-react-component/src/ui/editor-surface/opaque-region-view.tsx)
24
- - [compatibility-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/compatibility-panel.tsx)
25
- - [status-bar.tsx](/home/coder/docx-react-component/src/ui/status/status-bar.tsx) (test-only standalone variant)
26
- - [read-only-diagnostics-runtime.ts](/home/coder/docx-react-component/src/runtime/read-only-diagnostics-runtime.ts)
27
- - [docx-session.ts](/home/coder/docx-react-component/src/io/docx-session.ts)
28
- - [word-review-editor.interaction.test.tsx](/home/coder/docx-react-component/test/ui/word-review-editor.interaction.test.tsx)
29
- - [opaque-region.test.tsx](/home/coder/docx-react-component/test/ui/opaque-region.test.tsx)
30
- - [malformed-doc.test.ts](/home/coder/docx-react-component/test/validation/malformed-doc.test.ts)
31
- - [.tmp/wave-7-preservation/trust-ux-checklist.md](/home/coder/docx-react-component/.tmp/wave-7-preservation/trust-ux-checklist.md)
32
- - [.tmp/wave-7-preservation/locked-region-ui-smoke.json](/home/coder/docx-react-component/.tmp/wave-7-preservation/locked-region-ui-smoke.json)
33
-
34
- ## Findings
35
-
36
- 1. Preserve-only trust surfaces are mounted in the shipped editor path.
37
-
38
- - [editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx) now renders [opaque-region-view.tsx](/home/coder/docx-react-component/src/ui/editor-surface/opaque-region-view.tsx) and [locked-region-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/locked-region-panel.tsx) for selected `opaque_block` ranges.
39
- - [word-review-editor.interaction.test.tsx](/home/coder/docx-react-component/test/ui/word-review-editor.interaction.test.tsx) proves the live shell mounts the trust copy after selecting `Section properties`.
40
- - Result: legal-review users now see the preserve-only explanation in the actual editor shell, not only in isolated component proof.
41
-
42
- 2. Blocked export now shows the runtime's concrete reason.
43
-
44
- - [compatibility-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/compatibility-panel.tsx) renders an `Export blockers` list from `snapshot.compatibility.blockExportReasons`.
45
- - [word-review-editor.interaction.test.tsx](/home/coder/docx-react-component/test/ui/word-review-editor.interaction.test.tsx) asserts the mounted shell shows `Export blockers` and the concrete blocker text `Password-protected package content still needs host-side decryption`.
46
- - Result: blocked export now explains the same state the runtime already knows.
47
-
48
- 3. Diagnostics mode now avoids the earlier mounted-shell contradiction.
49
-
50
- - [status-bar.tsx](/home/coder/docx-react-component/src/ui/status/status-bar.tsx) (test-only standalone variant) reports blocker counts when export is blocked; the equivalent in production is the status strip in `PrototypeReviewWorkspace`.
51
- - [malformed-doc.test.ts](/home/coder/docx-react-component/test/validation/malformed-doc.test.ts) proves the read-only diagnostics runtime stays fail-closed and publishes a single concrete export blocker.
52
- - [word-review-editor.interaction.test.tsx](/home/coder/docx-react-component/test/ui/word-review-editor.interaction.test.tsx) asserts the mounted shell no longer shows `Compatibility Clear` when export is blocked and instead shows `Compatibility 1 export blocker`.
53
- - Result: the mounted UI now gives a coherent "inspectable but not exportable" posture for broken imports.
54
-
55
- ## Validation Rerun
56
-
57
- Focused rerun on the current worktree:
58
-
59
- ```bash
60
- pnpm exec tsx --test \
61
- test/ui/opaque-region.test.tsx \
62
- test/ui/core-text-editor.test.tsx \
63
- test/ui/word-review-editor.interaction.test.tsx \
64
- test/io/docx-session.test.ts \
65
- test/validation/malformed-doc.test.ts
66
- ```
67
-
68
- Result: `25` pass, `0` fail.
69
-
70
- ## Closure Recommendation
71
-
72
- Treat the Wave 7 trust UX gate as closed.
73
-
74
- - preserve-only trust messaging is mounted in the shipped shell
75
- - blocked export shows concrete runtime-owned blocker text
76
- - diagnostics mode remains read-only and export-blocking on the live path
77
- - the mounted status surfaces now agree with the runtime-owned compatibility state
78
-
79
- ## Historical Note
80
-
81
- Earlier A6-generated gap artifacts from `2026-03-26T16:17:37Z` were accurate for the pre-rerun worktree, but they are superseded by the mounted-shell proof now in source and by the current focused rerun above.
82
-
83
- ## Evidence
84
-
85
- - Durable review note: `docs/plans/waves/reviews/wave-7-trust-ux.md`
86
- - Machine-visible checklist: `.tmp/wave-7-preservation/trust-ux-checklist.md`
87
- - Machine-visible smoke artifact: `.tmp/wave-7-preservation/locked-region-ui-smoke.json`
@@ -1,128 +0,0 @@
1
- # Wave 8 Accessibility And Design Review
2
-
3
- Generated on `2026-03-26` for Wave 8 / A4. Refreshed against the current source,
4
- validation reruns completed at `21:14 UTC`, and the board projection generated at
5
- `21:13 UTC`.
6
-
7
- Status: `pass with Wave 9 token-consolidation follow-up`
8
-
9
- This review checks the bounded Wave 8 accessibility, motion, and token baseline for the
10
- embedded editor shell as mounted in the internal Railway harness, with the `/demo`
11
- prototype reviewed as the future-shell reference only. It does not widen support
12
- claims for tables, browser-font fidelity, or any other deferred legal-fidelity slice.
13
- The latest live-proof and shared-plan docs are current. The `21:13 UTC` board
14
- projection no longer carries an A4 proof gap, and this note keeps the bounded
15
- Wave 8 accessibility, reduced-motion, and operator-shell token baseline durable
16
- without widening the active v1 component contract.
17
-
18
- ## Evidence Reviewed
19
-
20
- - [docs/plans/waves/deferred/legal-feedback-wave-expansion.md](/home/coder/docx-react-component/docs/plans/waves/deferred/legal-feedback-wave-expansion.md)
21
- - [services/react-word-editor/app/layout.tsx](/home/coder/docx-react-component/services/react-word-editor/app/layout.tsx)
22
- - [services/react-word-editor/app/globals.css](/home/coder/docx-react-component/services/react-word-editor/app/globals.css)
23
- - [services/react-word-editor/app/page.tsx](/home/coder/docx-react-component/services/react-word-editor/app/page.tsx)
24
- - [services/react-word-editor/app/demo/prototype-client.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/prototype-client.tsx)
25
- - [services/react-word-editor/app/demo/page.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/page.tsx)
26
- - [services/react-word-editor/app/editor/[sessionId]/page.tsx](/home/coder/docx-react-component/services/react-word-editor/app/editor/[sessionId]/page.tsx)
27
- - [services/react-word-editor/app/fixtures/page.tsx](/home/coder/docx-react-component/services/react-word-editor/app/fixtures/page.tsx)
28
- - [services/react-word-editor/app/runs/[runId]/page.tsx](/home/coder/docx-react-component/services/react-word-editor/app/runs/[runId]/page.tsx)
29
- - [services/react-word-editor/components/harness-editor-session-client.tsx](/home/coder/docx-react-component/services/react-word-editor/components/harness-editor-session-client.tsx)
30
- - [services/react-word-editor/lib/demo-fixtures.ts](/home/coder/docx-react-component/services/react-word-editor/lib/demo-fixtures.ts)
31
- - [src/ui/WordReviewEditor.tsx](/home/coder/docx-react-component/src/ui/WordReviewEditor.tsx)
32
- - [src/ui/editor-surface/editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx)
33
- - [src/ui/toolbar/core-toolbar.tsx](/home/coder/docx-react-component/src/ui/toolbar/core-toolbar.tsx) (test-only; functionality inline in PrototypeReviewWorkspace)
34
- - [src/ui/comments/comment-sidebar-shell.tsx](/home/coder/docx-react-component/src/ui/comments/comment-sidebar-shell.tsx)
35
- - [src/ui/comments/comment-thread-view.tsx](/home/coder/docx-react-component/src/ui/comments/comment-thread-view.tsx)
36
- - [src/ui/review/revision-sidebar.tsx](/home/coder/docx-react-component/src/ui/review/revision-sidebar.tsx)
37
- - [src/ui/review/markup-display-switch.tsx](/home/coder/docx-react-component/src/ui/review/markup-display-switch.tsx)
38
- - [src/ui/review/accept-reject-actions.tsx](/home/coder/docx-react-component/src/ui/review/accept-reject-actions.tsx)
39
- - [src/ui/shared/revision-filters.ts](/home/coder/docx-react-component/src/ui/shared/revision-filters.ts)
40
- - [src/ui/shared/summary-chip.tsx](/home/coder/docx-react-component/src/ui/shared/summary-chip.tsx)
41
- - [src/ui/compatibility/compatibility-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/compatibility-panel.tsx)
42
- - [src/ui/status/status-bar.tsx](/home/coder/docx-react-component/src/ui/status/status-bar.tsx) (test-only; functionality inline in PrototypeReviewWorkspace)
43
- - [.tmp/wave-8-railway-pilot/keyboard-walkthrough.md](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/keyboard-walkthrough.md)
44
- - [.tmp/wave-8-railway-pilot/reduced-motion-smoke.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/reduced-motion-smoke.json)
45
- - [.tmp/wave-8-railway-pilot/token-drift-audit.md](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/token-drift-audit.md)
46
-
47
- ## Findings
48
-
49
- 1. The mounted runtime path now clears the bounded live keyboard-flow baseline.
50
-
51
- - [src/ui/editor-surface/editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx) keeps the canvas itself as the only tabbable document-surface stop via `role="textbox"` and `tabIndex={0}`.
52
- - The inline character, token, and caret controls in [src/ui/editor-surface/editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx) use `tabIndex={-1}`, so tab order returns to the intended harness controls -> editor toolbar -> document surface -> rail actions sequence.
53
- - Live comment-thread open actions and revision actions are exposed through real buttons in the mounted runtime shell, so the earlier canvas-tab-order failure is no longer current.
54
-
55
- 2. Focus-visible and reduced-motion baseline are now acceptable in both the live path and the reviewed `/demo` reference.
56
-
57
- - The mounted runtime shell does not suppress browser focus indication in the reviewed `src/ui` surfaces, and the document canvas keeps a visible native outline when focused.
58
- - The prototype now applies a shared `focusRingClass` across its picker, toolbar, mode toggles, rail tabs, comment cards, revision cards, table cells, and inline segment affordances in [services/react-word-editor/app/demo/prototype-client.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/prototype-client.tsx).
59
- - [services/react-word-editor/app/demo/prototype-client.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/prototype-client.tsx) initializes from `prefers-reduced-motion`, listens for preference changes, disables authored transitions inside the prototype subtree, and avoids forced smooth scrolling when reduced motion is active.
60
- - The mounted runtime shell still has effectively no authored motion in the reviewed `src/ui` surfaces, so no additional live-motion override is needed for the current Wave 8 proof path.
61
-
62
- 3. Non-color review cues remain present across both surfaces.
63
-
64
- - The mounted runtime path and the prototype both use more than color alone for review state: insertion and deletion underlines or strikethrough, status pills, preserve-only labels, locked badges, and compatibility copy remain visible.
65
- - The weakest small-text tones in the token layer still need later contrast polish, but the more serious remaining design work is broader token convergence across the shipped `src/ui` shell. That is real follow-up work, but it no longer blocks the bounded Wave 8 operator baseline.
66
-
67
- 4. The old prototype keyboard and focus-visible blocker is obsolete.
68
-
69
- - Comment cards and revision cards in the prototype rail are now keyboardable `role="button"` surfaces with `tabIndex={0}` and `Enter` or `Space` activation in [services/react-word-editor/app/demo/prototype-client.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/prototype-client.tsx).
70
- - Non-header prototype table cells are now keyboardable `role="button"` surfaces with `tabIndex={0}` and `Enter` or `Space` activation in [services/react-word-editor/app/demo/prototype-client.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/prototype-client.tsx).
71
- - The current A4 blocker is therefore no longer prototype keyboard parity. That part of the board summary is stale.
72
-
73
- 5. Raw token drift is real, but it is no longer the Wave 8 blocker.
74
-
75
- - The harness already declares a token layer and typography roles in [services/react-word-editor/app/globals.css](/home/coder/docx-react-component/services/react-word-editor/app/globals.css) and [services/react-word-editor/app/layout.tsx](/home/coder/docx-react-component/services/react-word-editor/app/layout.tsx).
76
- - Despite that, `rg -l '#[0-9a-fA-F]{3,8}' src/ui -g'*.tsx'` currently returns `19` files, and `rg -o '#[0-9a-fA-F]{3,8}' src/ui -g'*.tsx'` currently returns `174` literal hex-color occurrences across the mounted editor shell.
77
- - Representative drift remains in [src/ui/WordReviewEditor.tsx](/home/coder/docx-react-component/src/ui/WordReviewEditor.tsx), [src/ui/editor-surface/editor-surface.tsx](/home/coder/docx-react-component/src/ui/editor-surface/editor-surface.tsx), [src/ui/toolbar/core-toolbar.tsx](/home/coder/docx-react-component/src/ui/toolbar/core-toolbar.tsx), [src/ui/comments/comment-thread-view.tsx](/home/coder/docx-react-component/src/ui/comments/comment-thread-view.tsx), [src/ui/review/revision-sidebar.tsx](/home/coder/docx-react-component/src/ui/review/revision-sidebar.tsx), [src/ui/review/accept-reject-actions.tsx](/home/coder/docx-react-component/src/ui/review/accept-reject-actions.tsx), [src/ui/compatibility/compatibility-panel.tsx](/home/coder/docx-react-component/src/ui/compatibility/compatibility-panel.tsx), and [src/ui/status/status-bar.tsx](/home/coder/docx-react-component/src/ui/status/status-bar.tsx).
78
- - The outer harness shell has narrowed materially: `services/react-word-editor/app` plus `services/react-word-editor/components` is now down to `1` literal-hex file and `3` literal-hex occurrences, all in [services/react-word-editor/app/fixtures/page.tsx](/home/coder/docx-react-component/services/react-word-editor/app/fixtures/page.tsx). The prototype itself now has `0` literal hex-color occurrences.
79
- - Typography posture also still drifts: the prototype reading column opts into the declared serif or sans roles in [services/react-word-editor/app/demo/prototype-client.tsx](/home/coder/docx-react-component/services/react-word-editor/app/demo/prototype-client.tsx), while the current `src/ui` shell does not reference `--font-legal-serif`, `--font-legal-sans`, or any explicit font role at all.
80
- - That drift is broader visual-system convergence work inside the shipped editor shell. It should move into Wave 9 alongside reviewer-task pilot hardening, rather than keeping Wave 8 open after the actual harness accessibility bar is met.
81
-
82
- ## Prototype Alignment Notes
83
-
84
- The prototype remains the clearer expression of the intended product direction, and the
85
- mounted runtime path still drifts from it in three material areas:
86
-
87
- - Curated typography: the prototype opts the reading column into the declared serif or sans roles, while the live runtime shell still reads like a separate inline-styled subsystem inside the harness frame.
88
- - Trust posture: the outer harness frame is now token-backed, but the mounted runtime shell still repeats a warm-neutral palette locally inside `src/ui` rather than consuming the shared token layer directly.
89
- - Table posture: the prototype can preview future table affordances honestly, but the live runtime path does not yet converge visually on that story. That is acceptable only because the docs remain explicit that tables stay prototype-only in Wave 8.
90
-
91
- Those are drift observations, not support claims.
92
-
93
- ## Validation
94
-
95
- Focused commands run on the current worktree:
96
-
97
- ```bash
98
- pnpm test:harness
99
- pnpm --filter @docx-react-component/react-word-editor-harness build
100
- ```
101
-
102
- Results from the latest rerun:
103
-
104
- - `pnpm test:harness`: `16` pass, `0` fail.
105
- - `pnpm --filter @docx-react-component/react-word-editor-harness build`: pass.
106
-
107
- ## Closure Recommendation
108
-
109
- Close the Wave 8 A4 gate.
110
-
111
- The actual Wave 8 bar is now satisfied:
112
-
113
- - the mounted harness path is keyboard-bounded and visibly focusable
114
- - reduced-motion handling is explicitly reviewed
115
- - the prototype reference no longer carries the earlier keyboard or focus-visible debt
116
- - the operator harness shell itself is substantially token-backed and no longer the main drift source
117
-
118
- The remaining token and typography debt is in the broader shipped `src/ui` visual system.
119
- That work matters, but it is now a Wave 9 convergence follow-up rather than a valid reason
120
- to keep `railway-test-harness` below `baseline-proved` for the bounded Wave 8 baseline.
121
- The `21:13 UTC` board projection already reflects that state by clearing the A4 proof gap.
122
-
123
- ## Evidence
124
-
125
- - Durable review note: `docs/plans/waves/reviews/wave-8-accessibility-and-design.md`
126
- - Machine-visible keyboard note: `.tmp/wave-8-railway-pilot/keyboard-walkthrough.md`
127
- - Machine-visible reduced-motion report: `.tmp/wave-8-railway-pilot/reduced-motion-smoke.json`
128
- - Machine-visible token audit: `.tmp/wave-8-railway-pilot/token-drift-audit.md`
@@ -1,92 +0,0 @@
1
- # Wave 8 Continuous QA
2
-
3
- Generated on `2026-03-26` for Wave 8 / A0.
4
-
5
- Verdict: `BLOCKED`
6
-
7
- [wave-gate] architecture=blocked integration=blocked durability=blocked live=blocked docs=blocked detail=Wave 8 hardening is in source, but the old public early-access bundle is historical only and the fresh private-mode redeploy proof is still missing.
8
-
9
- ## Scope
10
-
11
- Wave 8 does not currently close the bounded non-production operator bar:
12
-
13
- - the source contains the hardening needed for a private-mode redeploy
14
- - the older public `early-access` proof bundle is retained as historical evidence
15
- - current promotions remain blocked until a fresh private-mode mounted `.docx -> add comment -> review action -> export -> validate` proof is recaptured on Railway
16
-
17
- This note does not widen the active v1 editor contract. Wave 9 still owns reviewer-task pilot proof, representative scenario runs, and broader performance evidence.
18
-
19
- ## Evidence Reviewed
20
-
21
- - [wave-8-live-proof.md](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-8-live-proof.md)
22
- - [wave-8-accessibility-and-design.md](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-8-accessibility-and-design.md)
23
- - [wave-8-security.md](/home/coder/docx-react-component/docs/plans/waves/reviews/wave-8-security.md)
24
- - [review-save-validate-proof.md](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-proof.md)
25
- - [deploy-manifest.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/deploy-manifest.json)
26
- - [artifact-retention-check.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/artifact-retention-check.json)
27
- - [component-cutover-matrix.md](/home/coder/docx-react-component/docs/plans/component-cutover-matrix.md)
28
- - [component-cutover-matrix.json](/home/coder/docx-react-component/docs/plans/component-cutover-matrix.json)
29
- - [current-state.md](/home/coder/docx-react-component/docs/plans/current-state.md)
30
- - [master-plan.md](/home/coder/docx-react-component/docs/plans/master-plan.md)
31
- - [roadmap.md](/home/coder/docx-react-component/docs/roadmap.md)
32
-
33
- ## Current Truth
34
-
35
- 1. The Wave 8 hardening work is in source, but the historical public `early-access` bundle is no
36
- longer authoritative closure evidence.
37
-
38
- - The mounted `F11` review-save-validate artifact chain under `.tmp/wave-8-railway-pilot/`
39
- remains useful historical evidence.
40
- - The current closure bar now requires a fresh private-mode Railway redeploy and a recaptured
41
- mounted proof bundle under that hardened route posture.
42
-
43
- 2. The blocking condition is not missing implementation work inside the repo.
44
-
45
- - The harness and validator private-mode guards, request-size controls, and retention controls are
46
- present in source, including the pre-parse body-size guard on `/api/exports`.
47
- - The remaining blocker is proof freshness and deploy posture alignment, especially the still-public
48
- validator ingress and the lack of a fresh private-mode recapture, not a claim that the code paths
49
- are absent.
50
-
51
- 3. Wave 8 promotions must remain blocked in shared docs until the fresh private-mode proof exists.
52
-
53
- - `railway-test-harness` and `openxml-sdk-validator-service` remain the intended Wave 8 promotion
54
- targets.
55
- - They must not be treated as current `baseline-proved` or `pilot-live` closure truth while the
56
- public `early-access` capture remains the newest linked proof bundle.
57
-
58
- ## Residual Risks
59
-
60
- - The current live proof bundle was captured against the older public `early-access` posture and is
61
- therefore historical evidence only.
62
- - The validator Railway status drift remains documented as an operator caveat, but the active
63
- blocker is broader: the public validator ingress is still live and stale relative to the current
64
- private-mode source contract.
65
- - The `/demo` route still carries non-blocking keyboard/token drift that should stay visible for
66
- Wave 9 rather than being misreported as current Wave 8 closure truth.
67
-
68
- ## Closure Recommendation
69
-
70
- Keep Wave 8 blocked until the private-mode redeploy reruns the mounted live proof bundle and the
71
- shared-plan state is refreshed from that new capture.
72
-
73
- ## Fresh Local Corroboration
74
-
75
- Focused local validation rerun during this cont-QA pass:
76
-
77
- - `pnpm test:harness` -> pass (`16` pass, `0` fail)
78
- - `pnpm --filter @docx-react-component/react-word-editor-harness build` -> pass
79
-
80
- ## Closure Decision
81
-
82
- Wave 8 remains blocked.
83
-
84
- - The historical public `early-access` bundle cannot stand as the current closure line after the
85
- private-mode hardening changes.
86
- - The security review remains the authoritative blocker for shared status and promotion claims,
87
- including the stale public validator ingress.
88
- - Shared docs must continue to describe the Wave 8 state as `hardening landed in source, but
89
- closure blocked pending fresh private-mode redeploy proof`.
90
-
91
- [wave-gate] architecture=blocked integration=blocked durability=blocked live=blocked docs=blocked detail=Wave 8 hardening is in source, but the historical public early-access bundle cannot stand as current closure proof after the private-mode route posture change.
92
- Verdict: BLOCKED