Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Name the TUI that failed on paste-not-rendered startup failures so the recurring class can be triaged

Closed Beginner friendly
#12,877 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@atomantic is already working on this.

Since Oct 22, 2026.

  • #12891 by @atomantic — merged

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

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

area:cos-agents bug effort:low model:light plan planner:sonnet-5-5

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

  1. Add the TUI command (tuiConfig.command) and the provider id to the startup-failure branch of missingSentinelLogMessage (an optional command argument; the non-startup branches stay byte-identical).
  2. Pass it from the sessionController.js call site, and update server/lib/agentSentinel.test.js and the session-controller assertion that pins the message.
  3. 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-rendered startup 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from atomantic/PortOS

All issues in atomantic/PortOS

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.