Name the TUI that failed on paste-not-rendered startup failures so the recurring class can be triaged
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, node.js
- Domain
- backend, observability
Research direction
Read missingSentinelLogMessage() in server/lib/agentSentinel.js and its call site in server/services/agentTuiSpawning/sessionController.js; the issue identifies the argument and the startup failure branch to update. Run server/lib/agentSentinel.test.js and check the session-controller assertion. Done when startup failure logs name the TUI command and provider, other sentinel messages stay unchanged, and the log remains at warn.
Written by the indexing model from the issue text.
Description
Problem
TUI agents keep failing startup with paste-not-rendered, and the only stderr trace cannot say which TUI failed:
⚠️ agent-<id> startup failed (paste-not-rendered) before a completion sentinel could be written
Evidence (PM2 server error log): 21 occurrences in the last three weeks, 5 in the most recent day, with no matching open issue (the earlier paste-not-rendered incidents are all closed and hardened one provider at a time — see the history cited in server/services/agentTuiSpawning/sessionController.js and server/lib/tuiHandshake.js). The line is built by missingSentinelLogMessage() in server/lib/agentSentinel.js and emitted from sessionController.js (emitLog('warn', missingSentinelLogMessage({ agentId, reason, … }))). It carries only the agent id and the reason, so a stderr fingerprint (the input to #12851) cannot separate a Codex MCP-boot stall from a Claude/agy/OpenCode paste swallow, even though the code at the failure site (finishStartupFailure('paste-not-rendered', summary)) already knows tuiConfig.command.
This surfaced while re-leveling stderr logging in #12850. The line is correctly a fault (the agent never received its prompt); the gap is that it is not actionable at the rate it recurs.
Decision
- Add the TUI command (
tuiConfig.command) and the provider id to the startup-failure branch ofmissingSentinelLogMessage(an optionalcommandargument; the non-startup branches stay byte-identical). - Pass it from the
sessionController.jscall site, and updateserver/lib/agentSentinel.test.jsand the session-controller assertion that pins the message. - After one release with the new field, read the 30-day split by command: if one TUI dominates, file a provider-specific fix against that handshake (the way the earlier Codex/agy/OpenCode incidents were handled); do not widen retry budgets blindly.
Acceptance criteria
- A
paste-not-renderedstartup failure names the TUI command in its stderr line; other sentinel messages are unchanged. - No new stderr line is introduced; the level stays
warn. - A one-sentence follow-up comment on this issue records the per-command split once enough runs accumulate.
Related to #12850 and #12851. Dispatch rationale: model:light — a single-field logging change with two test updates; effort:low, there is no design choice left.
- Dominant language
- JavaScript
- Stars
- 38
- Forks
- 32
- Avg merge
- 36m
- Merged PRs (30d)
- 989
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from atomantic/PortOS
-
bug
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
GitHub inbox: Dependabot and Actions PRs count as outside, and Enterprise accounts cannot trust their own instancePossibly taken @atomantic claimed this today. Openarea:devtools effort:medium enhancement in-progress model:heavy plan
atomantic/PortOS#13203 · 1 assignee ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 48/100
Maintainers usually reply within 1 day
-
GitHub inbox: make triage suggestion pills actionable buttonsPossibly taken @atomantic claimed this today. Openarea:devtools effort:medium enhancement model:light plan ux
atomantic/PortOS#13193 · 1 assignee ·
Maintainers usually reply within 1 day
-
GitHub inbox: add an automation rule from any item so similar items are handled on AutopilotPossibly taken @atomantic claimed this today. Openarea:devtools effort:high enhancement model:heavy plan
atomantic/PortOS#13192 · 1 assignee ·
Maintainers usually reply within 1 day
All issues in atomantic/PortOS
Similar issues
-
ew
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Maintainers usually reply within 1 day
-
priority: medium status: needs-decision work-class: scoped
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
melodic-software/claude-code-plugins#9339 · 2 comments ·
Maintainers usually reply within 1 day
-
bug-report bug-report-triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Codeinwp/templates-patterns-collection#539 ·
Maintainers usually reply within 1 day
-
建议增加URL参数构建的工具Open
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
[Bug] dsh 0.2.1 返回 session/not-found 时 sessionExists 不重建会话,消息恒失败并被误报为 INTERNAL_UNKNOWNPossibly taken @ANIIAN91 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
xmanrui/dsh-im#444 · 1 comment ·
Maintainers usually reply within 1 day