Skip to content

codeman@1.32.1

Choose a tag to compare

@github-actions github-actions released this 23 Sep 10:35
· 14 commits to master since this release
120d780

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 as paneExit on 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=1 as build args in docker-compose.override.yml, the server image gets gh and/or az (with the azure-devops extension) wired in as git credential helpers, so after one gh auth login or az login from a shell session, Add Case → Clone Repo can clone private GitHub and Azure DevOps repositories. CODEMAN_AGENT_IMAGE_INSTALL_GH / _AZ do 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 changes server.Dockerfile, so Compose deployments need a Start-Codeman.sh rebuild 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 accent values 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.sh for the major-update path the docs used to describe by hand (#465). It rebuilds the image with --no-cache before 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 to Start-Codeman.sh.

  • 13e652e: Approvals: a session that is idle only because it is waiting on its own background work (Claude Code's 1 monitor footer 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 small watching badge 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 ptyGeometry never reports a size the PTY never held.
    • Terminal (#470): the TERMINAL DROP crash-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_DIR so the suite stays green for anyone running a separate Claude config dir.
    • Sessions (#466): detailed sidebar and rail rows show an exited pill instead of idle, 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 watching badge 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.sh removes exactly the two build-artefact volumes it names instead of every named volume in the project, reports a failing docker compose instead 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 watching badge 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.sh script (#465) and the run-button colour fix (#463).
    • @DodgyBadger for the Android long-press fix (#471), from their own report #360.