Skip to content

ALL-159: Expose scoped native presentation with generated runtime client - #342

Merged
allisoneer merged 10 commits into
devfrom
codex/all-159-native-runtime
Oct 9, 2026
Merged

allisoneer merged 10 commits into
devfrom
codex/all-159-native-runtime

Conversation

@allisoneer

@allisoneer allisoneer commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

ALL-159 prerequisite for ALL-108 / ALL-121: make the existing native presentation reusable with an injected runtime and the full generated typed HTTP/SSE client. A caller retains its endpoint/authentication, router and static hosting; native caches, stores, subscriptions, overlays and keyboard behavior close with that runtime. SDK-only imports remain runtime-free.

The existing private @arcee-ai/nac-client-all-121 package exports the presentation, explicit CSS, fonts and asset manifest with optional UI peers. Styles and formula fonts are scoped through existing CSSOM APIs. Rust remains the generated API contract's source of truth.

Independent stack root on current dev@eb518255c9d4131474b9b3487c59233545662cf8; reviewed head 0d4c05dfb919b6d53ffcef0a177010c71e913792. Both final workflows checked out synthetic merge 21e7ef1809ca85483ad7c04c46f0cbe32663b0a1, with dev/native parents and a tree identical to the PR head. Seven original native commits remain patch-equivalent after the conflict-free refresh.

Qualifying review/CI repairs preserve injected URL mapping for initial and reconnecting SSE; restore standalone read retry=1 through an explicit bounded option while hosted reads default to false and mutations remain no-retry; and serialize the three source-binary copy/execute fixtures to prevent the observed Linux descriptor race. The URL and standalone retry regressions fail before their fixes. Product upgrade behavior, command budgets, delays and test assertions are retained.

Final exact-head validation is green: stable CI includes 540 web tests, generated-assets checks, default-parallel Rust tests, Linux/macOS builds and all 66 production-browser cases. Managed CI includes repository acceptance, private fault fixtures and an exact integrated linux/amd64 image build/smoke without publication. Fresh Bugbot found no new issues; the coordinator's bounded independent review cleared this head; all qualifying findings are addressed and zero review threads remain unresolved.

Source distribution: exact 0d4c05df archive, verified HTTP 200 with all 1,072 paired source/generated files and 393 npm package files matching. Source integrity: sha512-D6g6RLj0arr6yFDMEN3tz4gvj8sn2zMpnESuY83rcg4x1UPLeq672HyMPNlXzzf0ew3El1TBwEIe5lcOZFjWVQ==. Reproducible npm pack/clean-consumer integrity: sha512-WVrmRCPENIa4coLS13i7svP8hSmyZGR1VVg9bd7GW/Fy3GbF52ijtPrp1lACQbiWhBCUi4OfOekPd0reMHWmDA==.

The first 9cfd CI failure remains preserved: errno 26 occurred when executing a just-copied fixture binary, before upgrade ran. A deterministic Linux check confirms the inherited-writer mechanism; exact CI scheduling was not captured. A separate local parallel run failed/hung in the unchanged upstream creation-saturation fixture; isolated cases and a full serial run pass. That local limitation is retained separately from the passing final default-parallel CI. Superseded/canceled and older-base runs are historical evidence.

This supplies the native package/runtime prerequisite. Real Clerk/M2M/resource authorization, signed receiving journeys, comparative performance, historical-browser certification and serialized Dev2 acceptance remain with their owning units. Existing public APIs/session behaviors/standalone routes are preserved. No registry publication, package rename, migration, deployment or merge; Allison retains review and merge.


Note

Medium Risk
Broad front-end packaging and injected transport/SSE behavior affect embedders and live session UX, but server auth and wire contracts stay generated; risk is mainly integration regressions and stale committed build artifacts.

Overview
Adds a packaged native React presentation (packages/nac-presentation, @arcee-ai/nac-client-all-121/presentation) that hosts can mount via createNativeRuntime and NativePresentationRoot, with caller-supplied endpoint, HTTP headers, and EventSource construction. The web app’s runtime layer owns query cache, stores, and stream lifetime; replacing or closing the runtime tears down subscriptions and UI state without taking over the caller’s router or global styles (scoped CSS, asset manifest, external React peers).

Extends the private nac-client with createNacApi (full OpenAPI-aligned resource facade), NAC_API_SURFACE, and NacHttpTransport so consumers can inject an existing authenticated transport. SSE subscription gains an optional finite connection lease (maxConnectionMs) and stricter handling so stale connections do not deliver events after reconnect.

Build/CI: npm run build and make test-assets now require committed nac-presentation/dist alongside existing client and embedded server assets; lint/format ignore the new dist tree.

Verification: New Playwright suites exercise hosted and packed-tarball consumers (files/Git, settings uncertainty on lost responses, MCP, model configs, style/router isolation, MathJax fonts). Rust source_binary_contract tests serialize binary copy/exec with a mutex to avoid Linux ETXTBSY races. Embedded nac-server assets are refreshed to match the new bundle hashes.

Reviewed by Cursor Bugbot for commit 74fc5b4. Bugbot is set up for automated code reviews on this repo. Configure here.

@allisoneer

Copy link
Copy Markdown
Collaborator Author

cursor review

@allisoneer allisoneer changed the title Expose scoped native presentation with generated runtime client ALL-159: Expose scoped native presentation with generated runtime client Oct 8, 2026

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@allisoneer
allisoneer marked this pull request as ready for review October 8, 2026 17:36
@allisoneer
allisoneer marked this pull request as draft October 9, 2026 15:37
@allisoneer
allisoneer force-pushed the codex/all-159-native-runtime branch from 1ef87f5 to 474c18f Compare October 9, 2026 15:40
@allisoneer

Copy link
Copy Markdown
Collaborator Author

cursor review

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

Comment thread crates/nac-server/web/packages/nac-client/src/eventStream.ts
@allisoneer

Copy link
Copy Markdown
Collaborator Author

cursor review

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@allisoneer

Copy link
Copy Markdown
Collaborator Author

@cursor bugbot review

@cursor

cursor Bot commented Oct 9, 2026

Copy link
Copy Markdown

Unable to authenticate your request. Please make sure to connect your GitHub account to Cursor. Go to Cursor

@allisoneer

Copy link
Copy Markdown
Collaborator Author

cursor review

@cursor cursor Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stale Bugbot comment from a previous run.

@allisoneer

Copy link
Copy Markdown
Collaborator Author

cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 0d4c05d. Configure here.

@allisoneer
allisoneer marked this pull request as ready for review October 9, 2026 17:57
@allisoneer
allisoneer merged commit dd2be00 into dev Oct 9, 2026
14 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 9, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant