Skip to content

merge: sync with upstream can1357/oh-my-pi - #3

Open
todie wants to merge 7019 commits into
mainfrom
sync/upstream-2026-10-02
Open

todie wants to merge 7019 commits into
mainfrom
sync/upstream-2026-10-02

Conversation

@todie

@todie todie commented Oct 2, 2026

Copy link
Copy Markdown
Member

Brings unsigned-gg/omp up to date with upstream can1357/oh-my-pi (main at cf2d9c1) by a signed merge commit, not a rebase, so the default branch is never force-pushed. Carries our 7 commit(s) unchanged; git diff upstream/main HEAD shows only them. Operator request 2026-10-02: update the estate's forks.

rickythefox and others added 30 commits October 1, 2026 16:19
Background bash jobs keep their full command alongside the 120-char label.
/jobs full prints it untruncated: sanitized and wrapped in the TUI, fenced
as a Markdown code block over ACP. Plain /jobs is unchanged.
- Merged available judge/search/image/speech runners into the /model hub pool when an enabledModels/--models scope is active, so their role assignments resolve.
- Stopped resolveModelScope from warning on enabledModels entries that name a non-chat runner.
- Documented that the scope restricts chat models only.

Fixes can1357#14016
…low-text

fix(ai): recognize Strata context overflow errors
Deferred reviews rendered skipped turns from the live transcript, after the per-turn prune had already elided superseded tool results in place. Every advisor now snapshots its delta at each primary boundary; cadence only decides whether the capture is sent or held, and held captures detach from in-place rewrites.
Rebuilds (roster save, context prompt, model-role reconcile) seeded every new runtime to the current transcript, silently dropping updates the cadence had captured but not yet sent. Each successor now resumes at its predecessor's cursor with the held updates and cadence phase. Cadence and catch-up resolve at each boundary instead of entering the build signature, so editing advisor.reviewMode/reviewInterval applies to the running default advisor without tearing down its context.
The headless drain only waited on dispatched backlog, so omp -p with an agent-end or interval reviewer disposed the session before the final answer was ever reviewed. prepareForHeadlessAdvisorDrain now sends each advisor's held updates, and the drain waits on strict advisors without its wall-clock budget, matching strict at every primary boundary.
…ss drain

Roster entries default to turn/1 rather than inheriting the cadence settings, which apply to the roster-less default advisor; say so, and describe capture at every boundary, rebuild carry-over, and the headless drain.
…r strict

The unbounded strict drain applied to every waitForAdvisorCatchup caller, so a strict advisor could hold subagent teardown past its cleanup deadline. Only print mode now opts in (strictWithoutDeadline); subagent cleanup waits on strict advisors up to its existing deadline.
…akes

An advise-only advisor turn now ends the review, so the strict-stop test parked on a wrap-up request that never came and hung. Park inside a sibling tool call of the same advisor turn instead, and expect the single request the per-advisor catch-up review actually makes.
… the system prompt

Startup memory consolidation refreshed the system prompt after a session
had already sent requests, so Opus 5.5 rejected replayed signed thinking
with a prefix-binding 400. The refresh now waits for the next session,
the catalog marks Opus 5.5 thinking as prefix-bound so Bedrock sends
drop_block, and Bedrock Converse retries once without replayed reasoning
when the error still arrives.
…started

The sleep latch stopped scheduling after any terminal boundary until new user input, so todo-reminder, async-wake, autoresearch, and live-delegation continuations went unreviewed and agent-end reviews fired at the premature stop. Mark a continuation when an advisor delivery actually starts one (a steer while idle or past a terminal boundary) and consume the mark at that continuation's terminal boundary; fresh user input voids it.
…bled

applyAdvisorConfigs returned before storing the roster, shared instructions, and note budget when the advisor was off, so /advisor on rebuilt the stale roster. Store them unconditionally; the rebuild already starts nothing while disabled.
Routed interrupted turns through the busy-aware continuation scheduler so a late tool match still delivers its rule injection.

Covered a busy continuation followed by a model-visible interrupt and updated the lifecycle documentation.

Fixes can1357#14018
Agent-end concerns could only request a continuation when the review landed inside the terminal-boundary window; with the default syncBacklog off they arrived after it and were downgraded to cards. The live route now grants the same exemption while terminal unwind is active; stop/abort, preserve-only, and cooldown gates still apply.
…ivery guard

