Uh oh!
There was an error while loading. Please reload this page.
[codex] Align notebook runtime architecture - #1
Merged
Conversation
- web/optimistic-store: epoch-keyed in-flight patch store; ActionList
overlays patches immediately, shows a "saving…" affordance, and the
executor's next run reconciles patches whose clickedAtEpoch predates
the run.
- web/error-classifier + ErrorPanel: regex-tag mutation failures into
conflict / permission / network / engine / validation with a real
headline, body, and remediation; raw payload kept dim for engineers.
- client/http: bind fetch to globalThis so browsers don't throw
"Illegal invocation" when the Client calls it as a method.
- executor: \`{ \$state: "/p", default: "x" }\` falls back to the default
when state is missing/null/empty, so cells aren't empty before a
filter selection.
- web: drop unused @omnigraph/fixture workspace dep that was pulling
Node-only loader code into the browser bundle.Uh oh!
There was an error while loading. Please reload this page.
aaltshuler added a commit
that referenced
this pull request
Jun 25, 2026
- Text/Quote `text_column` is now required (z.string().min(1)) — a Text/Quote cell with rows but no text column was silently rendering the empty fallback instead of failing validation. (#3) - validate: warn when a *required* (non-nullable) catalog param is bound to $state without a default — it resolves at runtime, which validate can't see, so flag it rather than passing silently. (#2) - validate: document that the server-bound checks are intentional — structural parse already runs offline above; the meaningful ref/param validation needs a resolvable source by design. (#1, accepted-by-design) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@omnigraph/executorwith@omnigraph/runtimeas the owner of notebook execution, state, actions, mutations, compatibility validation, cancellation, reruns, and optimistic reconciliation.Sourceadapters and align fixture/server behavior, including serveregodecomposition and clear unsupported-feature errors.Notes
This branch also includes the existing local commit
152be7c(Optimistic mutations and classified errors in web app) that was already ahead oforigin/mainbefore this architecture commit. The architecture commit moves the optimistic store responsibility into runtime and removes the old web store.Validation
pnpm -r typecheckpnpm -r testpnpm -r buildSummary by cubic
Replaced
@omnigraph/executorwith@omnigraph/runtimeto centralize execution, state, actions, and mutations behind a capability-aware runtime. Web and TUI now subscribe to runtime snapshots; sources declare capabilities; the runtime handles optimistic reconciliation and error routing.New Features
@omnigraph/runtime: execution, state mirror, dependency invalidation, action dispatch, mutation lifecycle, cancellation/reruns, and optimistic reconciliation.SourceAPI;ServerSourceandFixtureSourceimplement structured queries; raw.gqremains a server-only escape hatch.ActionListshows saving/error via runtime props.fetchtoglobalThis;read()acceptsAbortSignal.Migration
@omnigraph/executorwith@omnigraph/runtimeand usecreateNotebookRuntime.setMutationSource/getMutationSource; the runtime handles the "mutate" action.capabilities(),read(request, ctx), andmutate(cmd, ctx); keep raw.gqserver-only if needed.runtimeProps(e.g.,cell_id); when firing mutations include__cell_idso the runtime can reconcile per-cell state.Written for commit 942e913. Summary will update on new commits.
Review in cubic