01
What changed
From August 24 to 30, GitHub main added 81 commits and three releases: 1.33.0, 1.33.1, and 1.34.0. After the previous week's feature run, the work moved toward making agent work recoverable and legible: local tasks can be resumed, inspected, and shared as read-only work; a shared artifact viewer keeps published output on an isolated origin; and read-only tools can run in parallel within one turn. Later in the week tool failure gained a denominator, and a circuit that cuts off repeatedly failing external tools was put in place with the gate off by default. The same pass tightened the extension and MCP boundaries, removed mock-only administrator surfaces, stopped expired sessions from polling forever, and moved task workspaces and logs out of ephemeral /tmp onto a persistent path.
- Agent work gained continuity. openmake-code can list tasks, resume local work, and show a task's result, progress log, and diff again. Queued tasks no longer become permanent orphans after a restart, and resume no longer leaves an old failure reason on a successful task. Judging was reworked alongside it: a numbered procedure written into the goal is planted as the initial plan, removing the plan-protocol error; the judge now receives the submitted artifact so the shadow sample is not contaminated; and the shadow was widened to record a verdict for completions that carry artifacts. The goal-judge reason is persisted, and evidence views omit control-only terminate and plan steps.
- Sharing became an explicit read-only path across the server, web, and CLI. A shared task can expose its output through an isolated-origin viewer, while the CLI and web can inspect the same task without turning the shared surface into another execution channel.
- The execution loop became more observable and efficient: read-only tool calls in one turn now run in parallel across chat, Agent Tasks, and sub-agents; local-bridge writes attach diagnostics-first tsc or py_compile results; and sub-agent activity plus shadow adoption metrics record whether delegation was actually used. Tool observability gained a denominator. Beside the top-10 error-count view sits an audit-log-backed tool health table with calls, failure rate, failure category, and p50, covering chat and Agent Tasks together - which is what separates a tool that failed 7 times in 673 calls from one that failed 5 times in 6. Repeatedly failing external tools can be dropped from exposure and refused at execution by a circuit breaker, off by default, and calling a tool name that does not exist now comes back with correction candidates.
- Extensions and MCP moved from drafts toward controlled installation. External skills and plugins are adapted to OpenMake in phases, plugin bundles publish into the local gallery instead of GitHub, and draft skills can be approved or rejected as groups. Catalog detection and installation were merged into one function that accepts the upstream plugin.json shape as-is, and a SKILL.md reached through a git symlink is excluded from both detection and install. MCP servers can be disabled without deleting them, remote MCP login uses Authorization Code + PKCE with dynamic registration, and env placeholders inherited from an extension are filled in and stored as encrypted secrets. The client moved to @modelcontextprotocol/client v2 (Phase 1, legacy negotiation pinned). Global registry ownership, automatic draft-server connection, connector errors, and the stale searxng bridge reference were corrected along the way.
- The web surface became less misleading. Four mode auto-trigger toggles that duplicated behavior were removed, administrator routes now have role guards and no longer fall back to fake data, the connector table keeps its columns intact, and an expired session returns the store to guest state so approval-badge polling stops instead of retrying a dead token forever.
- Small defects around the edges were handled together. Structured JSON parsing and long-text paths were hardened, and slash-invoked skills now keep the user's language and avoid leaking into pre-search or URL analysis. A two-layer defect that kept assigned skills from being injected was closed by creating and backfilling manifests alongside them, explicit assignment now works regardless of category, injection dedupe moved into SQL, and latest-version selection moved from a lexicographic MAX to a semver sort key. Skill usage events are recorded in skill_audit_log and read back through a summary API. A web_search call with no language specified now detects it from the query, restoring the Naver and Daum providers for Korean, and the rate limiter shares counters correctly behind a proxy so unrelated 429s stop.
- Early on the first day, the previous week's structured-output work was finished - the schema is emitted in OpenAI strict form and output that hits the length ceiling retries at a smaller size - and 1.33.0 and 1.33.1 were cut from it. On the last day 1.34.0 shipped, followed by a full recovery of the commits from a lost branch. Ports now resolve from .env through a single source instead of the invoking shell, so the web no longer falls back to port 3000 or bakes the wrong WebSocket address into the build; MCP supports multiple named instances per template restored at boot, with renaming and registration deletion from the connector list. The task result view became readable through artifacts, outcome, and preview, deliverables are persisted to the artifact gallery too, and a goal that asks for html gets html rather than markdown. The same recovery fixed the first task after a restart running with zero user MCP tools, and a token quota reported in requests. A second operations pass moved task workspaces off a /tmp path that vanished on reboot, cut production high-severity vulnerabilities from 13 to 2, raised the keep-alive timeout above Node's 5-second default that had been breaking badge polling, and made deployment sync the Caddyfile to its operational path only after caddy validate passes.
02
How this week was reconstructed
No matching local Claude Code project transcript was recovered for this period. This entry therefore describes only what the Git history can prove.
We audited the available Claude Code main sessions, their proven child lineages, and the repository history. Session notes explain intent and investigation; Git remains the authority for code that actually landed.
03
Team identity and project roles
OpenMake Team is the community identity; openmake_llm is the software project; OpenMake is the product name. Non-developer maker riskpw leads openmake_llm through vibe coding, and professional developer rocky supports its development.
证据来源
OpenMake