7e5a2be3ee
Address PR #3602 review feedback from chatgpt-codex-connector: when a stdin read carries the empty bracketed paste followed by a trailing keystroke (a user pressing Enter right after Cmd+V), the pre-fix paste path was fire-and-forget. The trailing byte processed synchronously while the clipboard image read was still pending, so submit ran against an empty pendingImages and the image landed on the next draft instead. CustomEditor now tracks in-flight pastes with #pasteInFlight and buffers subsequent input into #pendingInput. #trackAsyncPaste increments the counter, awaits the paste promise, decrements, and drains the queue through handleInput (so requeueing still works if a drained chunk triggers another async paste). For an assembled paste whose remaining bytes are present in the same call, those bytes are pushed onto #pendingInput before the async paste starts, so they always run AFTER it settles. The text-paste branch stays sync and drains its own queue inline. New repro test asserts the call ordering: paste:start fires, the queued Enter does NOT, and only after the paste promise settles does Enter dispatch.
@oh-my-pi/pi-coding-agent
Core implementation package for the omp coding agent in the oh-my-pi monorepo.
For installation, setup, provider configuration, model roles, slash commands, and full CLI reference, see:
Package-specific references:
Memory backends
The agent supports three mutually-exclusive memory backends, selected via the memory.backend setting (Settings → Memory tab, or ~/.omp/config.yml):
off(default) — no memory subsystem runs.local— existing rollout-summarisation pipeline; writesmemory_summary.mdand consolidated artifacts under the agent dir.hindsight— talks to a Hindsight server (Cloud or self-hosted Docker), retains transcripts every Nth user turn, recalls memories on the first turn of a session, and exposesretain,recall, andreflect.
Hindsight quickstart
- Run a Hindsight server (Cloud or
docker run -p 8888:8888 ghcr.io/vectorize-io/hindsight:latest). - Set
memory.backend = "hindsight"andhindsight.apiUrl = "http://localhost:8888"(or your Cloud URL). - Optional environment overrides (env wins over settings):
HINDSIGHT_API_URL,HINDSIGHT_API_TOKEN— connectionHINDSIGHT_BANK_ID,HINDSIGHT_DYNAMIC_BANK_ID,HINDSIGHT_AGENT_NAME— bank addressingHINDSIGHT_AUTO_RECALL,HINDSIGHT_AUTO_RETAIN,HINDSIGHT_RETAIN_MODE— lifecycleHINDSIGHT_RECALL_BUDGET,HINDSIGHT_RECALL_MAX_TOKENS— recall sizingHINDSIGHT_BANK_MISSION,HINDSIGHT_DEBUG
Switching backends mid-session is honoured on the next system-prompt rebuild and the next /memory slash command. Existing users with memories.enabled = true|false are migrated to memory.backend = "local"|"off" exactly once on first launch.