Restore the planModeState accessor and the SessionAdvisorsOptions order and memoryPrompt doc this PR rewrote without need, and state at the boundary finally that late notes with syncBacklog off deliver individually and are kept off finished work by terminal unwind, not the merge window.
The merge carried it into the released 18.2.9 section.
Brit and others added 30 commits October 2, 2026 16:56
…t when registry answers dist-tag lookup with 200 (@H4vC)

fix(coding-agent): read version from packument when registry answers dist-tag lookup with 200
…; kill in-process targets without the broker
fix(coding-agent): keep subagent wait and proc:// usable when the daemon broker hangs
- Added a subagent flag to buildSystemPrompt, set from agentKind in sdk.ts and exposed to templates.
- Replaced the Verify workflow and trailing verify rule with a hand-off for subagents so parallel children stop storming the CPU with builds, tests, and smoke runs.
- Removed the subagent Validation section that allowed scoped smoke runs, and documented the subagent template field.
- Listed `undo` in the TSP hello features and typed the
  {"ev":"undo","sf","id"} event in pi-wire.
- Routed it through NativeBackend to NativeUiEvent { type: "undo" } and
  ran the existing undo history in Editor and Input (plus the git
  sidebar and predict CLI fields that forward native edits).
- Tern now sends it for Ctrl+Z in the composer, so the draft undoes
  instead of omp suspending.
- Split the auth-gateway's routes out of its HTTP server as createAuthGatewayRouter and added serveAuthGatewayStdio, a JSON-lines transport: {id, path, body} in, {id, status, body} out, answered concurrently and matched by id.
- Added `omp auth-gateway stdio`, serving those routes to a parent process on the CLI's own credentials, models and settings; a request's model takes any --model selector and falls back along retry.fallbackChains.
- Documented the protocol in auth-broker-gateway.md and the CLI reference.
Plain /dump is back to the main transcript only. /dump all writes a temp
zip with session.md, llm-request.json, and one subagents/<path>.md per
persisted subagent, reporting subagent discovery failures without losing
the main dump.

Subagent discovery now descends only into real child directories (a
'..jsonl' stem looped forever), flags tombstoned agents as aborted, and
the dump skips subagents with no messages.
… graph

Move getAgentTombstonePath into a dependency-free registry/agent-tombstone
module so session/sub-sessions does not pull agent-registry into the HTML
export bundle, and stub the moved sub-sessions import in the focused
HTML template bundle test.
…th each subagent transcript (@H4vC)

feat(coding-agent): /dump all writes a zip with each subagent transcript
The ownership lease was named after the path a process opened, so a process
that reached a live session through a symlink or a hard link computed a
different lock, won it, and mixed its turns into the owner's journal.

The lease is now keyed by the session id: every process that opens the
journal, by any name, reads the same id and meets the same lock. A second
writer still moves to a sibling, which gets a new id. A collab guest's replica
takes its own id (child of the host's) so a guest on the host's machine never
contends with the host. `omp gc` probes the lease by the replica's header id.

`moveTo` now refuses, before relocation starts or any directory is created,
to move a session another live omp process writes or to replace a destination
file whose session another process writes.
fix(session): retry the same model once after a mid-stream socket drop
/changelog, /context, /tools, /hotkeys, /advisor status, the /memory views and
the mental-model views no longer add their report to the transcript. Text mode
shows a report that fits above the editor like /btw (Esc dismisses it) and a
taller one as a scrollable full-screen page on the alternate screen; the native
terminal opens a /usage-style sheet whose long body scrolls.
- close an open report sheet or full-screen page when the transcript resets
- show the key that actually closes a focused report (tui.select.cancel)
- never render a docked report past its row cap after a resize
…ide the transcript (@H4vC)

feat(coding-agent): show command reports outside the transcript
…nscript

/jobs, the read-only /mcp subcommands (help, list, resources, prompts,
notifications) and /ssh help|list now use the command report instead of
writing a block into the transcript. Natively /jobs opens the live jobs
sheet; /jobs full keeps the full command lines in a report. Removes the
now-unused JobsPanel transcript block.
…ion id (@andrebrait)

fix(session): key the ownership lease by session id
…ive flag

- replace the mocked native /jobs test with a real interactive session whose
  job manager runs a job: /jobs opens the focused live JobsSheet listing it,
  the transcript is untouched, and Esc closes the sheet
- restore the previous native-rendering flag instead of forcing it off
… reports outside the transcript (@H4vC)

feat(coding-agent): show /jobs, /mcp and /ssh reports outside the transcript
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.