@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.
- package/README.md +44 -104
- package/package.json +66 -15
- package/src/api/public-types.ts +1 -1
- package/src/compare/diff-engine.ts +530 -0
- package/src/compare/export-redlines.ts +162 -0
- package/src/compare/snapshot.ts +37 -0
- package/src/core/commands/index.ts +1 -1
- package/src/core/state/editor-state.ts +2 -2
- package/src/index.ts +45 -0
- package/src/legal/bookmarks.ts +196 -0
- package/src/legal/cross-references.ts +356 -0
- package/src/legal/defined-terms.ts +203 -0
- package/src/runtime/document-runtime.ts +3 -5
- package/src/runtime/table-commands.ts +4 -1
- package/src/runtime/table-schema.ts +17 -2
- package/src/runtime/virtualized-rendering.ts +258 -0
- package/src/ui/WordReviewEditor.tsx +256 -35
- package/src/ui-tailwind/editor-surface/tw-editor-surface.tsx +2 -2
- package/src/ui-tailwind/editor-surface/tw-table-node-view.tsx +16 -2
- package/.codex/config.toml +0 -5
- package/.corepack/v1/pnpm/10.30.3/.corepack +0 -1
- package/.corepack/v1/pnpm/10.30.3/LICENSE +0 -22
- package/.corepack/v1/pnpm/10.30.3/README.md +0 -240
- package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp +0 -6
- package/.corepack/v1/pnpm/10.30.3/dist/node-gyp-bin/node-gyp.cmd +0 -5
- package/.corepack/v1/pnpm/10.30.3/dist/pnpm.cjs +0 -195400
- package/.corepack/v1/pnpm/10.30.3/dist/pnpmrc +0 -2
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-arm64-2HJ4WGO6.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.darwin-x64-3G3H6IW4.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-arm64-msvc-Q6BARPPB.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/reflink.win32-x64-msvc-J2TZHRQI.node +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.bash +0 -31
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.fish +0 -22
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.ps1 +0 -193
- package/.corepack/v1/pnpm/10.30.3/dist/templates/completion.zsh +0 -27
- package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x64.exe +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/vendor/fastlist-0.3.0-x86.exe +0 -0
- package/.corepack/v1/pnpm/10.30.3/dist/worker.js +0 -10119
- package/.corepack/v1/pnpm/10.30.3/package.json +0 -192
- package/.cursor/mcp.json +0 -7
- package/.github/workflows/ci.yml +0 -35
- package/.mcp.json +0 -7
- package/.openclaw/workspace-state.json +0 -4
- package/.pnpmrc.json +0 -1
- package/.wave-launch.sh +0 -7
- package/.workspace-marker +0 -1
- package/AGENTS.md +0 -78
- package/CHANGELOG.md +0 -177
- package/DESIGN.md +0 -929
- package/HEARTBEAT.md +0 -7
- package/IDENTITY.md +0 -23
- package/SOUL.md +0 -36
- package/TOOLS.md +0 -40
- package/USER.md +0 -17
- package/docs/README.md +0 -107
- package/docs/agents/wave-cont-eval-role.md +0 -36
- package/docs/agents/wave-cont-qa-role.md +0 -52
- package/docs/agents/wave-deploy-verifier-role.md +0 -34
- package/docs/agents/wave-design-role.md +0 -47
- package/docs/agents/wave-documentation-role.md +0 -34
- package/docs/agents/wave-infra-role.md +0 -34
- package/docs/agents/wave-integration-role.md +0 -37
- package/docs/agents/wave-launcher-role.md +0 -41
- package/docs/agents/wave-orchestrator-role.md +0 -52
- package/docs/agents/wave-planner-role.md +0 -39
- package/docs/agents/wave-security-role.md +0 -40
- package/docs/architecture/docx/README.md +0 -10
- package/docs/architecture/future/README.md +0 -8
- package/docs/architecture/ooxml-upgrade-analysis.md +0 -134
- package/docs/architecture/platform/shared-openxml-editor-platform.md +0 -153
- package/docs/architecture/xlsx/canonical-workbook-model-and-commands.md +0 -187
- package/docs/architecture/xlsx/spreadsheet-editor-frontend-architecture.md +0 -150
- package/docs/comment-redline-overview.md +0 -350
- package/docs/concepts/context7-vs-skills.md +0 -118
- package/docs/concepts/operating-modes.md +0 -91
- package/docs/concepts/runtime-agnostic-orchestration.md +0 -111
- package/docs/concepts/what-is-a-wave.md +0 -217
- package/docs/context7/bundles.json +0 -222
- package/docs/context7/planner-agent/README.md +0 -28
- package/docs/context7/planner-agent/manifest.json +0 -83
- package/docs/context7/planner-agent/papers/cooperbench-why-coding-agents-cannot-be-your-teammates-yet.md +0 -3283
- package/docs/context7/planner-agent/papers/dova-deliberation-first-multi-agent-orchestration-for-autonomous-research-automation.md +0 -1699
- package/docs/context7/planner-agent/papers/dpbench-large-language-models-struggle-with-simultaneous-coordination.md +0 -2251
- package/docs/context7/planner-agent/papers/incremental-planning-to-control-a-blackboard-based-problem-solver.md +0 -1729
- package/docs/context7/planner-agent/papers/silo-bench-a-scalable-environment-for-evaluating-distributed-coordination-in-multi-agent-llm-systems.md +0 -3747
- package/docs/context7/planner-agent/papers/todoevolve-learning-to-architect-agent-planning-systems.md +0 -1675
- package/docs/context7/planner-agent/papers/verified-multi-agent-orchestration-a-plan-execute-verify-replan-framework-for-complex-query-resolution.md +0 -1173
- package/docs/context7/planner-agent/papers/why-do-multi-agent-llm-systems-fail.md +0 -5211
- package/docs/context7/planner-agent/topics/planning-and-orchestration.md +0 -24
- package/docs/evals/arm-templates/README.md +0 -13
- package/docs/evals/arm-templates/full-wave.json +0 -15
- package/docs/evals/arm-templates/single-agent.json +0 -15
- package/docs/evals/benchmark-catalog.json +0 -670
- package/docs/evals/cases/README.md +0 -47
- package/docs/evals/cases/wave-blackboard-inbox-targeting.json +0 -73
- package/docs/evals/cases/wave-contradiction-conflict.json +0 -104
- package/docs/evals/cases/wave-expert-routing-preservation.json +0 -69
- package/docs/evals/cases/wave-hidden-profile-private-evidence.json +0 -81
- package/docs/evals/cases/wave-premature-closure-guard.json +0 -71
- package/docs/evals/cases/wave-silo-cross-agent-state.json +0 -77
- package/docs/evals/cases/wave-simultaneous-lockstep.json +0 -92
- package/docs/evals/external-benchmarks.json +0 -85
- package/docs/evals/external-command-config.sample.json +0 -9
- package/docs/evals/external-command-config.swe-bench-pro.json +0 -8
- package/docs/evals/pilots/README.md +0 -47
- package/docs/evals/pilots/swe-bench-pro-public-full-wave-review-10.json +0 -64
- package/docs/evals/pilots/swe-bench-pro-public-pilot.json +0 -111
- package/docs/evals/wave-benchmark-program.md +0 -302
- package/docs/guides/planner.md +0 -220
- package/docs/guides/recommendations-0.8.9.md +0 -133
- package/docs/guides/signal-wrappers.md +0 -165
- package/docs/guides/terminal-surfaces.md +0 -96
- package/docs/image copy.png +0 -0
- package/docs/image.png +0 -0
- package/docs/images/image.png +0 -0
- package/docs/legal-feedback-architecture.md +0 -498
- package/docs/plans/component-cutover-matrix.json +0 -1072
- package/docs/plans/component-cutover-matrix.md +0 -307
- package/docs/plans/context7-wave-orchestrator.md +0 -155
- package/docs/plans/current-state.md +0 -198
- package/docs/plans/docx/README.md +0 -9
- package/docs/plans/examples/wave-benchmark-improvement.md +0 -108
- package/docs/plans/examples/wave-example-live-proof.md +0 -435
- package/docs/plans/master-plan.md +0 -224
- package/docs/plans/migration.md +0 -538
- package/docs/plans/operations/README.md +0 -7
- package/docs/plans/operations/wave-10-word-certification.md +0 -87
- package/docs/plans/operations/wave-8-railway-staging.md +0 -153
- package/docs/plans/operations/wave-9-manual-certification.md +0 -73
- package/docs/plans/platform/README.md +0 -9
- package/docs/plans/reference/legal-checklist-coverage.md +0 -258
- package/docs/plans/wave-orchestrator.md +0 -423
- package/docs/plans/waves/README.md +0 -75
- package/docs/plans/waves/completed/wave-0.md +0 -195
- package/docs/plans/waves/completed/wave-1.md +0 -379
- package/docs/plans/waves/completed/wave-10.md +0 -670
- package/docs/plans/waves/completed/wave-11.md +0 -335
- package/docs/plans/waves/completed/wave-12.md +0 -417
- package/docs/plans/waves/completed/wave-13.md +0 -316
- package/docs/plans/waves/completed/wave-14.md +0 -319
- package/docs/plans/waves/completed/wave-15.md +0 -321
- package/docs/plans/waves/completed/wave-16.md +0 -316
- package/docs/plans/waves/completed/wave-17.md +0 -331
- package/docs/plans/waves/completed/wave-18.md +0 -328
- package/docs/plans/waves/completed/wave-2.md +0 -438
- package/docs/plans/waves/completed/wave-3.md +0 -435
- package/docs/plans/waves/completed/wave-4.md +0 -430
- package/docs/plans/waves/completed/wave-5.md +0 -430
- package/docs/plans/waves/completed/wave-6.md +0 -430
- package/docs/plans/waves/completed/wave-7.md +0 -526
- package/docs/plans/waves/completed/wave-8.md +0 -596
- package/docs/plans/waves/completed/wave-9.md +0 -552
- package/docs/plans/waves/deferred/README.md +0 -14
- package/docs/plans/waves/deferred/encrypted-intake-contracts.md +0 -282
- package/docs/plans/waves/deferred/legal-feedback-wave-expansion.md +0 -308
- package/docs/plans/waves/deferred/wave-encrypted-intake.md +0 -451
- package/docs/plans/waves/design/README.md +0 -5
- package/docs/plans/waves/design/wave-1-a1.md +0 -309
- package/docs/plans/waves/reviews/README.md +0 -5
- package/docs/plans/waves/reviews/wave-0-cont-qa.md +0 -151
- package/docs/plans/waves/reviews/wave-1-cont-qa.md +0 -46
- package/docs/plans/waves/reviews/wave-10-accessibility-and-design.md +0 -51
- package/docs/plans/waves/reviews/wave-10-cont-qa.md +0 -24
- package/docs/plans/waves/reviews/wave-10-dashboard-proof.md +0 -46
- package/docs/plans/waves/reviews/wave-10-performance-signoff.md +0 -55
- package/docs/plans/waves/reviews/wave-10-regression-proof.md +0 -23
- package/docs/plans/waves/reviews/wave-10-release-audit.md +0 -31
- package/docs/plans/waves/reviews/wave-10-service-proof.md +0 -83
- package/docs/plans/waves/reviews/wave-10-word-certification.md +0 -31
- package/docs/plans/waves/reviews/wave-18-ai-contract-closure.md +0 -277
- package/docs/plans/waves/reviews/wave-18-cont-qa.md +0 -255
- package/docs/plans/waves/reviews/wave-18-parity-proof.md +0 -271
- package/docs/plans/waves/reviews/wave-19-cont-qa.md +0 -59
- package/docs/plans/waves/reviews/wave-2-cont-qa.md +0 -72
- package/docs/plans/waves/reviews/wave-20-cont-qa.md +0 -60
- package/docs/plans/waves/reviews/wave-25-cont-qa.md +0 -48
- package/docs/plans/waves/reviews/wave-28-cont-qa.md +0 -46
- package/docs/plans/waves/reviews/wave-29-cont-qa.md +0 -53
- package/docs/plans/waves/reviews/wave-3-cont-qa.md +0 -53
- package/docs/plans/waves/reviews/wave-3-core-proof.md +0 -77
- package/docs/plans/waves/reviews/wave-3-validator-proof.md +0 -73
- package/docs/plans/waves/reviews/wave-32-cont-qa.md +0 -43
- package/docs/plans/waves/reviews/wave-33-cont-qa.md +0 -526
- package/docs/plans/waves/reviews/wave-34-cont-qa.md +0 -100
- package/docs/plans/waves/reviews/wave-35-cont-qa.md +0 -145
- package/docs/plans/waves/reviews/wave-4-cont-qa.md +0 -47
- package/docs/plans/waves/reviews/wave-4-structure-proof.md +0 -69
- package/docs/plans/waves/reviews/wave-5-comment-proof.md +0 -158
- package/docs/plans/waves/reviews/wave-5-cont-qa.md +0 -68
- package/docs/plans/waves/reviews/wave-6-cont-qa.md +0 -416
- package/docs/plans/waves/reviews/wave-6-redline-proof.md +0 -130
- package/docs/plans/waves/reviews/wave-7-cont-qa.md +0 -82
- package/docs/plans/waves/reviews/wave-7-ooxml-compliance.md +0 -85
- package/docs/plans/waves/reviews/wave-7-preservation-proof.md +0 -119
- package/docs/plans/waves/reviews/wave-7-trust-ux.md +0 -87
- package/docs/plans/waves/reviews/wave-8-accessibility-and-design.md +0 -128
- package/docs/plans/waves/reviews/wave-8-cont-qa.md +0 -92
- package/docs/plans/waves/reviews/wave-8-live-proof.md +0 -140
- package/docs/plans/waves/reviews/wave-8-security.md +0 -47
- package/docs/plans/waves/reviews/wave-9-editor-embedding.md +0 -39
- package/docs/plans/waves/reviews/wave-9-fixture-runner.md +0 -56
- package/docs/plans/waves/reviews/wave-9-live-proof.md +0 -105
- package/docs/plans/waves/reviews/wave-9-usability-and-performance.md +0 -152
- package/docs/plans/waves/specs/README.md +0 -5
- package/docs/plans/waves/specs/wave-1-component-boundaries.md +0 -322
- package/docs/plans/waves/specs/wave-1-ooxml-contracts.md +0 -323
- package/docs/plans/waves/specs/wave-1-review-and-ui-contracts.md +0 -339
- package/docs/plans/waves/specs/wave-1-runtime-contracts.md +0 -509
- package/docs/plans/waves/wave-19.md +0 -341
- package/docs/plans/waves/wave-20.md +0 -308
- package/docs/plans/waves/wave-21.md +0 -289
- package/docs/plans/waves/wave-22.md +0 -221
- package/docs/plans/waves/wave-23.md +0 -295
- package/docs/plans/waves/wave-24.md +0 -286
- package/docs/plans/waves/wave-25.md +0 -313
- package/docs/plans/waves/wave-26.md +0 -300
- package/docs/plans/waves/wave-27.md +0 -299
- package/docs/plans/waves/wave-28.md +0 -368
- package/docs/plans/waves/wave-29.md +0 -303
- package/docs/plans/waves/wave-30.md +0 -307
- package/docs/plans/waves/wave-31.md +0 -231
- package/docs/plans/waves/wave-32.md +0 -152
- package/docs/plans/waves/wave-33.md +0 -147
- package/docs/plans/waves/wave-34.md +0 -148
- package/docs/plans/waves/wave-35.md +0 -141
- package/docs/plans/waves/wave-36.md +0 -146
- package/docs/plans/xlsx/README.md +0 -14
- package/docs/plans/xlsx/xlsx-fixture-corpus-and-certification-plan.md +0 -126
- package/docs/reference/cli-reference.md +0 -600
- package/docs/reference/coordination-and-closure.md +0 -487
- package/docs/reference/deep-research-report (15).md +0 -25
- package/docs/reference/docx/README.md +0 -10
- package/docs/reference/legal-checklist.md +0 -445
- package/docs/reference/live-proof-waves.md +0 -199
- package/docs/reference/ooxml-compliance.md +0 -129
- package/docs/reference/ooxml-feature-parity-matrix.md +0 -172
- package/docs/reference/platform/shared-ooxml-platform-guidance.md +0 -77
- package/docs/reference/prototype-agent-prompt-legal-fidelity.md +0 -155
- package/docs/reference/public-api.md +0 -456
- package/docs/reference/repository-guidance.md +0 -58
- package/docs/reference/runtime-config/README.md +0 -182
- package/docs/reference/runtime-config/claude.md +0 -110
- package/docs/reference/runtime-config/codex.md +0 -82
- package/docs/reference/runtime-config/opencode.md +0 -93
- package/docs/reference/sample-waves.md +0 -105
- package/docs/reference/skills.md +0 -237
- package/docs/reference/templates/AGENTS.md +0 -78
- package/docs/reference/templates/HEARTBEAT.md +0 -7
- package/docs/reference/templates/IDENTITY.md +0 -23
- package/docs/reference/templates/SOUL.md +0 -36
- package/docs/reference/templates/TOOLS.md +0 -40
- package/docs/reference/templates/USER.md +0 -17
- package/docs/reference/wave-control.md +0 -184
- package/docs/reference/wave-planning-lessons.md +0 -167
- package/docs/reference/word-review-editor-frontend-architecture.md +0 -479
- package/docs/reference/word-review-editor-ux-guide.md +0 -253
- package/docs/reference/xlsx/xlsx-ooxml-compliance.md +0 -137
- package/docs/research/agent-context-sources.md +0 -178
- package/docs/research/coordination-failure-review.md +0 -290
- package/docs/research/docx-react-component/Canonical Document Schema Specification for a React-based Word-compatible Editor.md +0 -2317
- package/docs/research/docx-react-component/Feature Compatibility Matrix for a React Word Compatible Legal Editor v1.md +0 -219
- package/docs/research/docx-react-component/React Component Architecture and Front-End Structure Specification for a Word-Compatible Legal Review Editor.md +0 -1112
- package/docs/research/docx-react-component/document_compatibility_and_testing_spec.md +0 -751
- package/docs/research/xlsx/raw/README.md +0 -13
- package/docs/roadmap.md +0 -174
- package/docs/superpowers/plans/2026-03-28-harness-control-bar.md +0 -677
- package/docs/superpowers/specs/2026-03-28-harness-control-bar-design.md +0 -274
- package/docs/xlsx-react/README.md +0 -38
- package/docs/xlsx-react/agent-llm-interaction-layer-docx-xlsx.md +0 -621
- package/docs/xlsx-react/canonical-workbook-model-and-commands.md +0 -948
- package/docs/xlsx-react/shared-openxml-editor-platform-docx-xlsx.md +0 -228
- package/docs/xlsx-react/spreadsheet-editor-component-architecture.md +0 -809
- package/docs/xlsx-react/spreadsheet-editor-frontend-architecture.md +0 -537
- package/docs/xlsx-react/spreadsheet-editor-ux-guide.md +0 -520
- package/docs/xlsx-react/xlsx-editor-research-pack.md +0 -871
- package/docs/xlsx-react/xlsx-fixture-corpus-and-certification-plan.md +0 -436
- package/docs/xlsx-react/xlsx-ooxml-compliance.md +0 -320
- package/examples/README.md +0 -16
- package/memory/MEMORY.md +0 -24
- package/pnpm-workspace.yaml +0 -4
- package/scripts/check-no-authored-js.sh +0 -13
- package/scripts/context7-api-check.sh +0 -65
- package/scripts/context7-export-env.sh +0 -42
- package/scripts/run-context7-mcp.sh +0 -8
- package/scripts/run-workspace-tests.sh +0 -15
- package/scripts/start-wave-10-local.sh +0 -189
- package/scripts/wave-agent-attach.sh +0 -47
- package/scripts/wave-auto-answer.sh +0 -118
- package/scripts/wave-dashboard-attach.sh +0 -13
- package/scripts/wave-launch.sh +0 -273
- package/scripts/wave-overnight-supervisor.sh +0 -145
- package/scripts/wave-status.sh +0 -379
- package/scripts/wave-watch.sh +0 -231
- package/services/README.md +0 -17
- package/services/openxml-validator/Dockerfile +0 -29
- package/services/openxml-validator/OpenXmlValidator.Api.csproj +0 -12
- package/services/openxml-validator/Program.cs +0 -436
- package/services/openxml-validator/README.md +0 -152
- package/services/openxml-validator/railway.json +0 -16
- package/services/react-word-editor/.tmp-a4/src/api/public-types.ts +0 -318
- package/services/react-word-editor/.tmp-a4/src/ui/WordReviewEditor.tsx +0 -1302
- package/services/react-word-editor/.tmp-a4/src/ui/editor-surface/editor-surface.tsx +0 -546
- package/services/react-word-editor/.tmp-a4/test/ui/word-review-editor.test.tsx +0 -146
- package/services/react-word-editor/.tmp-a4-build/src/api/public-types.js +0 -2
- package/services/react-word-editor/.tmp-a4-build/src/ui/WordReviewEditor.js +0 -818
- package/services/react-word-editor/.tmp-a4-build/src/ui/editor-surface/editor-surface.js +0 -229
- package/services/react-word-editor/.tmp-a4-build/test/ui/word-review-editor.test.js +0 -121
- package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.json +0 -21
- package/services/react-word-editor/.tmp-wave-4-a3-tsconfig.tsbuildinfo +0 -1
- package/services/react-word-editor/Dockerfile +0 -26
- package/services/react-word-editor/README.md +0 -254
- package/services/react-word-editor/app/api/certification/route.ts +0 -79
- package/services/react-word-editor/app/api/demo-sessions/route.ts +0 -109
- package/services/react-word-editor/app/api/deploy-health/route.ts +0 -23
- package/services/react-word-editor/app/api/exports/[exportId]/route.ts +0 -34
- package/services/react-word-editor/app/api/exports/route.ts +0 -81
- package/services/react-word-editor/app/api/fixtures/[fixtureId]/run/route.ts +0 -100
- package/services/react-word-editor/app/api/health/route.ts +0 -70
- package/services/react-word-editor/app/api/runs/[runId]/route.ts +0 -36
- package/services/react-word-editor/app/api/scenarios/[scenarioId]/run/route.ts +0 -85
- package/services/react-word-editor/app/api/sessions/[sessionId]/route.ts +0 -199
- package/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts +0 -45
- package/services/react-word-editor/app/api/uploads/route.ts +0 -70
- package/services/react-word-editor/app/api/validate/route.ts +0 -310
- package/services/react-word-editor/app/certification/[runId]/page.tsx +0 -14
- package/services/react-word-editor/app/certification/page.tsx +0 -32
- package/services/react-word-editor/app/dashboard/page.tsx +0 -7
- package/services/react-word-editor/app/demo/page.tsx +0 -30
- package/services/react-word-editor/app/demo/prototype-client.tsx +0 -1080
- package/services/react-word-editor/app/editor/[sessionId]/page.tsx +0 -33
- package/services/react-word-editor/app/fixtures/page.tsx +0 -7
- package/services/react-word-editor/app/globals.css +0 -121
- package/services/react-word-editor/app/layout.tsx +0 -32
- package/services/react-word-editor/app/page.tsx +0 -30
- package/services/react-word-editor/app/runs/[runId]/page.tsx +0 -34
- package/services/react-word-editor/app/wave-10-word-review/page.tsx +0 -7
- package/services/react-word-editor/components/harness-control-bar.tsx +0 -289
- package/services/react-word-editor/components/harness-editor-session-client.tsx +0 -1214
- package/services/react-word-editor/components/harness-workspace-page.tsx +0 -715
- package/services/react-word-editor/components/reduced-motion-toggle.tsx +0 -79
- package/services/react-word-editor/components/workspace-certification-panel.tsx +0 -307
- package/services/react-word-editor/lib/certification-bundle.ts +0 -796
- package/services/react-word-editor/lib/certification-store.ts +0 -661
- package/services/react-word-editor/lib/demo-fixtures.test.mjs +0 -195
- package/services/react-word-editor/lib/demo-fixtures.ts +0 -1519
- package/services/react-word-editor/lib/editor-session-summary.test.mjs +0 -68
- package/services/react-word-editor/lib/editor-session-summary.ts +0 -14
- package/services/react-word-editor/lib/editor-session.ts +0 -228
- package/services/react-word-editor/lib/exports-route.test.mjs +0 -32
- package/services/react-word-editor/lib/harness-client.ts +0 -347
- package/services/react-word-editor/lib/harness-config.json +0 -30
- package/services/react-word-editor/lib/harness-config.test.mjs +0 -31
- package/services/react-word-editor/lib/harness-config.ts +0 -21
- package/services/react-word-editor/lib/harness-editor-datastore.test.mjs +0 -220
- package/services/react-word-editor/lib/harness-editor-datastore.ts +0 -161
- package/services/react-word-editor/lib/private-mode.test.mjs +0 -42
- package/services/react-word-editor/lib/private-mode.ts +0 -61
- package/services/react-word-editor/lib/regression-report.test.mjs +0 -352
- package/services/react-word-editor/lib/regression-report.ts +0 -896
- package/services/react-word-editor/lib/run-artifacts.ts +0 -934
- package/services/react-word-editor/lib/run-history.ts +0 -755
- package/services/react-word-editor/lib/scenario-artifacts.test.mjs +0 -41
- package/services/react-word-editor/lib/scenario-artifacts.ts +0 -44
- package/services/react-word-editor/lib/storage.ts +0 -953
- package/services/react-word-editor/lib/validator-client.test.mjs +0 -54
- package/services/react-word-editor/lib/validator-client.ts +0 -95
- package/services/react-word-editor/lib/workspace-navigation.ts +0 -79
- package/services/react-word-editor/middleware.ts +0 -35
- package/services/react-word-editor/next-env.d.ts +0 -6
- package/services/react-word-editor/next.config.mjs +0 -15
- package/services/react-word-editor/package.json +0 -38
- package/services/react-word-editor/postcss.config.mjs +0 -8
- package/services/react-word-editor/railway.json +0 -21
- package/services/react-word-editor/scripts/wave-10-certification.mjs +0 -101
- package/services/react-word-editor/scripts/wave-9-live-usability-pilot.mjs +0 -911
- package/services/react-word-editor/tsconfig.json +0 -39
- package/services/react-word-editor/tsconfig.tsbuildinfo +0 -1
- package/skills/README.md +0 -48
- package/skills/domain-docx-compatibility/SKILL.md +0 -44
- package/skills/domain-docx-compatibility/skill.json +0 -19
- package/skills/domain-editor-architecture/SKILL.md +0 -49
- package/skills/domain-editor-architecture/skill.json +0 -19
- package/skills/domain-legal-review/SKILL.md +0 -39
- package/skills/domain-legal-review/skill.json +0 -19
- package/skills/provider-aws/SKILL.md +0 -117
- package/skills/provider-aws/adapters/claude.md +0 -1
- package/skills/provider-aws/adapters/codex.md +0 -1
- package/skills/provider-aws/references/service-verification.md +0 -39
- package/skills/provider-aws/skill.json +0 -54
- package/skills/provider-custom-deploy/SKILL.md +0 -64
- package/skills/provider-custom-deploy/skill.json +0 -50
- package/skills/provider-docker-compose/SKILL.md +0 -96
- package/skills/provider-docker-compose/adapters/local.md +0 -1
- package/skills/provider-docker-compose/skill.json +0 -53
- package/skills/provider-github-release/SKILL.md +0 -121
- package/skills/provider-github-release/adapters/claude.md +0 -1
- package/skills/provider-github-release/adapters/codex.md +0 -1
- package/skills/provider-github-release/skill.json +0 -55
- package/skills/provider-kubernetes/SKILL.md +0 -143
- package/skills/provider-kubernetes/adapters/claude.md +0 -1
- package/skills/provider-kubernetes/adapters/codex.md +0 -1
- package/skills/provider-kubernetes/references/kubectl-patterns.md +0 -58
- package/skills/provider-kubernetes/skill.json +0 -52
- package/skills/provider-railway/SKILL.md +0 -123
- package/skills/provider-railway/adapters/claude.md +0 -1
- package/skills/provider-railway/adapters/codex.md +0 -1
- package/skills/provider-railway/adapters/local.md +0 -1
- package/skills/provider-railway/adapters/opencode.md +0 -1
- package/skills/provider-railway/references/verification-commands.md +0 -39
- package/skills/provider-railway/skill.json +0 -71
- package/skills/provider-ssh-manual/SKILL.md +0 -97
- package/skills/provider-ssh-manual/skill.json +0 -54
- package/skills/repo-coding-rules/SKILL.md +0 -55
- package/skills/repo-coding-rules/skill.json +0 -34
- package/skills/role-cont-eval/SKILL.md +0 -91
- package/skills/role-cont-eval/adapters/codex.md +0 -1
- package/skills/role-cont-eval/skill.json +0 -36
- package/skills/role-cont-qa/SKILL.md +0 -100
- package/skills/role-cont-qa/adapters/claude.md +0 -1
- package/skills/role-cont-qa/skill.json +0 -36
- package/skills/role-deploy/SKILL.md +0 -97
- package/skills/role-deploy/skill.json +0 -36
- package/skills/role-design/SKILL.md +0 -50
- package/skills/role-design/skill.json +0 -36
- package/skills/role-documentation/SKILL.md +0 -76
- package/skills/role-documentation/skill.json +0 -36
- package/skills/role-implementation/SKILL.md +0 -45
- package/skills/role-implementation/skill.json +0 -36
- package/skills/role-infra/SKILL.md +0 -81
- package/skills/role-infra/skill.json +0 -36
- package/skills/role-integration/SKILL.md +0 -91
- package/skills/role-integration/skill.json +0 -36
- package/skills/role-planner/SKILL.md +0 -39
- package/skills/role-planner/skill.json +0 -21
- package/skills/role-research/SKILL.md +0 -65
- package/skills/role-research/skill.json +0 -36
- package/skills/role-security/SKILL.md +0 -60
- package/skills/role-security/skill.json +0 -36
- package/skills/runtime-claude/SKILL.md +0 -66
- package/skills/runtime-claude/skill.json +0 -36
- package/skills/runtime-codex/SKILL.md +0 -58
- package/skills/runtime-codex/skill.json +0 -36
- package/skills/runtime-local/SKILL.md +0 -46
- package/skills/runtime-local/skill.json +0 -36
- package/skills/runtime-opencode/SKILL.md +0 -58
- package/skills/runtime-opencode/skill.json +0 -36
- package/skills/signal-hygiene/SKILL.md +0 -51
- package/skills/signal-hygiene/skill.json +0 -20
- package/skills/tui-design/SKILL.md +0 -77
- package/skills/tui-design/references/tui-design.md +0 -259
- package/skills/tui-design/skill.json +0 -36
- package/skills/wave-core/SKILL.md +0 -141
- package/skills/wave-core/references/marker-syntax.md +0 -70
- package/skills/wave-core/skill.json +0 -35
- package/test/README.md +0 -16
- package/test/core/formatting-commands.test.ts +0 -285
- package/test/core/image-commands.test.ts +0 -298
- package/test/core/mapping.test.ts +0 -186
- package/test/core/text-commands.test.ts +0 -176
- package/test/fixtures/docx/F01-basic-contract.docx +0 -0
- package/test/fixtures/docx/F01-basic-contract.md +0 -33
- package/test/fixtures/docx/F02-headings-styles.docx +0 -0
- package/test/fixtures/docx/F02-headings-styles.md +0 -33
- package/test/fixtures/docx/F03-legal-outline-numbering.docx +0 -0
- package/test/fixtures/docx/F03-legal-outline-numbering.md +0 -34
- package/test/fixtures/docx/F04-restart-numbering-schedules.docx +0 -0
- package/test/fixtures/docx/F04-restart-numbering-schedules.md +0 -33
- package/test/fixtures/docx/F05-table-heavy-agreement.docx +0 -0
- package/test/fixtures/docx/F05-table-heavy-agreement.md +0 -34
- package/test/fixtures/docx/F06-merged-cells-signature-table.docx +0 -0
- package/test/fixtures/docx/F06-merged-cells-signature-table.md +0 -34
- package/test/fixtures/docx/F07-inline-images-exhibit.docx +0 -0
- package/test/fixtures/docx/F07-inline-images-exhibit.md +0 -34
- package/test/fixtures/docx/F08-hyperlinks.docx +0 -0
- package/test/fixtures/docx/F08-hyperlinks.md +0 -33
- package/test/fixtures/docx/F09-comments-single-paragraph.docx +0 -0
- package/test/fixtures/docx/F09-comments-single-paragraph.md +0 -33
- package/test/fixtures/docx/F10-threaded-comments-resolve.docx +0 -0
- package/test/fixtures/docx/F10-threaded-comments-resolve.md +0 -33
- package/test/fixtures/docx/F11-redlines-basic.docx +0 -0
- package/test/fixtures/docx/F11-redlines-basic.md +0 -33
- package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.docx +0 -0
- package/test/fixtures/docx/F12-redlines-paragraph-joins-splits.md +0 -33
- package/test/fixtures/docx/F13-comments-on-deleted-text.docx +0 -0
- package/test/fixtures/docx/F13-comments-on-deleted-text.md +0 -33
- package/test/fixtures/docx/F14-revisions-in-tables-and-lists.docx +0 -0
- package/test/fixtures/docx/F14-revisions-in-tables-and-lists.md +0 -33
- package/test/fixtures/docx/F15-sections-headers-footers.docx +0 -0
- package/test/fixtures/docx/F15-sections-headers-footers.md +0 -33
- package/test/fixtures/docx/F16-footnotes-endnotes.docx +0 -0
- package/test/fixtures/docx/F16-footnotes-endnotes.md +0 -33
- package/test/fixtures/docx/F17-fields-and-toc.docx +0 -0
- package/test/fixtures/docx/F17-fields-and-toc.md +0 -33
- package/test/fixtures/docx/F18-content-controls-template.docx +0 -0
- package/test/fixtures/docx/F18-content-controls-template.md +0 -33
- package/test/fixtures/docx/F19-custom-xml-doc-assembly.docx +0 -0
- package/test/fixtures/docx/F19-custom-xml-doc-assembly.md +0 -35
- package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.docx +0 -0
- package/test/fixtures/docx/F20-unknown-ooxml-and-alternatecontent.md +0 -33
- package/test/fixtures/docx/F21-malformed-broken-docx.docx +0 -0
- package/test/fixtures/docx/F21-malformed-broken-docx.md +0 -33
- package/test/fixtures/docx/README.md +0 -74
- package/test/fixtures/docx/certification-manifest.json +0 -104
- package/test/fixtures/docx/fixtures.manifest.json +0 -196
- package/test/fixtures/encrypted-docx/README.md +0 -27
- package/test/fixtures/encrypted-docx/certification-manifest.json +0 -9
- package/test/fixtures/encrypted-docx/fixtures.manifest.json +0 -47
- package/test/fixtures/scenarios/docx/README.md +0 -25
- package/test/fixtures/scenarios/docx/S01-sow-template.docx +0 -0
- package/test/fixtures/scenarios/docx/S01-sow-template.md +0 -30
- package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.docx +0 -0
- package/test/fixtures/scenarios/docx/S02-bw-partner-user-licence-agreement-redlines.md +0 -32
- package/test/fixtures/scenarios/docx/scenario-manifest.json +0 -53
- package/test/formats/xlsx/io/xlsx-import.test.ts +0 -766
- package/test/formats/xlsx/model/workbook.test.ts +0 -669
- package/test/helpers/dom-setup.ts +0 -124
- package/test/io/comment-roundtrip.test.ts +0 -272
- package/test/io/complex-content-roundtrip.test.ts +0 -632
- package/test/io/docx-compatibility-regression.test.ts +0 -199
- package/test/io/docx-session.test.ts +0 -1495
- package/test/io/footnotes-roundtrip.test.ts +0 -318
- package/test/io/headers-footers-roundtrip.test.ts +0 -547
- package/test/io/numbering-roundtrip.test.ts +0 -234
- package/test/io/package-reader.test.ts +0 -199
- package/test/io/paragraph-properties-roundtrip.test.ts +0 -129
- package/test/io/preserved-package-roundtrip.test.ts +0 -365
- package/test/io/property-completeness.test.ts +0 -292
- package/test/io/revision-roundtrip.test.ts +0 -347
- package/test/io/structural-blocks.test.ts +0 -202
- package/test/io/table-media-roundtrip.test.ts +0 -448
- package/test/io/table-properties-roundtrip.test.ts +0 -569
- package/test/io/table-roundtrip.test.ts +0 -302
- package/test/io/text-roundtrip.test.ts +0 -344
- package/test/model/canonical-document.test.ts +0 -285
- package/test/preservation/opaque-fragment-store.test.ts +0 -121
- package/test/preservation/package-preservation.test.ts +0 -395
- package/test/preservation/store.test.ts +0 -84
- package/test/review/comment-remapping.test.ts +0 -220
- package/test/review/comment-store.test.ts +0 -180
- package/test/review/move-revisions.test.ts +0 -143
- package/test/review/property-change-revisions.test.ts +0 -225
- package/test/review/revision-actions.test.ts +0 -330
- package/test/review/revision-store.test.ts +0 -193
- package/test/runtime/session-capabilities.test.ts +0 -260
- package/test/runtime/table-commands.test.ts +0 -356
- package/test/runtime/table-schema.test.ts +0 -221
- package/test/runtime/tracked-changes-toggle.test.ts +0 -107
- package/test/ui/comment-review-surface.test.tsx +0 -114
- package/test/ui/reduced-motion-toggle.test.tsx +0 -137
- package/test/ui/word-review-editor.imported-scenarios.test.tsx +0 -169
- package/test/ui/word-review-editor.interaction.test.tsx +0 -1198
- package/test/ui/word-review-editor.test.js +0 -188
- package/test/ui/word-review-editor.test.tsx +0 -280
- package/test/ui-tailwind/search-plugin.test.ts +0 -286
- package/test/validation/compatibility-engine.test.ts +0 -336
- package/test/validation/compatibility-report.test.ts +0 -189
- package/test/validation/low-priority-word-surfaces.test.ts +0 -282
- package/test/validation/malformed-doc.test.ts +0 -113
- package/test-results/.last-run.json +0 -4
- package/wave.config.json +0 -406
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
# Wave 8 Live Proof
|
|
2
|
-
|
|
3
|
-
## Status Note
|
|
4
|
-
|
|
5
|
-
This note is now historical evidence only.
|
|
6
|
-
|
|
7
|
-
The Wave 8 hardening changes landed after this public `early-access` capture. A fresh private-mode Railway redeploy and proof recapture are still required before the harness or validator promotions can be treated as current closure truth again.
|
|
8
|
-
|
|
9
|
-
The checked-in [deploy-runbook-check.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/deploy-runbook-check.json) is therefore retained as a historical Wave 8 artifact, not an authoritative current-state manifest.
|
|
10
|
-
|
|
11
|
-
## Scope
|
|
12
|
-
|
|
13
|
-
- Proof owner: A6
|
|
14
|
-
- Effective Railway project/environment: `Fabric` / `early-access`
|
|
15
|
-
- Prompt delta:
|
|
16
|
-
- requested environment: `staging`
|
|
17
|
-
- actual environment: `early-access`
|
|
18
|
-
- requested harness service: `react-word-editor`
|
|
19
|
-
- actual harness service: `docx-react-component`
|
|
20
|
-
|
|
21
|
-
## Artifact Bundle
|
|
22
|
-
|
|
23
|
-
- [validator-status-before-restart.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/validator-status-before-restart.json)
|
|
24
|
-
- [validator-status-after-restart.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/validator-status-after-restart.json)
|
|
25
|
-
- [harness-status.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/harness-status.json)
|
|
26
|
-
- [harness-health.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/harness-health.json)
|
|
27
|
-
- [validation-smoke.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/validation-smoke.json)
|
|
28
|
-
- [deploy-manifest.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/deploy-manifest.json)
|
|
29
|
-
- [artifact-retention-check.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/artifact-retention-check.json)
|
|
30
|
-
- [review-save-validate-upload.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-upload.json)
|
|
31
|
-
- [mounted-review-proof.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/mounted-review-proof.json)
|
|
32
|
-
- [review-save-validate-export.docx](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-export.docx)
|
|
33
|
-
- [review-save-validate-validation.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-validation.json)
|
|
34
|
-
- [review-save-validate-proof-source.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-proof-source.json)
|
|
35
|
-
|
|
36
|
-
## Live Deploy Proof
|
|
37
|
-
|
|
38
|
-
- Validator service: `openxml-validator`
|
|
39
|
-
- before redeploy artifact captured deployment `c42c4ce4-a8f6-4e07-8415-d6b1da1543e9`
|
|
40
|
-
- `railway restart` was not available for the current deployment (`Deployment is not restartable`), so the restart proof surface used `railway redeploy`
|
|
41
|
-
- after redeploy artifact captured deployment `d664455a-a39e-427b-afff-bfdfc52b93ea`
|
|
42
|
-
- Railway CLI status artifacts both report `FAILED`
|
|
43
|
-
- public health: `https://openxml-validator-early-access.up.railway.app/health`
|
|
44
|
-
- drift note:
|
|
45
|
-
- public `/health` stayed `status=ok`
|
|
46
|
-
- mounted and smoke validation traffic returned clean results on the live service after the redeploy
|
|
47
|
-
- the latest standalone validator smoke was recaptured at `2026-03-26T21:18:18.2927855+00:00`
|
|
48
|
-
- Harness service: `docx-react-component`
|
|
49
|
-
- deployment `c32405ea-0818-45de-9576-0d3309870086`
|
|
50
|
-
- status: `SUCCESS`
|
|
51
|
-
- public health: `https://docx-react-component-early-access.up.railway.app/api/health`
|
|
52
|
-
- Harness health result:
|
|
53
|
-
- service status: `ok`
|
|
54
|
-
- validator bridge configured to `http://openxml-validator.railway.internal:8080`
|
|
55
|
-
- storage path: `/data/react-word-editor-harness`
|
|
56
|
-
- retention mode: `volume-backed-manual-review`
|
|
57
|
-
- Validator smoke:
|
|
58
|
-
- source file: `test/fixtures/docx/F01-basic-contract.docx`
|
|
59
|
-
- result: `isValid=true`, `packageFindingCount=0`, `sdkFindingCount=0`
|
|
60
|
-
|
|
61
|
-
## Freshness Recheck
|
|
62
|
-
|
|
63
|
-
- Rechecked the live Railway surface at `2026-03-26T21:18:24Z`
|
|
64
|
-
- `railway service status -s openxml-validator -e early-access --json` still reported deployment `d664455a-a39e-427b-afff-bfdfc52b93ea` with CLI status `FAILED`
|
|
65
|
-
- `railway service status -s docx-react-component -e early-access --json` still reported deployment `c32405ea-0818-45de-9576-0d3309870086` with CLI status `SUCCESS`
|
|
66
|
-
- Public validator `/health`, harness `/api/health`, and a fresh harness-backed smoke validation at `2026-03-26T21:18:18.2927855+00:00` all stayed healthy
|
|
67
|
-
- Because neither live deployment id changed, this bundle remained a coherent record of the public `early-access` surface at capture time. It is still historical evidence only and does not satisfy the later private-mode recapture requirement.
|
|
68
|
-
|
|
69
|
-
## Review-Save-Validate Attempt
|
|
70
|
-
|
|
71
|
-
- Source fixture uploaded to the live harness: `F11-redlines-basic.docx`
|
|
72
|
-
- Upload/source id: `upload:d600a47c-0708-4053-b3ed-c5c4c8775c31`
|
|
73
|
-
- Mounted session id: `6d4fefaa-327a-4aa0-918a-4b5287722f76`
|
|
74
|
-
- Harness document id: `harness-doc-9a38b2b7-624`
|
|
75
|
-
- Added comment id: `comment-20260326204812790-0`
|
|
76
|
-
|
|
77
|
-
Mounted editor proof from [mounted-review-proof.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/mounted-review-proof.json):
|
|
78
|
-
|
|
79
|
-
- `/editor/6d4fefaa-327a-4aa0-918a-4b5287722f76` loaded successfully on the live Railway harness.
|
|
80
|
-
- The mounted control strip completed:
|
|
81
|
-
- `Add Harness Comment`
|
|
82
|
-
- `Accept All Changes`
|
|
83
|
-
- `Export`
|
|
84
|
-
- The event log recorded:
|
|
85
|
-
- `Added comment comment-20260326204812790-0.`
|
|
86
|
-
- `Accepted all actionable tracked changes in the current session.`
|
|
87
|
-
- repeated `Editor ready ...` status entries from the mounted route while the live shell rerendered
|
|
88
|
-
|
|
89
|
-
The persisted export from that same mounted session was then validated through the live harness
|
|
90
|
-
`/api/validate` route for the exact stored export id.
|
|
91
|
-
|
|
92
|
-
Durable export and validation from the same mounted session:
|
|
93
|
-
|
|
94
|
-
- persisted export id: `6d41f8b1-f704-4491-8b3b-95b06e0c329f`
|
|
95
|
-
- validation run id: `f3519888-fd28-479e-b797-5c0c9dcd2c89`
|
|
96
|
-
- exported artifact: [review-save-validate-export.docx](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-export.docx)
|
|
97
|
-
- validation report: [review-save-validate-validation.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-validation.json)
|
|
98
|
-
|
|
99
|
-
This mounted proof was captured after validator redeploy `d664455a-a39e-427b-afff-bfdfc52b93ea`, so the export and validation artifacts match that public `early-access` redeploy rather than the earlier pre-redeploy pass. They do not establish that the current live validator posture matches the later repo-owned private-mode hardening.
|
|
100
|
-
|
|
101
|
-
## Validation Result
|
|
102
|
-
|
|
103
|
-
The mounted export passed the validator cleanly.
|
|
104
|
-
|
|
105
|
-
- Package findings: `0`
|
|
106
|
-
- SDK findings: `0`
|
|
107
|
-
- Validation summary from [review-save-validate-validation.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/review-save-validate-validation.json):
|
|
108
|
-
- `isValid=true`
|
|
109
|
-
- `packageFindingCount=0`
|
|
110
|
-
- `sdkFindingCount=0`
|
|
111
|
-
|
|
112
|
-
## Retention Check
|
|
113
|
-
|
|
114
|
-
From [artifact-retention-check.json](/home/coder/docx-react-component/.tmp/wave-8-railway-pilot/artifact-retention-check.json):
|
|
115
|
-
|
|
116
|
-
- uploads: `27`
|
|
117
|
-
- sessions: `31`
|
|
118
|
-
- exports: `6`
|
|
119
|
-
- validation runs: `6`
|
|
120
|
-
- upload bytes: `37044`
|
|
121
|
-
- export bytes: `10614`
|
|
122
|
-
- limits:
|
|
123
|
-
- export artifact limit: `100`
|
|
124
|
-
- validation run limit: `200`
|
|
125
|
-
- max upload bytes: `20971520`
|
|
126
|
-
- current proof artifacts are within the declared limits.
|
|
127
|
-
|
|
128
|
-
## Historical Outcome
|
|
129
|
-
|
|
130
|
-
- `openxml-sdk-validator-service`
|
|
131
|
-
- the public early-access redeploy artifacts, health proof, and smoke validation proof remain recorded here as historical evidence
|
|
132
|
-
- the later Wave 8 security review now treats the still-public validator ingress and stale deploy contract as an active blocker against current `pilot-live` claims
|
|
133
|
-
- `railway-test-harness`
|
|
134
|
-
- the public early-access upload, mounted review action, artifact persistence, and validator-bridge bundle remain recorded here as historical evidence
|
|
135
|
-
- this note is no longer sufficient to claim current `baseline-proved` or `pilot-live` status after the private-mode hardening changes
|
|
136
|
-
|
|
137
|
-
## Follow-Up Needed
|
|
138
|
-
|
|
139
|
-
- Carry the broader reviewer-task, scenario, performance, and deeper `src/ui` token-consolidation work into Wave 9.
|
|
140
|
-
- Keep the public validator ingress plus stale-deploy mismatch explicit as a current blocker, while keeping the older Railway CLI status drift caveat in its historical context.
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Wave 8 Security Review
|
|
2
|
-
|
|
3
|
-
Generated on `2026-03-27` for Wave 8 / A7.
|
|
4
|
-
Refreshed against the current source and live Railway early-access surface at `2026-03-27T07:39Z`.
|
|
5
|
-
|
|
6
|
-
## Repo Status Update
|
|
7
|
-
|
|
8
|
-
- Repo-only update on `2026-03-28`: [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/exports/route.ts) now applies the same pre-parse `content-length` guard used by the upload and validation routes.
|
|
9
|
-
- No fresh live Railway recheck was performed as part of that source-only fix, so the live-surface findings below still describe the `2026-03-27T07:39Z` capture.
|
|
10
|
-
|
|
11
|
-
## Threat Model
|
|
12
|
-
|
|
13
|
-
- Trust boundaries reviewed: anonymous internet traffic to the Railway early-access domains, browser-to-harness routes, harness-to-validator private-network calls, and volume-backed harness storage.
|
|
14
|
-
- Attacker-controlled inputs reviewed: uploaded `.docx` payloads, validator multipart requests, public route access on the harness and validator domains, and any future operator proof capture that re-enables the harness surface.
|
|
15
|
-
- Sensitive assets reviewed: operator-uploaded source packages, stored export and validation artifacts, private validator hostname assumptions, volume-backed retention posture, and the deploy state behind the Wave 8 promotion claims.
|
|
16
|
-
- Approval-sensitive actions reviewed: Wave 8 closure itself, the `baseline-proved` and `pilot-live` promotion claims, and any decision to rely on public-domain operator access without repo-owned auth or explicit network restriction.
|
|
17
|
-
- Browser-path conclusion: I rechecked the current source and still did not find a browser fetch path that calls `openxml-validator.railway.internal` directly. The browser-facing harness client in [harness-editor-session-client.tsx](/home/coder/docx-react-component/services/react-word-editor/components/harness-editor-session-client.tsx) fetches only harness-local routes such as `/api/exports`, `/api/validate`, and `/api/sessions/[sessionId]/source`, while the server-only validator bridge lives in [validator-client.ts](/home/coder/docx-react-component/services/react-word-editor/lib/validator-client.ts). Fresh live rechecks at `2026-03-27T07:39Z` still show the public harness root, `GET /api/health`, and `POST /api/uploads` failing closed with `503 private_mode_required`, so the old browser-visible private-host leak is not reproduced on the current harness deploy.
|
|
18
|
-
|
|
19
|
-
## Risky Surfaces
|
|
20
|
-
|
|
21
|
-
- The validator public domain `https://openxml-validator-early-access.up.railway.app` is still reachable from the public internet and still accepts live traffic at `2026-03-27T07:39Z`.
|
|
22
|
-
- The current validator source in [Program.cs](/home/coder/docx-react-component/services/openxml-validator/Program.cs) and [README.md](/home/coder/docx-react-component/services/openxml-validator/README.md) requires `VALIDATOR_PRIVATE_MODE=enabled`, returns a structured `503` when disabled, and exposes `privateMode` plus `limits` metadata on `/health`. The live public `/health` response at `2026-03-27T07:39Z` still returned `200` with only `service`, `status`, `sdk`, and `endpoints`, so the deployed validator does not match the current repo-owned contract.
|
|
23
|
-
- The harness public domain `https://docx-react-component-early-access.up.railway.app` is still reachable from the public internet, but the current live surface still fails closed with `503 private_mode_required` on `/`, `GET /api/health`, and `POST /api/uploads` at `2026-03-27T07:39Z`.
|
|
24
|
-
- That harness fail-closed posture depends on deployment configuration rather than repo-owned identity. If `HARNESS_PRIVATE_MODE=enabled` is turned on for the public `docx-react-component-early-access` domain, the operator-facing routes in [middleware.ts](/home/coder/docx-react-component/services/react-word-editor/middleware.ts), [private-mode.ts](/home/coder/docx-react-component/services/react-word-editor/lib/private-mode.ts), [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/uploads/route.ts), [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/exports/route.ts), [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/validate/route.ts), [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/exports/[exportId]/route.ts), and [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/sessions/[sessionId]/source/route.ts) reopen without a separate repo-owned auth layer.
|
|
25
|
-
- The harness source enforces `.docx` extension/MIME checks and a `20 MiB` cap in [storage.ts](/home/coder/docx-react-component/services/react-word-editor/lib/storage.ts), and the upload, export, and validation routes now reject oversized requests by `content-length` before multipart parsing. That closes the earlier export-route defense-in-depth gap in source, but it does not change the live-surface blocker or the need to keep any future public operator access behind reviewed controls.
|
|
26
|
-
- Count-based retention and manual operator review remain the only cleanup controls for uploads, sessions, exports, and validation snapshots in [storage.ts](/home/coder/docx-react-component/services/react-word-editor/lib/storage.ts) and [README.md](/home/coder/docx-react-component/services/react-word-editor/README.md). That retention posture is documented, but it is still an internal-only assumption rather than a hardened public-service posture.
|
|
27
|
-
|
|
28
|
-
## Findings
|
|
29
|
-
|
|
30
|
-
- `High` | Surface: live validator ingress at `https://openxml-validator-early-access.up.railway.app` versus [Program.cs](/home/coder/docx-react-component/services/openxml-validator/Program.cs), [README.md](/home/coder/docx-react-component/services/openxml-validator/README.md), and [wave-8-railway-staging.md](/home/coder/docx-react-component/docs/plans/operations/wave-8-railway-staging.md). Exploit/failure mode: anonymous internet users can still call `/health` and `POST /validate` directly, bypassing the documented harness-only/private-network trust boundary and bypassing the private-mode gate that the current source says should exist. Fresh live confirmation at `2026-03-27T07:39Z`: `GET /health` returned `200` with only `service`, `status`, `sdk`, and `endpoints`; `curl -F file=@test/fixtures/docx/F01-basic-contract.docx https://openxml-validator-early-access.up.railway.app/validate` returned `200` with `validatedAtUtc=2026-03-27T07:39:36.243453+00:00`, `isValid=true`, `packageFindingCount=0`, and `sdkFindingCount=0`; and the live `/health` payload still omitted the `privateMode` and `limits` fields present in the current source contract, which shows the deployed validator is stale relative to the repo-owned hardening. Owner expected to fix: `A3`.
|
|
31
|
-
|
|
32
|
-
## Required Approvals
|
|
33
|
-
|
|
34
|
-
- Security exception required if Wave 8 wants to keep either public early-access domain as the operator access path without additional auth or explicit network restriction. That includes any attempt to treat the current public validator ingress as acceptable, or any future attempt to set `HARNESS_PRIVATE_MODE=enabled` on `https://docx-react-component-early-access.up.railway.app` without a reviewed access-control layer. No such exception is recorded in the wave artifacts or coordination state reviewed on this pass.
|
|
35
|
-
|
|
36
|
-
## Requested Fixes
|
|
37
|
-
|
|
38
|
-
- `A3`: remove the public `openxml-validator` domain from the closure path or redeploy the current private-mode source so anonymous `GET /health` and `POST /validate` no longer succeed on `https://openxml-validator-early-access.up.railway.app`. The fixed deploy should match the current [Program.cs](/home/coder/docx-react-component/services/openxml-validator/Program.cs) contract, including the private-mode behavior, structured health fields, and the current `ServiceEndpointDescriptor` response shape.
|
|
39
|
-
- `A3`: update [wave-8-railway-staging.md](/home/coder/docx-react-component/docs/plans/operations/wave-8-railway-staging.md) once the live validator posture changes so the runbook names the exact current service/domain state instead of leaving the public validator URL as an acceptable pilot surface.
|
|
40
|
-
- `A6 + A8 + A9`: refresh the Wave 8 proof and status language so it reflects the narrowed blocker accurately: the harness public domain is currently fail-closed, but the validator public ingress is still live and stale relative to source, so `openxml-sdk-validator-service` cannot stand at `pilot-live` yet.
|
|
41
|
-
- `A1 + A2 + A3`: keep the harness public domain fail-closed until there is a reviewed private operator access path. If the next proof recapture intends to re-enable `https://docx-react-component-early-access.up.railway.app`, route explicit auth or network-restriction work first or obtain the approval above. Preserve the now-landed early body-size guard on [route.ts](/home/coder/docx-react-component/services/react-word-editor/app/api/exports/route.ts) as part of that future public-surface review.
|
|
42
|
-
|
|
43
|
-
## Final Disposition
|
|
44
|
-
|
|
45
|
-
- Wave 8 security review remains blocked, but the blocker has narrowed. Fresh live checks at `2026-03-27T07:39Z` still show the public harness domain failing closed with `503 private_mode_required` on `/`, `GET /api/health`, and `POST /api/uploads`, so the earlier anonymous harness metadata and artifact exposure is no longer reproduced on the current live surface. The validator public domain is still directly callable and is still serving a response schema that does not match the current private-mode source contract. The export-route pre-parse body-size guard has now landed in source, so that earlier defense-in-depth gap should no longer be cited as an open repo issue. Wave 8 should not close or promote `openxml-sdk-validator-service` until the live validator ingress is removed, gated, or redeployed and the proof bundle is refreshed against the fixed posture. The remaining approval item is any attempt to rely on public-domain operator access without auth or explicit network restriction.
|
|
46
|
-
|
|
47
|
-
[wave-security] state=blocked findings=1 approvals=1 detail=07:39Z live harness still fails closed; public validator ingress still serves /health and /validate on a stale deploy.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# Wave 9 A1 Review: Real Editor Embedding In The Harness
|
|
2
|
-
|
|
3
|
-
## Scope
|
|
4
|
-
|
|
5
|
-
Wave 9 A1 closes the gap between the harness session shell and a durable session lifecycle contract.
|
|
6
|
-
The mounted `/editor/[sessionId]` route runs the real `WordReviewEditor` from `src/ui/WordReviewEditor.tsx`
|
|
7
|
-
through the harness-owned session API, datastore-backed autosave, and durable export persistence.
|
|
8
|
-
|
|
9
|
-
## Landed files
|
|
10
|
-
|
|
11
|
-
- `services/react-word-editor/lib/editor-session.ts`
|
|
12
|
-
- `services/react-word-editor/app/api/sessions/[sessionId]/route.ts`
|
|
13
|
-
- `services/react-word-editor/app/editor/[sessionId]/page.tsx`
|
|
14
|
-
|
|
15
|
-
## Implementation notes
|
|
16
|
-
|
|
17
|
-
- `lib/editor-session.ts` is server-only and keeps session durability under the existing harness storage root.
|
|
18
|
-
- The mounted client now resolves editor load through the session contract: saved snapshots hydrate first, and the
|
|
19
|
-
source package remains the fallback when no checkpoint exists.
|
|
20
|
-
- Session saves write a persisted editor snapshot sidecar at
|
|
21
|
-
`<HARNESS_STORAGE_DIR>/editor-sessions/<sessionId>.json` using atomic rename semantics.
|
|
22
|
-
- Session export persistence now flows through `/api/sessions/[sessionId]` for the mounted runtime, so the editor
|
|
23
|
-
toolbar export and the harness operator bridge both create the same durable export record used by validation and
|
|
24
|
-
certification.
|
|
25
|
-
- The session page now states that harness buttons are pilot-only operator controls and that Word reopen evidence is
|
|
26
|
-
still external to the route.
|
|
27
|
-
- The page-level contract copy avoids assuming paragraph-only content. It describes the session interface in terms
|
|
28
|
-
of source packages, persisted snapshots, and exported artifacts so later table/font work can extend the runtime
|
|
29
|
-
without reshaping the harness shell.
|
|
30
|
-
|
|
31
|
-
## Proof
|
|
32
|
-
|
|
33
|
-
- `.tmp/wave-9-pilot/editor-session-smoke.json`
|
|
34
|
-
- `.tmp/wave-9-pilot/editor-load-events.json`
|
|
35
|
-
|
|
36
|
-
## Follow-through
|
|
37
|
-
|
|
38
|
-
- Keep the mounted client on the same `/api/sessions/[sessionId]` contract for future save/export work rather than
|
|
39
|
-
reintroducing a parallel harness-specific persistence path.
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
# Wave 9 Fixture Runner
|
|
2
|
-
|
|
3
|
-
## Scope
|
|
4
|
-
|
|
5
|
-
- Owner: A2
|
|
6
|
-
- Components:
|
|
7
|
-
- `railway-test-harness`
|
|
8
|
-
- `compatibility-and-word-validation`
|
|
9
|
-
- Owned routes:
|
|
10
|
-
- `POST /api/fixtures/[fixtureId]/run`
|
|
11
|
-
- `POST /api/scenarios/[scenarioId]/run`
|
|
12
|
-
- `POST /api/validate`
|
|
13
|
-
|
|
14
|
-
## Run Story Contract
|
|
15
|
-
|
|
16
|
-
Wave 9 adds a linked run-story layer under `.tmp/wave-9-pilot/` so one durable `runId` can connect:
|
|
17
|
-
|
|
18
|
-
- the source that was launched
|
|
19
|
-
- the created harness session
|
|
20
|
-
- the persisted export artifact
|
|
21
|
-
- the persisted validator snapshot
|
|
22
|
-
- the reserved manual Word certification attachment slot
|
|
23
|
-
|
|
24
|
-
The canonical machine-readable outputs are:
|
|
25
|
-
|
|
26
|
-
- [fixture-runner-smoke.json](/home/coder/docx-react-component/.tmp/wave-9-pilot/fixture-runner-smoke.json)
|
|
27
|
-
- [artifact-manifest.json](/home/coder/docx-react-component/.tmp/wave-9-pilot/artifact-manifest.json)
|
|
28
|
-
- [run-linkage-check.json](/home/coder/docx-react-component/.tmp/wave-9-pilot/run-linkage-check.json)
|
|
29
|
-
|
|
30
|
-
Each run also gets a per-run story file:
|
|
31
|
-
|
|
32
|
-
- `.tmp/wave-9-pilot/runs/<runId>/story.json`
|
|
33
|
-
|
|
34
|
-
That story reserves:
|
|
35
|
-
|
|
36
|
-
- `.tmp/wave-9-pilot/runs/<runId>/manual-certification.json`
|
|
37
|
-
|
|
38
|
-
for A4's manual certification capture so manual Word evidence can attach by `runId` without
|
|
39
|
-
rewriting fixture or scenario source records.
|
|
40
|
-
|
|
41
|
-
## Behavior
|
|
42
|
-
|
|
43
|
-
- Fixture runs remain keyed to the frozen `fixture:<fixtureId>` registry.
|
|
44
|
-
- Scenario runs remain keyed to the separate `scenario:<scenarioId>` registry and do not collapse
|
|
45
|
-
into the release-gate fixture corpus.
|
|
46
|
-
- Validation stays server-side and continues to bridge through the harness route instead of
|
|
47
|
-
exposing the validator to the browser.
|
|
48
|
-
- `POST /api/validate` accepts an optional `runId` and, when present, attaches the stored
|
|
49
|
-
validator result into the same run story instead of leaving an isolated validation snapshot.
|
|
50
|
-
|
|
51
|
-
## Proof Notes
|
|
52
|
-
|
|
53
|
-
- The Wave 9 proof bundle is integration-level and durable.
|
|
54
|
-
- The smoke artifact exercises the route handlers with real harness storage writes and a mocked
|
|
55
|
-
validator response so the linkage contract is reproducible without claiming fresh live Railway
|
|
56
|
-
evidence from A2's slice.
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# Wave 9 Live Proof
|
|
2
|
-
|
|
3
|
-
## Scope
|
|
4
|
-
|
|
5
|
-
- Harness surface: `https://docx-react-component-early-access.up.railway.app`
|
|
6
|
-
- Railway project/environment: `Fabric` / `early-access`
|
|
7
|
-
- Harness service: `docx-react-component`
|
|
8
|
-
- Proof bundle: `.tmp/wave-9-pilot/`
|
|
9
|
-
|
|
10
|
-
The operator command sequence in the wave used stale `react-word-editor` / `staging` names.
|
|
11
|
-
The live Railway surface for this proof was the current `docx-react-component` service in
|
|
12
|
-
`early-access`, consistent with `docs/plans/operations/wave-8-railway-staging.md`.
|
|
13
|
-
|
|
14
|
-
## Live Status
|
|
15
|
-
|
|
16
|
-
- `railway service status -s docx-react-component -e early-access --json` reported `SUCCESS`
|
|
17
|
-
for deployment `c32405ea-0818-45de-9576-0d3309870086`.
|
|
18
|
-
- `/api/health` reported harness `status: ok`, validator `status: ok`, storage mode
|
|
19
|
-
`configured-volume-path`, and post-capture counts of `35` sessions, `10` exports, and
|
|
20
|
-
`10` validation runs.
|
|
21
|
-
- The environment-wide Railway service list still showed `openxml-validator` as `FAILED/stopped`.
|
|
22
|
-
The proof bundle treats current harness health plus successful validation traffic as
|
|
23
|
-
authoritative and records the drift in `.tmp/wave-9-pilot/harness-status.json`.
|
|
24
|
-
|
|
25
|
-
## Captured Run Chain
|
|
26
|
-
|
|
27
|
-
Each run artifact records the durable chain:
|
|
28
|
-
|
|
29
|
-
- exact source id
|
|
30
|
-
- exact harness session id
|
|
31
|
-
- exact persisted export id
|
|
32
|
-
- exact persisted validation run id
|
|
33
|
-
|
|
34
|
-
The four captured live runs are:
|
|
35
|
-
|
|
36
|
-
| Source | Session | Export | Validation run | Validator result |
|
|
37
|
-
| --- | --- | --- | --- | --- |
|
|
38
|
-
| `F01` | `383cb0d2-735d-4e81-b34d-06d6e1f57719` | `875074c4-8437-4189-bd9e-fa493d0539c8` | `a8b65cde-1b90-4fc2-a71d-d854915888b9` | clean |
|
|
39
|
-
| `F11` | `b8a6d1bc-3ea5-4d1b-921c-5c5d6c8611bb` | `18fc2891-187d-4374-bb23-3e3427f798b0` | `ae7fc5e3-38b9-44fd-98e1-351efa8467ba` | clean |
|
|
40
|
-
| `S01` | `9860a071-da8a-491a-b26f-d2e0da966a05` | `63a4a8ad-f284-4d6d-b996-38988c12e6f5` | `8b87c8a5-4360-40b0-b111-26275b2bc4ca` | 10 SDK findings |
|
|
41
|
-
| `S02` | `ba3b2665-d7af-4433-92ec-51cc33c1242f` | `3e39f4a8-8668-4629-ae6a-7866521ced25` | `e7f44f93-7c1c-4711-be53-794c58e5d8ef` | 48 SDK findings |
|
|
42
|
-
|
|
43
|
-
`F01` and `F11` were validator-clean. `S01` and `S02` kept their scenario-specific validator
|
|
44
|
-
findings visible instead of being flattened into a false pass.
|
|
45
|
-
|
|
46
|
-
## Capture Method
|
|
47
|
-
|
|
48
|
-
The live harness did not expose the planned Wave 9 convenience routes yet:
|
|
49
|
-
|
|
50
|
-
- `/api/fixtures/[fixtureId]/run`
|
|
51
|
-
- `/api/scenarios/[scenarioId]/run`
|
|
52
|
-
- `/api/runs/latest/validator`
|
|
53
|
-
|
|
54
|
-
To keep the bundle grounded in the currently deployed surface, this proof used the live harness
|
|
55
|
-
paths that do exist today:
|
|
56
|
-
|
|
57
|
-
1. POST the `/fixtures` server action for the exact source id to mint a live session.
|
|
58
|
-
2. Read the session package from `/api/sessions/[sessionId]/source`.
|
|
59
|
-
3. Persist that exact package to `/api/exports`.
|
|
60
|
-
4. Persist validation through multipart `/api/validate` with `sessionId`, `sourceId`, and
|
|
61
|
-
`exportId`.
|
|
62
|
-
5. Read the stored run from `/api/runs/[runId]`.
|
|
63
|
-
|
|
64
|
-
This keeps the proof durable and fully linked, but it does not prove that the browser-only
|
|
65
|
-
mounted-editor `Export` button was exercised in this shell session.
|
|
66
|
-
|
|
67
|
-
## Linkage Proof
|
|
68
|
-
|
|
69
|
-
- `.tmp/wave-9-pilot/latest-export-validator.json` points to the latest captured export/run pair
|
|
70
|
-
for `S02`.
|
|
71
|
-
- `.tmp/wave-9-pilot/run-linkage-check.json` confirms:
|
|
72
|
-
- each run references the same `sourceId`, `sessionId`, and `exportId` as its paired live-run
|
|
73
|
-
artifact
|
|
74
|
-
- `latest-export-validator.json` matches the same top-level ids as its embedded run detail
|
|
75
|
-
- manual notes mention every captured `runId` and every captured `exportId`
|
|
76
|
-
|
|
77
|
-
## Manual Certification State
|
|
78
|
-
|
|
79
|
-
`.tmp/wave-9-pilot/manual-certification-notes.md` records the exact run/export ids for `F01`,
|
|
80
|
-
`F11`, `S01`, and `S02`.
|
|
81
|
-
|
|
82
|
-
Current manual review status:
|
|
83
|
-
|
|
84
|
-
- `Word Desktop`: `Not Yet Reviewed`
|
|
85
|
-
- `Word Web`: `Not Yet Reviewed`
|
|
86
|
-
|
|
87
|
-
No manual Word reopen observations were captured from this shell session, so the proof bundle
|
|
88
|
-
keeps those surfaces explicitly pending instead of implying a pass.
|
|
89
|
-
|
|
90
|
-
## Verdict
|
|
91
|
-
|
|
92
|
-
The Wave 9 proof bundle is durable and live for:
|
|
93
|
-
|
|
94
|
-
- current Railway harness health
|
|
95
|
-
- exact live session/export/run linkage
|
|
96
|
-
- validator-clean proof for `F01` and `F11`
|
|
97
|
-
- explicit preserved findings for `S01` and `S02`
|
|
98
|
-
|
|
99
|
-
The bundle is still short of full `pilot-live` closure for this proof owner because:
|
|
100
|
-
|
|
101
|
-
- manual Word Desktop/Web reopen was not executed here
|
|
102
|
-
- the mounted-editor export control was not browser-automated from this shell
|
|
103
|
-
|
|
104
|
-
Until those two surfaces are captured, this proof should be treated as a grounded live bundle with
|
|
105
|
-
an explicit certification gap, not as final Word-verified closure.
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
# Wave 9 Reviewer Workflow Usability And Performance Pilot
|
|
2
|
-
|
|
3
|
-
## Scope
|
|
4
|
-
|
|
5
|
-
- Owner: A5
|
|
6
|
-
- Owned components:
|
|
7
|
-
- `react-editor-ui`
|
|
8
|
-
- `tracked-changes-and-review-actions`
|
|
9
|
-
- `railway-test-harness`
|
|
10
|
-
- Live harness surface: `https://docx-react-component-early-access.up.railway.app`
|
|
11
|
-
- Proof bundle: `.tmp/wave-9-pilot/`
|
|
12
|
-
|
|
13
|
-
This pilot exercised the live staging reviewer loop on the mounted editor, not only the backing
|
|
14
|
-
API chain. The bounded task set was:
|
|
15
|
-
|
|
16
|
-
1. open a document
|
|
17
|
-
2. interpret warnings and health signals
|
|
18
|
-
3. switch markup display modes
|
|
19
|
-
4. navigate comments and revisions
|
|
20
|
-
5. accept or reject a change
|
|
21
|
-
6. export
|
|
22
|
-
7. inspect the stored export and validation artifacts
|
|
23
|
-
|
|
24
|
-
The measured sources were:
|
|
25
|
-
|
|
26
|
-
- `F01` plain-text baseline
|
|
27
|
-
- `F10` comment-heavy threaded comments
|
|
28
|
-
- `S02` redline-heavy real-world scenario
|
|
29
|
-
|
|
30
|
-
The comparison sources were:
|
|
31
|
-
|
|
32
|
-
- `F05` table-heavy agreement
|
|
33
|
-
- `S01` table/preserve-only scenario
|
|
34
|
-
- `/demo` prototype route for intended trust, table, and typography posture
|
|
35
|
-
|
|
36
|
-
## Method
|
|
37
|
-
|
|
38
|
-
- Browser automation ran against the live Railway harness and persisted proof under
|
|
39
|
-
`.tmp/wave-9-pilot/`.
|
|
40
|
-
- Timing budgets were intentionally bounded:
|
|
41
|
-
- load: `5000 ms` plain text, `6000 ms` comment heavy, `12000 ms` redline heavy
|
|
42
|
-
- review navigation: `1000 ms`
|
|
43
|
-
- revision action: `1500 ms`
|
|
44
|
-
- export: `5000 ms` plain text, `8000 ms` comment heavy, `15000 ms` redline heavy
|
|
45
|
-
- The canonical summary artifact is `.tmp/wave-9-pilot/performance-smoke.json`.
|
|
46
|
-
- Task-level evidence lives in:
|
|
47
|
-
- `.tmp/wave-9-pilot/reviewer-task-matrix.md`
|
|
48
|
-
- `.tmp/wave-9-pilot/raw/plain-text-f01.json`
|
|
49
|
-
- `.tmp/wave-9-pilot/raw/comment-heavy-f10.json`
|
|
50
|
-
- `.tmp/wave-9-pilot/raw/redline-heavy-s02.json`
|
|
51
|
-
- `.tmp/wave-9-pilot/source-validation-f10.json`
|
|
52
|
-
- `.tmp/wave-9-pilot/source-validation-s02.json`
|
|
53
|
-
|
|
54
|
-
## Verdict
|
|
55
|
-
|
|
56
|
-
Wave 9 does not close `pilot-live` for the owned reviewer-facing components.
|
|
57
|
-
|
|
58
|
-
Performance itself stayed within the bounded budgets on the successful flows:
|
|
59
|
-
|
|
60
|
-
- `F01` loaded in `508 ms` and exported in `131 ms`
|
|
61
|
-
- `S02` loaded in `3735 ms` and exported in `3877 ms`
|
|
62
|
-
|
|
63
|
-
The blocking findings are not latency failures. They are reviewer-trust and workflow-correctness
|
|
64
|
-
failures, which the pilot treats as release blockers at Sev-1 or Sev-2 severity.
|
|
65
|
-
|
|
66
|
-
## Blocking Findings
|
|
67
|
-
|
|
68
|
-
### 1. Markup mode switching is not trustworthy on the mounted editor
|
|
69
|
-
|
|
70
|
-
- `F01` and `S02` both rendered the markup controls, but the canvas chip stayed `markup all`
|
|
71
|
-
after toggle attempts.
|
|
72
|
-
- This blocks a core reviewer trust task even on the plain-text path, because the operator cannot
|
|
73
|
-
confirm that the requested markup view actually changed.
|
|
74
|
-
- Severity: Sev-2 blocker against `react-editor-ui` and `tracked-changes-and-review-actions`.
|
|
75
|
-
|
|
76
|
-
## 2. The comment-heavy live path fails on a validator-clean source package
|
|
77
|
-
|
|
78
|
-
- `F10` source validation run `8e072df8-4561-4d03-a5b9-89587f70a306` was clean: zero package
|
|
79
|
-
findings and zero SDK findings.
|
|
80
|
-
- The mounted session `42bfbe23-7ed2-4e6a-98ad-1102d384ec4f` then showed a fatal runtime error:
|
|
81
|
-
unresolved internal relationships under `/word/word/...`.
|
|
82
|
-
- The live rails simultaneously reported `0 comments` and `0 revisions`, so the reviewer gets a
|
|
83
|
-
misleading empty-review state instead of a trustworthy compatibility diagnosis.
|
|
84
|
-
- Severity: Sev-1 blocker against `railway-test-harness`, `react-editor-ui`, and the mounted
|
|
85
|
-
import path that underpins comment review.
|
|
86
|
-
|
|
87
|
-
## 3. The redline-heavy live path does not provide trustworthy review actions
|
|
88
|
-
|
|
89
|
-
- `S02` loaded into session `a1d18816-8e73-4e3c-a664-060829b3cee8` with `276` visible revisions,
|
|
90
|
-
so the review rails were populated.
|
|
91
|
-
- Revision cards exposed accept/reject actions only; there was no direct anchor-jump or
|
|
92
|
-
open-in-canvas navigation control for targeted review.
|
|
93
|
-
- A single-item accept attempt left the visible pending count unchanged at `276`, so the reviewer
|
|
94
|
-
could not trust that the action landed.
|
|
95
|
-
- Severity: Sev-1 blocker against `tracked-changes-and-review-actions` and `react-editor-ui`.
|
|
96
|
-
|
|
97
|
-
## 4. The mounted export path regressed validator findings on the redline-heavy scenario
|
|
98
|
-
|
|
99
|
-
- `S02` source validation run `27b9cc6f-9367-4c45-a215-0122ee2541ad` reported `48` SDK findings.
|
|
100
|
-
- Export from mounted session `a1d18816-8e73-4e3c-a664-060829b3cee8` produced export
|
|
101
|
-
`3269c5fb-9d49-47f2-ab14-84a8e731f312`.
|
|
102
|
-
- Validation run `0d2be9ad-07d3-44fc-89d6-ec559247a9bb` on that export reported `74` SDK findings.
|
|
103
|
-
- The reviewer surface did not surface a trust cue explaining that the mounted export worsened the
|
|
104
|
-
validator state by `26` findings.
|
|
105
|
-
- Severity: Sev-1 blocker against `railway-test-harness` and the reviewer trust model around
|
|
106
|
-
tracked-change exports.
|
|
107
|
-
|
|
108
|
-
## Prototype And Deferred-Expansion Delta
|
|
109
|
-
|
|
110
|
-
The `/demo` prototype still communicates the intended reviewer posture more clearly than the live
|
|
111
|
-
staging shell:
|
|
112
|
-
|
|
113
|
-
- the prototype exposes a posture label, reduced-motion toggle, session switcher, and unified
|
|
114
|
-
`Comments`, `Changes`, and `Health` rail tabs
|
|
115
|
-
- the live harness keeps comments and revisions in separate panels, carries more operator chrome,
|
|
116
|
-
and did not produce an equivalent unified health/trust surface during the pilot
|
|
117
|
-
- the prototype renders prototype-only table previews, while the live harness renders table-heavy
|
|
118
|
-
content as `Locked preserve-only` atomic regions
|
|
119
|
-
|
|
120
|
-
That difference matters for claim discipline:
|
|
121
|
-
|
|
122
|
-
- table-heavy documents are harder to review on the live shell because the reviewer can only
|
|
123
|
-
inspect preserved table regions as whole units
|
|
124
|
-
- the pilot should not claim prototype-style table review behavior for `F05` or `S01`
|
|
125
|
-
- no `font_substitution` warning fired on the measured runs, but the live shell also does not
|
|
126
|
-
expose a font-intent or substitution trust cue, so the pilot should not claim the prototype's
|
|
127
|
-
curated-typography posture on font-sensitive documents
|
|
128
|
-
|
|
129
|
-
## Owned Component Status
|
|
130
|
-
|
|
131
|
-
- `react-editor-ui`: gap
|
|
132
|
-
- markup mode controls are inert on the mounted editor
|
|
133
|
-
- live reviewer health/trust cues trail the prototype posture materially
|
|
134
|
-
- `tracked-changes-and-review-actions`: gap
|
|
135
|
-
- revision navigation is not targeted enough for reviewer workflow
|
|
136
|
-
- accept/reject did not show a trustworthy state transition in `S02`
|
|
137
|
-
- `railway-test-harness`: gap
|
|
138
|
-
- `F10` fails in the mounted import loop despite a validator-clean source package
|
|
139
|
-
- `S02` mounted export regressed SDK findings without a reviewer-visible warning
|
|
140
|
-
|
|
141
|
-
## Follow-Through
|
|
142
|
-
|
|
143
|
-
Before these components can credibly move to `pilot-live`, the next closure pass needs to prove:
|
|
144
|
-
|
|
145
|
-
- markup mode changes alter the mounted canvas state visibly and deterministically
|
|
146
|
-
- comment-heavy mounted sessions do not collapse validator-clean sources into fatal `/word/word/*`
|
|
147
|
-
relationship errors
|
|
148
|
-
- revision navigation and single-item accept/reject produce observable, trustworthy state changes
|
|
149
|
-
- mounted export preserves or improves the source validator baseline for the redline-heavy scenario
|
|
150
|
-
|
|
151
|
-
Until then, this pilot should be treated as authoritative live evidence of a reviewer-workflow
|
|
152
|
-
gap, not as a pass.
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# Wave Specs
|
|
2
|
-
|
|
3
|
-
This directory stores implementation-facing contract packets and handoff docs that sit between the shared plan and the source tree.
|
|
4
|
-
|
|
5
|
-
Wave 1 freezes the initial contract set here. Later-wave or off-sequence extensions should live under [docs/plans/waves/deferred/README.md](/home/coder/docx-react-component/docs/plans/waves/deferred/README.md) when they are not part of the active numbered wave sequence.
|