Conversation
…series surface API
Re-points the npins kolu pin off the now-merged `surface-map` branch onto
`master` and bumps it from #1714 (7d51cb2b) to HEAD #1836 (07397fa2), then
adapts odu to the surface API changes that landed across the Surface-runtime
(SR1–SR9) series.
Surface server API (`@kolu/surface/server`):
- `implementSurface` now OWNS its in-memory channel and returns the FINAL
top-level router. Drop the hand-passed `channel: inMemoryChannelByName()`
dep and the `implement(contract).router({ ...fragment.router })`
re-finalization from run.ts, runner.ts, serveForTest.ts — serve
`runtime.router` directly, mutate via `runtime.ctx.cells.*`. The dead
`channel` in agentSurface's projection deps goes too (projectSurface hands
deps straight to implementSurface, which owns the channel).
Surface-remote session API (`@kolu/surface-remote`):
- `SessionState` is now a phase-tagged sum with a provenance-tagged `log`
(`{source, line}[]`, episode-scoped) instead of `connection`/`progressLines`/
`lastError`. lane.ts maps `phase`/`error`/`log` accordingly and rewinds its
progress cursor when the episode-scoped log resets on reconnect.
- `makeSession` carries the connector's provisioning vocabulary as a `Prov`
type param; the ssh connector opens at `probing` (SshProv), so the lane
passes `initialConnection: "probing"` with `Prov = SshProv`.
Build:
- The surface's new reactive bridge (`reactor.ts`, reachable from
`@kolu/surface/server`) pulls in `@preact/signals-core`; add it as a direct
dep so the hydrated source resolves, and refresh the `fetchPnpmDeps` hash.
odu's own oRPC surface contracts (oduSurface/laneSurface) are unchanged, so
there is no user-facing CLI/MCP/surface change. Gate green: typecheck, 141 unit
tests, nixpkgs-fmt, `nix build .#odu .#odu-runner`, and the 8 black-box e2e
tests.
srid
added a commit
to juspay/kolu
that referenced
this pull request
Jul 16, 2026
…on to ride (#1839) The coordinator's atlas PR (one at a time, per /orchestrator — fresh cut off master after #1833 merged). ## Two new notes - **`roadmap-graph.mdx` (proposed)** — the smarter-roadmap design, shown not told: one yaml of *inputs* (deps, human lifecycle union, gates, asserted ships), everything else computed (`just roadmap::ripe`, the SR table generated from data, "as of" staleness stamps). Lens-run-first: the run (`wf_f751c3e0-f75`, 10 confirmed findings) killed the first draft's two-writer `status` cell, its forge-derived `ships[]` (all ten campaign PRs have zero closes-edges — verified), and its stored derivations. RM1 = file+commands+lint+component; RM2 = the canvas surface, gated. - **`vorflux-manifesto.mdx` (analysis)** — the Great Flattening read from kolu: the six bottlenecks mapped onto the shipped stack (the gauntlet IS cross-lab adversarial review; the "blind cloud" names kolu's differentiator), five adoptions (harness-as-thesis, reviewer panels, structural vendor neutrality, token accounting, recordings-as-evidence), three doctrinal disagreements with receipts (gates beat "build them all" — SR10's decline; the human merge as the adjudication seat; evidence-per-claim). ## Truing - **deep-links: `status: accepted`** (srid ratified by dispatching DL1) + **step 4b's reuse seam corrected** by the DL1 agent's grounding (CodeTab's `pendingOpen` settle-then-verdict pattern; `useHostAttention` checked and rejected — optimistic fire-and-forget, no defer, no gone-verdict). - **odu's pin bump recorded**: the plan note's stale pin line and SR1's "odu's two wraps at next pin" both resolve to [odu#44](juspay/odu#44); future drift is accounted by the per-PR odu-impact verdict + the [odu#43](juspay/odu#43) ledger. ## To ride here SR8.c note finalization (status + PrLink) when #1838 merges, and the campaign-completion truing. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
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 free
to 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.
What
Bumps the npins
kolupin off the now-mergedsurface-mapbranch ontomaster, from #1714 (7d51cb2b) to HEAD #1836 (07397fa2), and adapts odu to the surface API changes that landed across the Surface-runtime (SR1–SR9) series. odu's own oRPC surface contracts (oduSurface/laneSurface) are unchanged, so there is no user-facing CLI / MCP / surface change — this is a dependency bump plus the internal adaptation it forces.Surface API changes adopted
@kolu/surface/server—implementSurfaceowns its channel and returns the final router.implementSurfacenow mints its own in-memory channel internally and returns the FINAL top-level oRPC router (no consumer re-finalizes). So acrossrun.ts,runner.ts, andserveForTest.ts:channel: inMemoryChannelByName()dep is dropped;implement(contract).router({ ...fragment.router })collapses to servingruntime.routerdirectly;runtime.ctx.cells.*.set(...).The now-dead
channelinagentSurface's projection deps goes too —projectSurfacehands its deps straight toimplementSurface, which owns the channel.@kolu/surface-remote— session state is phase-tagged.SessionStateis now a phase-tagged sum carrying a provenance-tagged, episode-scopedlog({ source, line }[]) rather than the oldconnection/progressLines/lastErrorfields.lane.ts:state.phase(failed/disconnected) andstate.errorinstead ofconnection/lastError;state.log[].line, rewinding its progress cursor when the episode-scoped log resets on a reconnect so early lines of a fresh episode aren't skipped;makeSession's new provisioning-vocabulary type param (Prov = SshProv) and opens at the ssh connector's first phase,initialConnection: "probing"(was"copying").Build
The surface's new reactive bridge (
reactor.ts, reachable from@kolu/surface/server) pulls in@preact/signals-core, so it's added as a direct dependency (the hydrated kolu source resolves it from odu's ownnode_modules), and thefetchPnpmDepshash is refreshed.Verification
Full CI gate green locally:
typecheckunitfmt(nixpkgs-fmt)nix(nix build .#odu .#odu-runner)e2e(black-box, nix-built binary)No
## Evidencerecording: the bump has no externally visible runtime behavior (same commands, same output, unchanged surface contracts) — a pure-internal adaptation per.agency/do.md's skip clause.🤖 Generated with Claude Code