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_export through the studio's command surface — writes .1design/artifacts/exports/<id>/receipt.json beside 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_CHANGED rather 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.