• v1.14.19c — bash history persistence, shell defaults, GID auto-detect
    Publish Docker Image / build-base (push) Successful in 40m28s
    Publish Docker Image / build-omos (push) Successful in 50m37s
    Publish Docker Image / update-description (push) Successful in 15s

    joakimp released this 2026-04-21 19:47:16 +02:00 | 117 commits to main since this release

    Container-level release on top of opencode 1.14.19.

    Features

    • Bash history now persists across 'docker compose up --force-recreate'
      via a new named volume 'devbox-shell-history' mounted at ~/.cache/bash.
      HISTFILE points there; no setup required.
    • Quality-of-life shell defaults are shipped in /etc/skel-devbox/ and
      copied to ~/ only if absent. Gives new containers prefix history
      search on Up/Down, 100k-entry timestamped dedup history, coloured
      case-insensitive tab completion, 'ls'/'cat' aliased to eza/bat,
      zoxide and fzf integrations, and a [devbox] prompt marker.
    • Host bind-mounts or in-container customizations are never overwritten
      on upgrade — the entrypoint copies from skel only when the target
      file does not already exist. Defaults remain discoverable at
      /etc/skel-devbox/ for anyone who wants to diff or reset.

    Fixes

    • entrypoint.sh now detects workspace UID and GID independently. If the
      host user has UID 1000 but a non-1000 primary group (e.g. GID 1001
      from useradd), the container's developer group is remapped correctly
      instead of leaving files with a numeric GID the container can't
      resolve.

    Docs

    • deploy/README.md gained a Troubleshooting section on SSH banner-timeout
      symptoms caused by residential CGNAT (Tele2, Comhem, Telia) and the
      ControlMaster fix that eliminates them.
    • README.md and DOCKER_HUB.md document the new Shell defaults section
      and the /etc/skel-devbox/ restore/diff commands.

    Upgrade safety

    • All host bind-mounts (~/.config/opencode, ~/.aws, ~/.ssh, workspace)
      untouched.
    • Existing named volumes (devbox-data, devbox-state, devbox-uv,
      devbox-vscode) preserved.
    • Bash history in the container writable layer is lost on recreate as
      always, but going forward the new devbox-shell-history volume makes
      future history survive recreation.
    Downloads