codeman@1.32.1
Patch Changes
-
13e652e: Terminal copy: copying text out of a Claude Code or Codex pane no longer puts the pane's two-column transcript gutter on the clipboard, so pasted lines arrive flush instead of indented (#469). The width comes from the CLI registry (
capabilities.transcriptGutter, 2 for claude and codex, measured on live panes) and is only a ceiling: a selection only ever shifts as a block, so its own indentation survives. Other CLIs and shells are untouched. It works in split panes and detached session windows too, and can be turned off per device in App Settings under Selection & clipboard. -
13e652e: Sessions: recovering a Claude session whose tmux pane had died relaunched
claude --session-id <id>, which Claude refuses once that id has a transcript, so the pane died again straight away and the conversation was stranded. The relaunch now resumes the conversation (--resume <id> || --session-id <id>), including when tmux lost the whole session (#467). -
00f022c: Terminal: when a burst of output overflows the render queue and a frame has to be dropped, the repaint that repairs it is now retried until it actually happens, instead of being scheduled once and silently skipped when another load was in flight (#470).
-
13e652e: Mobile: a long press on blank terminal space on Android Chrome no longer opens the keyboard and blanks the terminal (#471, fixes #360). The long-press guards are now armed before the press is checked for selectable text, so a press on empty space is swallowed the same way a press on a word already was.
-
13e652e: Sessions: a tab whose agent has exited (the CLI quit, but tmux kept the pane) now says so with a muted dot and an
exited (137)badge, instead of looking like an idle session (#466, part 1 of #446). The state is published aspaneExiton the session and survives a restart. Nothing closes such sessions yet; that is part 2. -
13e652e: Docker: optional GitHub CLI and Azure CLI for private repositories (#472). Both are off by default. With
CODEMAN_INSTALL_GH=1/CODEMAN_INSTALL_AZ=1as build args indocker-compose.override.yml, the server image getsghand/oraz(with theazure-devopsextension) wired in as git credential helpers, so after onegh auth loginoraz loginfrom a shell session, Add Case → Clone Repo can clone private GitHub and Azure DevOps repositories.CODEMAN_AGENT_IMAGE_INSTALL_GH/_AZdo the same for the Docker-case agent image, and only then are the sign-ins copied into new case containers. In multi-user mode a non-admin's clone runs with the credential helpers cleared. This changesserver.Dockerfile, so Compose deployments need aStart-Codeman.shrebuild rather than an in-app update. -
13e652e: Run menu: the Gemini, Antigravity and OMP run buttons now show their own colours on every skin; they rendered in Claude blue on all skins except OG (#463). The CLI registry's
accentvalues were also corrected to the colours the UI really paints, and a test now guards the stylesheet trap that caused it. -
13e652e: Terminal: five ways the browser terminal could silently stop being correct are fixed (#431, #464). The browser terminal and the PTY can no longer disagree about their width, which is what produced doubled lines and half-overwritten text ("text gets muffled sometimes"): there is now one function that sizes the terminal, and every resize is answered with the geometry the PTY really holds. A replay clear goes through the terminal's own queue, so bytes written just before it no longer fuse into the next snapshot. A renderer that stops painting after an iOS PWA is backgrounded heals itself instead of needing a reload. Every terminal capture has a deadline that also covers the response body, and a capture that runs out of time during a tab switch falls back to the bounded tail instead of leaving a blank pane. Output lost to a half-open WebSocket is repainted on the next successful open. The service worker's precache list is now generated by the build and its cache is rotated per build, so old releases' assets no longer pile up.
-
13e652e: Docker: new
docker/Update-Codeman.shfor the major-update path the docs used to describe by hand (#465). It rebuilds the image with--no-cachebefore taking the stack down, clears the build-artefact volumes, refuses to run when another checkout's Compose project already owns the same name, and then hands over toStart-Codeman.sh. -
13e652e: Approvals: a session that is idle only because it is waiting on its own background work (Claude Code's
1 monitorfooter chip, or a Codex background terminal) no longer raises the yellow NEEDS YOU alert or a push (#473, fixes #468). Its idle item is opened already acknowledged, and the tab, the home screens and the rail show a smallwatchingbadge next to the state instead. The item still exists in the Approvals Inbox, and the TUI's pending count now leaves acknowledged items out. -
b404dac: Maintainer fixes applied while landing this batch:
- Terminal (#431): while another device holds the pane's width, a resize retry no longer re-fits xterm to the container and re-wraps the whole buffer every 30 s, and no longer clears scrollback for a redraw that never comes. The PTY's spawn geometry is now recorded at attach, so
ptyGeometrynever reports a size the PTY never held. - Terminal (#470): the
TERMINAL DROPcrash-trail line is logged once per recovery window instead of once per dropped frame (which wiped the rest of the trail within a second), and a refresh that died at its fetch deadline is no longer retried. - Sessions (#467): the resume pin also covers the branch where tmux lost the whole session, the conversation id Codeman reports follows what the relaunch actually resumed, and the test setup strips
CLAUDE_CONFIG_DIRso the suite stays green for anyone running a separate Claude config dir. - Sessions (#466): detailed sidebar and rail rows show an
exitedpill instead ofidle, the exit is announced to screen readers, and the user manual's tab-appearance table lists the new state. - Approvals (#473): a failed pane capture clears the
watchingbadge rather than keeping a stale one (a failure now falls toward an alert, not toward silence), and the header bell's count leaves acknowledged items out, matching the TUI. - Run menu (#463): the Gemini and Antigravity run buttons no longer render two-tone on phones, Gemini's registry accent matches its tab badge, and a test now guards the stylesheet trap for every run mode.
- Docker (#465):
Update-Codeman.shremoves exactly the two build-artefact volumes it names instead of every named volume in the project, reports a failingdocker composeinstead of exiting silently, and its docs and comments were corrected. (#472): the multi-user notes say that a non-admin's seeded Docker case also receives the gh/az sign-in when those switches are on.
Thanks
- @irisitymichaelgrundberg for four PRs in this release: the
watchingbadge that stops background work from raising false alerts (#473, from their own report #468), the exited-agent badge (#466) and the dead-pane resume fix (#467), both from their report #446, and the transcript-gutter strip for copied text (#469), a follow-up to their #451. - @rounakdatta for the terminal resilience work (#431) and the dropped-frame recovery (#470), both from their report #464, and for answering four rounds of review in full.
- @opticon454 for private-repository support in the Docker images (#472), the
Update-Codeman.shscript (#465) and the run-button colour fix (#463). - @DodgyBadger for the Android long-press fix (#471), from their own report #360.
- Terminal (#431): while another device holds the pane's width, a resize retry no longer re-fits xterm to the container and re-wraps the whole buffer every 30 s, and no longer clears scrollback for a redraw that never comes. The PTY's spawn geometry is now recorded at attach, so