Repository navigation
codr v0.7.0
codr 0.7.0
Phone-driven coding
- Phone text goes directly to the mapped agent while it is working, without interrupting the current task. Backend-native input handling still applies. Existing accepted deliveries are kept; uncertain submissions are not replayed automatically.
/cancelinterrupts the current task in this chat. It never deletes history, stops a worker, or cancels accepted future deliveries./clear-queueis retired./sync auto,/sync on, and/sync offselect a persistent global sync mode. Help displays that mode./unmuteclears a forced mode and restores automatic sync./recentreplaces the previous catch-up/sync: retrieve the newest three text messages from conversations active in the past hour, without unmuting or repeating confirmed/pending messages.- Control replies wait for a timestamp after the phone input, avoiding same-second ordering ties and allowing modest clock differences. This does not delay native agent input.
Projects, agents and models
- Four-step
/newmenus select an existing or new herdr workspace, folder, installed agent, and model. Numeric replies and0cancellation keep phone input short. The final preview requires the displayed workspace name before creating anything. - Expired project menus clear after one notice, so later phone messages reach the normal agent route. The message that triggered expiry is not automatically replayed. Uncertain actions still require local inspection.
/agentstarts a separate session and chat, retaining the old history and accepted work. Fresh chats identify the agent inside the workspace parentheses.- Model menus offer the default or provider categories, then each provider's full model list. Variants are separate. OpenCode discovery uses the authenticated V2 API; Codex lists its cached models; Claude Code offers documented aliases. Discovery does not guarantee backend account entitlement.
- Pat is the default public display name for newly created bridge identities. Existing identities and custom names stay unchanged.
Images and optional desktop access
- Explicitly embedded local images in completed agent replies use encrypted attachments, not public uploads. Incoming images retain captions and private prepared paths across worker restarts. In this release, incoming media still uses idle-gated delivery; only ordinary phone text has the new immediate-delivery behavior.
- The separate portr desktop app can use an optional, same-user codr endpoint over SSH. It is disabled by default; setup offers an opt-in. Codr does not install SSH, a VPN, or the desktop application.
Platforms and upgrades
- Keep stable OpenCode executable paths across Homebrew upgrades. Setup can repair a missing versioned path after validating the replacement, while Claude-only and Codex-only installations do not require OpenCode.
- Read Claude transcripts above 128 MiB and parse only appended complete records. A bounded 32-entry cache avoids reparsing the full transcript on each poll. Cache eviction and load-sensitive bridge waits have regression coverage.
The release workflow builds Linux and macOS for x86-64 and ARM64, with a dedicated connector pinned to MDK 0.14.0. Publication requires all platform checks and connector tests to pass; a local Linux test run does not verify macOS.
MDK 0.13 users: before first opening storage with MDK 0.14, stop both services and make a private, device-local backup of the complete connector home, database sidecars, media, configuration, and secret-store credentials. Obtain explicit approval before migration. MDK 0.14 rekeys and upgrades storage; downgrading the executable does not make that storage compatible with 0.13. Setup does not automatically cross that cohort boundary. See installation and upgrade and connector provenance.
MDK 0.14 installations keep their existing configuration, account identity and chat mappings. Apply worker updates only after other work is idle. Do not clear pending deliveries to upgrade.
GitHub is the primary release host. ngit and Blossom mirror the exact published source and asset bytes, subject to signer approval and download verification. A failed or pending mirror is reported separately, not treated as a completed publication.
Contributors
- Paul Eipper (@lkraider) contributed the large Claude transcript reader, incremental parsing, cache/eviction tests and load-tolerant bridge test waits through ngit. His original commits and authorship are preserved: reader, cache tests, wait budgets and remaining timing tests.
- Juraj Bednar (@jooray) contributed the Homebrew/OpenCode executable-path fix in GitHub PR #6.
- Tom Dwyer (@tidley) implemented the phone controls, project/model setup and media features, integrated contributions, and handled follow-up fixes, documentation and release work.
Release scope
This release is built from f45578611629069f0ef9cd50b59e4994e07d018b and provides Linux and macOS builds for x86-64 and ARM64. Source refs are mirrored to ngit; the release-asset mirror is not yet verified complete.
The later /update feature, immediate prepared-media delivery, repository-name confirmation, canonical-default OpenCode launch fix, shortened welcome, and progress-completion fixes are not in these assets. They are being prepared for 0.8.0. Installing 0.7.0 does not install those local follow-up changes.
Known issues being addressed for 0.8.0: OpenCode may return an explicit default model variant that 0.7.0 treats as an unconfirmed launch, leaving the created folder/session for inspection without starting its tab or agent. Progress notices can also remain at working... after completion. Do not blindly retry uncertain launches or clear account data as a workaround.