Releases: Ark0N/Codeman
codeman@0.6.0
Minor Changes
- Community contributions from @aakhter:
- feat (#66): Tab reorder shortcuts —
Ctrl+Shift+{andCtrl+Shift+}move the active session tab left/right, matching WezTerm convention. Order persists across reloads viasaveSessionOrder(). - feat (#67): Active tab visibility + Alt+N badges — active tab now has a bright green border with color-matched glow, and the first 9 tabs display number badges hinting at the
Alt+Nswitch shortcut. Badges update on reorder/rerender. - feat (#68): Clipboard API — new
POST /api/clipboardaccepting{text}broadcasts aclipboard:writeSSE event; connected browsers attemptnavigator.clipboard.writeText()with a manual-copy modal fallback when the page isn't focused. Auth-protected via the standard middleware. Useful for pushing snippets from remote sessions to the user's local clipboard. - fix (#65): Android Shift+key double character — pressing
Shift+Aon attached Android keyboards no longer produces "AA". Tracks xterm-handled keydown timestamps and skips the orphaned-input listener for 50ms after a real keydown, while still catching Gboard symbol-keyboard inputs (keyCode 229).
- feat (#66): Tab reorder shortcuts —
codeman@0.5.13
Patch Changes
- Fix "Case path not found" error in Quick Start when
~/codeman-cases/does not exist (issue #64). Two bugs insession-ui.js:runClaude()auto-create readcreateCaseData.case, butPOST /api/casesreturns{ success, data: { case } }— corrected tocreateCaseData.data.case.runShell()had no auto-create logic and would immediately throw on a missing case directory — now mirrorsrunClaude()'s create-on-demand flow.
codeman@0.5.12
Patch Changes
- Fix quick-start to resolve linked cases before codeman-cases fallback.
/api/quick-startwas always resolvingcaseNameagainstCASES_DIR, ignoring entries in~/.codeman/linked-cases.json. Sessions started via quick-start now correctly honour linked external project directories, consistent with regular case routes.
codeman@0.5.11
Patch Changes
- Community contributions and security hardening:
- Mobile response viewer: native-scroll panel for reading full Claude responses with markdown rendering via marked.js (PR #62)
- PWA support: service worker caching, web app manifest, and Android home screen install (PR #59)
- Named Cloudflare tunnel support (PR #58)
- Markdown rendering for response viewer with HTML sanitization (XSS prevention) — strips dangerous elements, event handlers, and javascript: URIs
- Service worker switched from stale-while-revalidate to network-first caching so deploys take effect immediately
- Content-Disposition filename sanitization to prevent header injection in file downloads
- Expose session.muxName public getter, replace unsafe
as anycast in session-routes - Static import for execFile in session-routes
- Keyboard shortcut updates: Alt+1-9 tab switching, Shift+Enter newline
- Repo restructure for cleaner GitHub landing page
- Mobile logo, expandable history, session resume fixes
codeman@0.5.9
Patch Changes
-
Mobile keyboard accessory bar: add configurable "Extended Keyboard Bar" setting (Settings > Display > Input) that toggles between simple mode (up/down arrows, /init, /clear, /compact, paste, dismiss) and extended mode (adds left/right arrows, Tab, Shift+Tab, Ctrl+O, Alt+Enter, Esc). Default is simple mode. Setting is device-specific (not synced to server).
Restyle dismiss button: muted steel-blue tone, fills remaining bar space via flex, larger tap target. Arrow buttons now blue.
Fix paste overlay visibility on mobile: dialog repositioned to top of screen (15vh from top) so the virtual keyboard doesn't cover it. Textarea enlarged for better usability.
(Also includes all v0.5.8 changes: case reorder/delete, XSS sanitization, auto-attach PTY on restart, mobile keyboard buttons, macOS installer fixes, terminal flicker fix, state store collision fix.)
codeman@0.5.8
Patch Changes
-
Case management: add Manage tab with reorder (up/down arrows) and delete for cases; linked cases are unlinked (folder preserved), CASES_DIR cases are permanently deleted. New endpoints: DELETE /api/cases/:name, PUT /api/cases/order. SSE events: case:deleted, case:order-changed.
Security: sanitize case names from filesystem with /^[a-zA-Z0-9_-]+$/ regex before returning from GET /api/cases to prevent XSS via maliciously-named directories reaching frontend inline onclick handlers.
Auto-attach PTY: server now calls startInteractive() for recovered tmux sessions during startup so all sessions resume capturing output immediately after deploy, instead of waiting for client selection. Frontend auto-attach condition relaxed from (pid===null && status==='idle') to (pid===null && !_ended).
Mobile keyboard accessory: add Shift+Tab, Tab, Esc, Alt+Enter, Left/Right arrow, and Ctrl+O buttons.
Terminal: fix flicker regression by moving viewport clear inside dimension guard.
State store: fix temp file collisions on concurrent writes.
macOS: fix installer failures when piped via curl | bash, add HTML cache support, launchd service template, and trust dialog handling.
Housekeeping: remove accidentally committed dist/state-store.js build artifact.
codeman@0.5.10
Patch Changes
-
fix: allow bracket characters in model validation regex so models like opus[1m] (1M context window) are accepted instead of silently dropped. Quote the model flag value in tmux spawn commands to prevent bash glob expansion of bracket patterns.
docs: update macOS launchd instructions to use
launchctl bootstrapinstead of deprecatedload. Clean up README install and service sections.
codeman@0.5.7
Patch Changes
- feat: support "Default (CLI default)" option for model selection. Adds a new empty-value option to the model dropdown that defers to the CLI's own default model instead of forcing a specific model. Ensures empty defaultModel values are treated as undefined when passed to session creation and Ralph loop start, preventing empty strings from being sent as model flags.
codeman@0.5.6
Patch Changes
- fix: default new sessions to opus[1m] (1M context window) instead of plain opus (200k context)
codeman@0.5.5
Patch Changes
- Add 1M Opus context quick setting — per-case and global toggle that writes
model: "opus[1m]"to.claude/settings.local.jsonwhen creating new sessions. Fix mobile layout: banners (respawn, timer, orchestrator) between header and main content now visible by switching from margin-top on.mainto padding-top on.app. Add tablet-optimized respawn banner styles and mobile phone banner refinements.