Skip to content

Releases: Ark0N/Codeman

codeman@0.5.12

11 Apr 19:02

Choose a tag to compare

Patch Changes

  • Fix quick-start to resolve linked cases before codeman-cases fallback. /api/quick-start was always resolving caseName against CASES_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

11 Apr 05:22

Choose a tag to compare

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 any cast 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

03 Apr 02:18

Choose a tag to compare

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

03 Apr 02:02

Choose a tag to compare

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

03 Apr 02:29

Choose a tag to compare

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 bootstrap instead of deprecated load. Clean up README install and service sections.

codeman@0.5.7

31 Mar 01:11

Choose a tag to compare

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

29 Mar 03:11

Choose a tag to compare

Patch Changes

  • fix: default new sessions to opus[1m] (1M context window) instead of plain opus (200k context)

codeman@0.5.5

28 Mar 15:51

Choose a tag to compare

Patch Changes

  • Add 1M Opus context quick setting — per-case and global toggle that writes model: "opus[1m]" to .claude/settings.local.json when creating new sessions. Fix mobile layout: banners (respawn, timer, orchestrator) between header and main content now visible by switching from margin-top on .main to padding-top on .app. Add tablet-optimized respawn banner styles and mobile phone banner refinements.

codeman@0.5.4

27 Mar 00:45

Choose a tag to compare

Patch Changes

  • Fix terminal flicker regression — re-add server-side DEC 2026 synchronized output wrapping around batched terminal data. Ink spinner frames (cursor-up + redraw cycles) do not emit their own DEC 2026 markers, so without the server wrapper each partial cursor update rendered individually causing visible flicker. Also: extract SSE stream management, session listener wiring, and respawn event wiring from server.ts into dedicated modules; deduplicate error message extraction across 7 files with shared getErrorMessage() helper; update SSE event count in CLAUDE.md (106 → 117).

codeman@0.5.3

25 Mar 22:35

Choose a tag to compare

Patch Changes

  • Readability refactor across 12 core files, extracting ~35 helper methods to reduce duplication:
    • state-store: extract serializeState(), split assembleStateJson() into focused sub-methods
    • session: extract _resetBuffers() (3x dedup), _clearAllTimers() (10 timer cleanups), _handleJsonMessage()
    • ralph-tracker: extract completeAllTodos() (4x dedup), emitValidationWarning(), named similarity constants
    • subagent-watcher: extract markSubagentAsCompleted(), extractFirstTextContent(), emitToolResult(), findOldestInactiveAgent()
    • respawn-controller: extract recoveryResetToWatching(), canAutoAccept(), formatRemainingSeconds(), validatePositiveTimeout()
    • tmux-manager: replace 15 path.includes() with UNSAFE_PATH_CHARS regex, extract buildEnvExports/buildPathExport/_configureOpenCode helpers
    • session-auto-ops: extract executeWhenIdle() shared retry helper, convert to options object, add validateThreshold()
    • app.js: add _clearTimer() (11 call sites), _isStaleSelect(), keyboard shortcut lookup table, _cleanupPreviousSession(), _resetAllAppState()
    • route-helpers: add readJsonConfig() (5 inline patterns replaced), validateSessionFilePath() (2 duplicated blocks replaced)