Nanobot
Nanobot’s pending-message identity fix follows the sender all the way into saved history
Nanobot has proposed a fix for queued mid-turn messages losing channel, chat, sender, thread, workspace, and metadata. The patch resolves each pending message through its own RequestContext and keeps model-only markers out of public history.
HKUDS/nanobot PR #5084 is the inspected primary source: “fix(agent): preserve pending message runtime context.” PR #5084 closes the identity-loss report inspected in the previous edition with a distinct implementation source spine. The pending-drain callback previously converted each InboundMessage into plain user text, bypassing the trusted metadata blocks and RuntimeContextProvider path used by normal inbound turns. The patch resolves runtime context per queued message, preserving channel, chat, sender, message ID, metadata, workspace, and original text. It carries an internal runtime-context marker through session persistence while keeping that marker hidden from public history, and leaves system and subagent injections on their existing internal path. The author reports 113 focused tests, 5,141 full-suite passes with 22 skips, Ruff checks, and diff hygiene.
The facts
- HKUDS/nanobot PR #5084 was created 2026-07-25T13:29:22Z and updated 2026-07-25T14:00:15Z; state is open. - HKUDS/nanobot returned 46231 GitHub stars, 837 open issues, default branch main, and last push 2026-07-25T19:28:16Z. - Latest tagged-release baseline checked: v0.3.0 published 2026-07-25T08:08:47Z. - PR #5084 closes the identity-loss report inspected in the previous edition with a distinct implementation source spine. - The pending-drain callback previously converted each InboundMessage into plain user text, bypassing the trusted metadata blocks and RuntimeContextProvider path used by normal inbound turns. - The patch resolves runtime context per queued message, preserving channel, chat, sender, message ID, metadata, workspace, and original text. - It carries an internal runtime-context marker through session persistence while keeping that marker hidden from public history, and leaves system and subagent injections on their existing internal path. - The author reports 113 focused tests, 5,141 full-suite passes with 22 skips, Ruff checks, and diff hygiene.
What changed
PR #5084 closes the identity-loss report inspected in the previous edition with a distinct implementation source spine. The pending-drain callback previously converted each InboundMessage into plain user text, bypassing the trusted metadata blocks and RuntimeContextProvider path used by normal inbound turns. The patch resolves runtime context per queued message, preserving channel, chat, sender, message ID, metadata, workspace, and original text. It carries an internal runtime-context marker through session persistence while keeping that marker hidden from public history, and leaves system and subagent injections on their existing internal path. The author reports 113 focused tests, 5,141 full-suite passes with 22 skips, Ruff checks, and diff hygiene. The primary record was inspected with its timestamps, state, body, and adjacent project records. ClawCharts supplied the assignment list; it does not establish the claim.
Why it matters
Fixing display text alone would leave the dangerous part untouched. A queued message needs durable provenance through model input, persistence, and outbound routing; otherwise a group follow-up can be attributed to the wrong person after a restart or replay. Keeping trusted metadata private from public transcripts also separates identity enforcement from accidental disclosure. The operational test is whether persisted state, visible control, and runtime behavior agree at the handoff where authority changes.
Current
PR #5084 remained open, so this is a proposed fix rather than shipped behavior. Nanobot released v0.3.0 on July 25, but the inspected pull request is not presented as part of that tag. Adjacent work completed a fresh-install WebUI handoff, showing current product attention beyond the queue repair. Repository metadata, current issues and pull requests, release baseline, Hacker News discovery, and the rendered ranking row were checked. Weak search residue and historically used source spines were not promoted.
Evidence
The primary URL is https://github.com/HKUDS/nanobot/pull/5084. Supporting links are inspected current project records that establish implementation, adjacent direction, or boundary conditions. Dates, reproductions, test totals, and deployment observations remain attributed to their authors unless this brief explicitly says they were independently rerun.
Source boundary
Open work is described as open, merged work as merged, and operator reports as reports. A closed issue or passing branch test is not silently translated into a released fix. Ranking explains why the project was scanned; it does not prove correctness, adoption, or package behavior.
Operator take
Test two senders in one group while a long turn is active, then inspect both immediate model input and persisted/replayed history. The second sender’s identity and route must survive, while internal trust markers must not render to ordinary users. Preserve a before-state receipt and verify the narrowest invariant where state changes. Do not broaden permissions or delete state merely because the visible symptom is inconvenient.
Caveat
Public project records are mutable. Source state was captured at publication time, and later revisions may change status, scope, or evidence. No source here authorizes automatic mutation of a reader’s deployment.
Source inspected; source state, environment, and release boundary remain explicit.