feat(web): switch unattended migration to product workflows
Some checks failed
M6 deployable RC / quick (push) Has been cancelled
M6 deployable RC / chromium (push) Has been cancelled
M6 deployable RC / release (push) Has been cancelled

This commit is contained in:
mes123456
2026-09-06 04:37:51 +08:00
parent f5f77492f5
commit 5218ee0692
5 changed files with 476 additions and 14 deletions

View File

@@ -0,0 +1,68 @@
# Web Product Migration Strategy
## Decision
`3745` is a source traceability inventory, not a count of independent user
features and not the Web product completion denominator.
Its current composition is:
| Source unit | Count | Share | Product meaning |
| --- | ---: | ---: | --- |
| Blender editor operators | 2018 | 53.89% | Mostly desktop editor/UI actions; many are modal, contextual, aliases, or Web-irrelevant |
| RNA structs | 979 | 26.14% | Data schema/type surface, not 979 separate workflows |
| Node registrations | 497 | 13.27% | Supported type universe, implemented by shared graph readers/dispatchers |
| Modifier source modules | 97 | 2.59% | Backend implementation families, not separate screens |
| WebEngine commands | 96 | 2.56% | Direct Web product mutation surface at the inventory snapshot |
| Operator macros | 58 | 1.55% | Composite desktop actions that reuse lower-level operations |
More than half of the inventory is Blender's desktop operator layer. Porting
those identifiers one by one would duplicate the browser UI architecture and
still would not prove that a user can complete a workflow. The inventory also
lags the current command registry, which now declares 100 Main commands. This
drift is another reason not to use the value as a release percentage.
The inventory remains useful for source provenance, risk discovery, and later
defect diagnosis. It must not block implementation completion.
## Completion Model
Implementation progress is measured by 16 user workflow modules:
1. project open/save/recovery
2. Web workspace and viewport
3. object and scene graph
4. mesh modeling and UV
5. non-mesh geometry
6. materials, shaders, and textures
7. modifiers and geometry nodes
8. animation and NLA
9. sculpt, paint, and Grease Pencil
10. render, light, camera, and world
11. compositor
12. physics and simulation
13. media, audio, and sequencer
14. assets, libraries, and interchange
15. browser storage and recovery
16. worker, performance, and modular WASM lifecycle
A module is implementation-complete when its Web entry point, typed protocol,
Worker route, and native Main/WASM path exist and its user actions are reachable
from the product. Desktop windows, screen layouts, native file browsers, and
other OS-owned Blender UI are replaced by browser-native equivalents rather
than copied by operator identifier.
## Implementation-First Rules
- Implement one workflow gap per Codex turn.
- Do not run tests, builds, type checks, browsers, full validators, or coverage
binding during this phase.
- Do not claim source-inventory units from similar names or neighboring code.
- Preserve completed WASM modules for preload and keep the active debug module
dynamically loaded.
- Record implementation changes and move immediately to the next workflow.
- After implementation closure, defects are opened from real user operation
and fixed as focused tasks.
The source inventory and historical parity ledger are retained as reference
artifacts only. They no longer control the Web product completion percentage.