01
Full-history review and additions
Local CLI and native Companion expansion accompanied routing-gate aggregates. Answer verification is one judge pass displaying concerns, not automatic correction or guaranteed correctness.
All reachable history of main 0641c480 was rechecked on 2026-10-18. Counts use committer dates from Monday 00:00 through Sunday 23:59:59 KST, including merges, releases and distinct parallel-branch commits. Commit counts are not feature counts. Tests and operational measurements below are historical source records, not evaluations rerun for this refresh.
02
What changed
- OpenMake Code: a local CLI agent task that runs tools on the user's machine instead of the server sandbox. A bridge folder-selection protocol followed, letting the web pick the working folder without restarting the CLI, with the selected folder recorded in the readiness log. Late in the week, creating a local task became an audit record - closing the first axis - and the bridge device code was consolidated into a single packages/local-bridge-core, opening the second. A worktree cwd ENOENT on untracked subfolders was fixed, the file kind's FS calls went async behind a timeout guard so one blocking call could no longer kill every connected root, and the bridge harness joined CI.
- The desktop shifted its axis. A first SwiftUI native companion arrived with a helper bridge, an approval dialog, notification deep links, and its own native update channel, and several roots can be connected at once, each with an independent bridge connection under a derived device id. The Electron shell was declared frozen one day and removed from the repository the next. desktop-native now owns local agent work, while the update path and old dmg that existing installs rely on stay in place and only new publishing stops.
- Mobile answer rendering was reworked: tables are structured as phone-sized cards, format hints and collapsible sections were added for long answers, and truncated image responses, markdown block formatting, pipe-less tables, and exposed artifact placeholders were fixed.
- The phone feature line ran from stage one to stage three. Kakao map blocks render as native map cards, moved to a server embed with a MapKit fallback, with the 404-ing embed relocated to /api/embed (1.26.0); GPS location context and the web logo as the app icon followed (1.30.0); then camera capture and voice input (1.31.0).
- Input handling was reworked. PDF attachments now use a vision hybrid that injects the leading pages as images, bounded by a resolution ceiling, and an OpenAI-compatible client's system message is merged into the leading system prompt instead of being dropped. The chat composer folded its attachment buttons into a single + menu covering files and folder selection, and web search caps query length so a long prompt no longer returns a provider 414.
- On the final day, the model started being trusted over its configuration. Capability interpretation moved to a single source of truth with a boot-time tool-call probe, so swapping a model can no longer quietly disarm tools. Context length is measured at boot rather than pinned to a fixed 262K threshold, and thinking is gated on the capability a model declares instead of a misread stream. Reasoning effort became a three-step control in the composer, normalised per model, with a pass-through hint so a LiteLLM gateway stops rejecting it. Answer verification arrived beside it: a judge model reads the reply once and surfaces what it would question. Structured answers degrade instead of failing with a 422 when json_schema is unsupported or a schema does not match, and external providers now receive the json_schema itself rather than a prompt describing it, which is what left fields missing. A repeat_penalty mapping bug that never sent the parameter was corrected to the vLLM name, and sampling-tuning wiring whose result nothing consumed was removed, settling classification as observation only.
- Defaults and boundaries behind failed runs were corrected: agent-task max_turns moved from 10 to 32, the per-user MCP tool exposure cap moved from 12 to 20 with budget as the real guard, and skills declaring triggers are now injected only on relevant turns. A least-privilege host:port form was added to the SSRF allowlist, API key bridge/chat scopes were hardened, the unrecorded MCP instance pid that left health checks unable to detect dead processes is now written, and a retention sweep reclaims the uploaded originals of agent tasks once they are N days past completion.
- Routing observability and the product surface were tidied. URL-only queries skip the LLM decision and use a domain hint, a gate-decision observability loop aggregates routing gates into a weekly report, and four agent-task workflow observability metrics reached the admin surface. Installation gained an update subcommand behind a two-stage installer CI gate, the brand mark was redrawn in SVG and the favicon, logo, and iOS/PWA icons replaced, and five unreferenced sources, six unused dependencies, and the agent-task GitHub integration (clone→PR) were removed while a 594-line external-provider guard was split down to 353. The direct paths that bypassed the gateway went with them: the anthropic direct adapter and ollama-local were removed, the local agent browser (D3) was retired after its implementation device disappeared, and the architecture diagrams moved their source under version control, were redrawn as flow-legible illustrations, and gained a new target-structure drawing.
证据来源
Evidence
OPENMAKE · MIT OPEN SOURCE
OpenMake