## jonwiggins/optio — v0.6.5…v0.7.0

_65 commits._

### Features
- **feat(android): repo settings use the live agent picker** (2b88c77)
- **feat(ios): repo settings use the live agent picker** (b44830f)
- **feat(web): text size and column width controls in Chat** (388170b)
- **feat: refresh Codex's usage limits on demand** (617da7a)
- **feat: every Who with every When and Where — command Jobs, triggered shells, agents with repos** (1ac3a0e)
- **feat: Where → Environment — per-work connections, MCP, skills, secrets, PR settings** (c32fa3d)
- **feat(api): one runs table — Job runs become tasks rows with kind 'standalone'** (07603e2)
- **feat: remove the Thinking toggle; Claude always thinks** (9adceda)
- **feat(web): repo settings use the New work agent picker; repo pages refreshed** (5d1f14e)
- **feat(api): one work_definitions table, and /api/work creates, saves, and deletes work** (6e10bec)
- **feat: every Claude effort level per model; monochrome brand and agent logos** (6ede162)
- **feat(api): share run logs, spend, Job-run transitions, and pods across work kinds** (c517698)
- **feat(web): model providers, owners and secrets, logos, stable order, refreshed pages** (a037c97)
- **feat(android): model providers, owners, secrets, logos, stable order, remembered settings** (816b680)
- **feat(ios): model providers, owners, secrets, logos, stable order, remembered settings** (3850221)
- **feat: server-side Work list at /api/work, and count every row with spend on /costs** (4fd6a2e)
- **feat(helm): run the web UI in the API's pod; the operations assistant is off by default** (bf83459)
- **feat: model providers (Bedrock), owners, pod secrets, PR detection from tool calls** (32733be)
- **feat(android): "Work until merged" in the New work form and Work feed** (978ca1a)
- **feat(ios): "Work until merged" in the New work form and Work feed** (f77db54)
- **feat: browse and search accessible GitHub repos when adding a repo (#623)** (c833c53)
- **feat(web): run local work in a subdirectory of an allowlisted dir (#622)** (afdfb68)
- **feat: "Work until merged" — per-task PR follow-through in the New work form** (3759920)
- **feat(mobile): rename Local session faces to Chat ⇄ Terminal** (b0c6557)
- **feat(web): Chat ⇄ Terminal faces with a reply box for Local sessions** (4e64cac)

### Fixes
- **fix: address the third round of adversarial reviews (correctness + simplicity)** (7904e9d)
- **fix(api): one Work row per local Job run, Job-run ids resolve, attempt-scoped heartbeat** (f7efdfa)
- **Merge pull request #628 from jonwiggins/fix/claude-effort-max-thinking** (a24b7fa)
- **fix: max effort reaches pod runs; thinking off drops effort** (a0013c3)
- **fix(android): restore the Merge icon import dropped by the merge** (71431d0)
- **Merge branch 'fix/quick-wins': setup, webhook, OpenClaw, agent pod token, repo browser, local subdirectories** (a831c74)
- **fix(container-runtime): honor serviceAccountName on runtime-created pods** (80bb738)
- **fix(k8s): stop auto-mounting the ServiceAccount token into agent pods** (6398b16)
- **fix(api): parse OpenClaw output in job and persistent-agent workers** (030fd14)
- **fix(api): dedupe GitHub webhook replays by delivery id in Redis** (2346e7b)
- **fix(api): look up the merged PR's task by URL instead of scanning 500 tasks** (52ddccb)
- **fix(api): accept null display names when validating git tokens (#621)** (c558d39)
- **fix: a dispatcher that loses the local-run claim waits for the winner's terminal** (0877092)

### Backend
- **Merge pull request #629 from jonwiggins/feat/codex-refresh-chat-font-mobile-repo-picker** (5181eaa)
- **Merge remote-tracking branch 'origin/main'** (24c96d3)
- **Merge pull request #625 from jonwiggins/claude/backend-work-unification-he934y** (94fa689)
- **Merge pull request #627 from jonwiggins/feat/claude-effort-levels-mono-logos** (13f7915)
- **Merge pull request #626 from jonwiggins/feat/model-providers-owners-logos** (13de7a4)
- **Merge remote-tracking branch 'origin/main'** (9410f87)
- **Merge pull request #624 from jonwiggins/claude/hopeful-lamport-yfun6z** (dc19869)
- **Merge branch 'feat/until-merged-mobile': Work until merged on iOS and Android** (2c7acea)
- **Merge branch 'feat/chat-view': Chat ⇄ Terminal faces with a reply box** (3c3a89e)

### Tests
- **test(web): pick the review trigger from the tighten-only Code review control** (3055750)
- **test(web): pick pod secrets under Where → Environment; say the pod is the repo's** (a9590bc)

### Docs
- **docs: changelog for v0.7.0** (72735a9)
- **docs(site): make /platform accurate, legible on phones, and accessible** (b8ee349)
- **docs(site): "One noun: Work" — the platform approach, at /platform** (2e96ff8)
- **docs: fix comments that name dropped tables and counters** (b5dd581)
- **docs: point session-form and /sessions/new references at work-form and /work/new** (05deef7)
- **docs(changelog): Work until merged** (509ed60)
- **docs(changelog): Chat ⇄ Terminal and replying from Chat** (7a2e0ec)

### Chore
- **chore: regenerate Swift and Kotlin shared types** (6683fa2)
- **refactor(api): one query per question for runs, triggers, and Job capacity** (e7576c3)
- **refactor: remove dead pod and Job-run leftovers** (97917a2)
- **refactor(web): drop uncalled api-client methods; scheduled Task runs from /api/tasks/:id/runs** (31a1308)
- **chore(merge): bring in origin/main (Claude always thinks; max effort in pods)** (97c295b)
- **chore: regenerate Swift and Kotlin shared types** (806e62e)
- **chore(merge): bring in origin/main (Claude effort levels, repo settings agent picker)** (a81b7f2)
- **chore(merge): bring in origin/main (model providers, owners, pod secrets, task PRs)** (b613cbb)
- **chore: keep the native apps out of the Docker build context** (36c829c)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/jonwiggins/optio?utm_source=github-action)._