Conversation
|
Independent verification of the claim this PR rests on — plus one boundary and a supersede notice I have an independent patch for #326 posted in that thread (2026-09-20), so I read this PR against the same call graph. Three things worth putting on the record. 1 · "Every production caller catches the surfaced backend exception" — verifiedThis is the load-bearing claim: the backends used to answer every failure with a bare Read at
7/7 sit inside a
The repo also carries no test files ( I checked the no-regression half too, on the branch you did not mean to change: with 2 · On the resident path the code you build is discarded
3 · Supersede notice, to save you reading two patchesMy inline patch in #326 covers the same ground (six sites; an One process note, not a complaint: Not a formal review — I have no review permissions on this repository — and there is no .NET SDK on this machine either, so the above is source-level verification of the call graph, not a build. |
|
Thanks for the call-site review. I agree the resident path should preserve the structured diagnostic rather than discard it. The three explicit-native failure sites now throw the existing Validation on macOS / .NET 10: the regression harness loads the actual built assembly and invokes the CLI. It covers docx/pptx, single/grid, direct/resident, JSON/text, and successful auto/HTML screenshot controls. The old PR head fails 12 of 45 checks; the updated build passes all 45. Seven synthetic diagnostic cases also exercise the real classifier and JSON formatter, including COM activation/open errors, timeout and empty output. Release build succeeds with no new warnings. Real Windows Office/COM execution remains untested on this macOS host. A minimal resident repro on macOS/Linux is |
|
Re-verified on the updated head ( Source-level again, no SDK; same question as before (if this were false, which path breaks?).
Nothing further from me on this one. Worth noting for the record: resident mode and standalone mode now agree on both the error code and the exit status for the same failure, which is the property the earlier call-site comment was asking for — and the same shape as the other resident-vs-standalone envelope gaps that have been raised in #350 and #411. If those are still open, this is the pattern to reuse rather than a new mechanism. Not a formal review (no review permissions here), and no build — the above is the call graph at |
Summary
--render nativediagnostics--render autobehavior unchanged: native failures still fall back silently to HTMLWhy
When Office is installed and COM activation succeeds, a document-specific open failure such as
Invoke(Open) hr=0x80070570was swallowed by the native backend. The caller then reported that PowerPoint or Word was not installed, which sent users toward the wrong fix and hid the useful HRESULT.The native backends now surface worker-thread failures while preserving their original stack. Explicit native mode maps those failures to either
native_unavailableornative_render_failed; auto mode continues to catch them and use the existing HTML fallback.Validation
dotnet build src/officecli/officecli.csproj -c Release— succeeded with 0 errorsnative_unavailablenative_unavailablewith HRESULTInvoke(Open) hr=0x80070570→native_render_failedwith the original stage and HRESULTnative_render_failed--render autoretains its fallback behaviorCloses #326