SHIPPED · v1.4.0
A first-run guide, exports that carry a receipt, and an auditable MCP log
Added
- A guide, not just an agent picker. First run is now a six-step walkthrough — Welcome, Agent, The loop, The brief, Steering, Ship — and it stays available as the manual: Home's "How it works" and Settings → General → Guide reopen it any time, with nothing written on replay.
- The loop lays out what a turn is: brief → project folder → the agent plans, writes files and screenshots its own work → the preview follows → the turn ends with a snapshot and the gate.
- The brief teaches brief-writing as six weak-versus-strong pairs — name the thing and its reader, bring real content, two or three adjectives not ten, say what would make it a failure, show rather than only tell, leave the parts you don't care about.
- Steering covers the moves after a first draft: ⌥-click element picks, comment pins, drawing on a screenshot, tweaks that apply without a turn, variants, design systems — and why one change per message beats six.
- Detection still runs live on the Agent step, and the pick is now remembered — Home's composer starts from it. Skippable from step one; every step is reachable from the rail.
- Exports carry a receipt. A managed export — a social placement set, or
artifact_exportthrough the studio's command surface — writes.1design/artifacts/exports/<id>/receipt.jsonbeside the bytes: the revision they came from, that revision's check verdict and whether the source has moved since. - A receipt naming a revision the tree has drifted past is refused
SOURCE_CHANGEDrather than stamped, and the source is re-walked after the capture — a turn rewriting the tree mid-export refuses too. - Receipt ids are content-addressed: re-exporting identical bytes updates one row instead of piling up near-duplicates, and the artifact drawer's export list reads them.
Improved
- The MCP activity feed is a real log. Settings → MCP access → Activity was a flat fetch of recent rows; it now pages the retained log with host-side filters (connection, project, outcome — including an Errors bucket), Load older, Refresh, and Clear — the wipe itself is recorded, so the feed is never silently empty.
- Rows record what an audit needs: the call kind, the client label, the artifact, the policy decision taken before the outcome, a stable error code, the request and result sizes, and the duration. Calls that never authenticated write a row too, and job transitions an MCP call started are recorded — "what did that client do" no longer has silent gaps.
- The log keeps 30 days or 10,000 calls, whichever comes first.
- Export diagnostics writes a redacted bundle to the exports folder — the same activity rows plus connection and job state — sized for attaching to a bug report.
- 3D scenes stay interactive under load. Modifier stacks evaluate on a worker pool instead of the viewport thread; clicking an object picks through a per-geometry BVH instead of raycasting every triangle in the scene; and an evaluated-geometry cache means selecting a second object no longer re-runs every modifier stack in the document.
- Adaptive render quality. The viewport steps render resolution down to hold the frame budget and back up when there is headroom — with a dead zone between the two thresholds so a scene sitting at budget does not oscillate — and a GL context that keeps dying stops restoring forever and says so.
- Imported GLBs keep their materials. Texture transforms (KHR_texture_transform), alpha modes (opaque / mask / blend) and clearcoat/transmission factors now survive import, material slots key on a deterministic glTF order, and lights and colors round-trip without shifting hue.
Fixed
- Project trash survives a crash. Trash and restore now journal each move and settle half-finished receipts at launch — a crash mid-move rolls forward or back, so the library never lists a project whose folder already moved (or loses one that has not). Trashing is refused while a run owns the workspace or a job is live, and restore names the exact receipt — trash → restore → trash again restores the right move.
Privacy
- Trashing a project cuts external access without losing the grant. Its MCP grants suspend — the project leaves each connection's scope but stays on record — so restoring the folder can't silently re-enable access; re-granting is an explicit edit in Settings → MCP access.
- The activity log and diagnostics bundle carry no secrets. Rows record tool names, decisions, error codes and byte sizes — never arguments, prompts, briefs or credentials — and the diagnostics export strips credential fields from the connection rows it includes.