You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: NEXT.md
+22-20Lines changed: 22 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -104,14 +104,15 @@ before when explicitly requested (`SYS-W14-##` rows).
104
104
105
105
## 2. Current status
106
106
107
-
-**Last full build: clean after the current Phase 13 File-open-recent,
108
-
View-Bloom/SSAO, SSAO-regression, Camera Preset Overlay, Gizmo Drag Overlay, Stats Overlay, Measurement Overlay, and Status Bar slices.** Testing is enabled in the current Ninja Release tree, and
107
+
-**Last full build: clean after `SYS-W14-05` embedded GLB support.** Testing is enabled in the current Ninja Release tree, and
109
108
`CCACHE_DISABLE=1 cmake --build b-release -j4` linked all targets successfully
110
109
on EASYGL. Alternate-backend runtime qualification remains blocked.
111
-
-**Tests:** the fresh Release tree registers 182 tests. All passed again after
112
-
the current Phase 13 slices in two
113
-
disjoint groups: 147/147 non-render tests and 35/35 render-labelled tests
114
-
under Xvfb (with local loopback/X11 socket access). SVG-specific
110
+
-**Tests:** the fresh Release tree registers 183 tests. All passed after
111
+
`SYS-W14-05` in two disjoint groups: 147/147 non-render tests and 36/36
112
+
render-labelled tests under Xvfb (with local loopback/X11 socket access).
113
+
The new export test creates an external and inline GLB at runtime and checks
114
+
its flattened geometry; the new screenshot test proves the viewport loads
115
+
that same embed without falling back to a placeholder. SVG-specific
115
116
verification passes with `-j4`: external and inline SVG export to glTF PNGs,
116
117
bounded/malformed input, cache invalidation, and real headless viewport
117
118
screenshots sampling the rasterized material pixels. This session's own
@@ -121,7 +122,7 @@ before when explicitly requested (`SYS-W14-##` rows).
121
122
count this file last recorded (2026-07-19) predates unrelated work not
122
123
narrated here (a further audit pass and the `SYS-W14-18..27`
123
124
mc3-format-vs-editor gap closures — see `plan.md`/memory, not fully
124
-
reflected in this file's own history) — don't treat 142→182 as this
125
+
reflected in this file's own history) — don't treat 142→183 as this
125
126
session's own delta.
126
127
All builds/tests this session used at most `-j4` (never `-j$(nproc)`), per
127
128
the user's standing request (shared machine).
@@ -652,12 +653,12 @@ backlog (650+ STAB tasks, then a 57-finding audit, all archived DONE).
652
653
653
654
## 4. Current blocker / main problem
654
655
655
-
**The current Phase 13 slice has a clean full Release build and complete test
656
-
verification.**`AUD-090` preflights `xvfb-run` with a real `xdpyinfo` client.
656
+
**The current `SYS-W14-05`slice has a clean full Release build and complete
657
+
test verification.**`AUD-090` preflights `xvfb-run` with a real `xdpyinfo` client.
657
658
The execution sandbox blocks the local sockets needed by Xvfb and the
658
659
`mc3_ai` loopback mock server, but the permitted host run completed both
659
-
partitions cleanly: 147/147 non-render tests (including `mc3_ai` in 1.27
660
-
seconds) and 35/35 render tests. CI explicitly installs `xvfb` and
660
+
partitions cleanly: 147/147 non-render tests (including `mc3_ai` in 1.28
661
+
seconds) and 36/36 render tests. CI explicitly installs `xvfb` and
661
662
`x11-utils` for the same render path. `AUD-091` therefore remains closed as
662
663
a stale-build false positive rather than hidden behind a longer timeout.
663
664
@@ -685,8 +686,9 @@ path still requires CNA/backend validation.
685
686
attributes/elements on round-trip (`SYS-W5-03`, human-decided,
686
687
documented in `MC3_FORMAT.md`); editor/exporter use different triangle
687
688
winding deliberately; undo history is a bounded 20-entry stack
688
-
(`AUD-038`); `embed:` mesh references aren't resolved on export
689
-
(`AUD-025`, deferred).
689
+
(`AUD-038`). Embedded self-contained GLB meshes are supported; loose glTF
690
+
companion-file assets and other unsupported embedded-asset features are
691
+
explicitly rejected with a warning (see `SYS-W14-05`).
No actionable follow-up audit task remains: `AUD-089` through `AUD-092` are
860
862
complete. Android (`AUD-042`) remains environment-blocked, but is now an
861
863
explicit supported-platform goal rather than a possible rejection path.
862
-
`SYS-W3-01` has 12 completed subsystem phases and an active Phase 13 for
863
-
application/UI ownership. The authorized Camera Bookmarks, Camera Preset Overlay, Gizmo Drag Overlay, Stats Overlay, Measurement Overlay, Status Bar, Walk Mode, View
864
+
`SYS-W3-01` has 12 completed subsystem phases; its Phase 13 application/UI
865
+
ownership work is deferred by user priority. The completed Camera Bookmarks, Camera Preset Overlay, Gizmo Drag Overlay, Stats Overlay, Measurement Overlay, Status Bar, Walk Mode, View
864
866
Bloom/SSAO, Help, Add/CSG, Edit-history, Edit-clipboard, and Edit-object-actions
865
867
menu slices are implemented and verified, together with Edit-selection-actions,
Copy file name to clipboardExpand all lines: TESTING.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ ctest --print-labels # list all labels
31
31
ctest --rerun-failed --output-on-failure
32
32
```
33
33
34
-
Expected result: every registered test passes. On 2026-07-26 the fresh Release build reported 183 registrations; the new embedded-GLB export and viewport tests passed after a host configure/build. The preceding complete run passed 147/147 with `-LE render` and 35/35 with `-L render`; re-run both partitions after this change for the final 147/147 + 36/36 confirmation. The focused suites are run with at most `-j4` after each change. A failing test prints its assertion/subprocess output inline with `--output-on-failure`; without that flag, CTest only shows pass/fail per test name.
34
+
Expected result: every registered test passes. On 2026-07-26 the fresh Release build reported 183 registrationsand passed all of them as two disjoint host runs: 147/147 with `-LE render` and 36/36 with `-L render` under Xvfb. The focused suites are run with at most `-j4` after each change. A failing test prints its assertion/subprocess output inline with `--output-on-failure`; without that flag, CTest only shows pass/fail per test name.
35
35
36
36
Each C++ test binary can also be run directly (bypassing CTest) for faster iteration:
-**Evidence:** GltfExporter.cpp:586-593: `if (obj.type == ObjectType::Mesh && !obj.meshSource.empty()) { try { md = loadObjMesh(ctx.basePath, obj.meshSource); } catch (...) { std::cerr << Warning ...; ctx.stats.warnings++; return -1; } }`. The exporter never checks for the `embed:<id>` form the mc3 parser/writer round-trip (Mc3XmlParser.cpp:743-749). `loadObjMesh` tries to open a file literally named 'embed:tree', fails, warning printed, node gets no mesh. main.cpp:93 then prints 'Written:' and returns 0. Documented (MC3_FORMAT.md, STAB-0194/0549) and a warning + stats.warnings signal it, so not fully silent — but the tool still reports success with dropped geometry.
2015
-
-**Outcome:** Resolve embed:<id> against doc.embeds (parse the referenced/inline GLB and merge its meshes), or make the missing-geometry case a non-zero exit / clearer failure rather than 'Written' success.
2016
-
-**Tests:** The existing embed_mesh_source_test.py locks in the degraded behavior; add resolution or assert a distinct exit/status when geometry is dropped.
2017
-
-**Verify note:** Evidence is accurate; no correction needed. Severity P2 is appropriate: the geometry loss is signalled by a stderr Warning and the stats.warnings counter (only shown with --show-stats), and the behavior is documented in MC3_FORMAT.md and locked in by a passing test (mc3togltf/test/embed_mesh_source_test.py, STAB-0549) that asserts exit 0 + warning + empty node is the intended, accepted limitation. It is therefore a low-severity known limitation rather than a silent data-loss bug, but the core claim (tool reports 'Written'/exit 0 while dropping the embed:-referenced mesh) is factually correct.
2018
-
-**Status note:** Existing embed_mesh_source_test.py locks in the current documented-limitation behavior (exit 0 + warning + empty node); the adversarial re-verify pass judged this an accepted limitation, not a defect requiring a code change. Left TODO-eligible for W14 embed: resolution work (SYS-W14-05).
2016
+
### AUD-025 `[DONE]``P2``W7` · Resolve `embed:` mesh sources instead of dropping geometry during export
### AUD-038 `[DEFERRED]``P3``W9` · Undo history is a bounded 20-entry whole-document deep-copy stack; oldest entries are silently dropped (informational — answers the audit question, by-design)
0 commit comments