Repository navigation
Conversation
… model attribution The Home Agent capsule needs two things from the Runtime and nothing else. Workspace: GET/PUT /api/apps/home-agent/workspace behind the capsule's launch token. The document is an opaque, bounded JSON value (size and depth capped), revisioned with if_revision so a stale writer gets 409 and never overwrites, written as a principal-root protected object (ciphertext at rest, declared for recovery) and isolated per principal. Mirrors the Assistant workspace route. Model proxy: home-agent joins the capsules allowed to call the typed model contract (offers_list, runs_create, runs_events, runs_cancel). Runs are bound and audited to the calling capsule id taken from the launch token's executable actor, instead of the previous hardcoded "assistant". Tests: absent-get is read-only at revision 0; round trip and restart preserve the exact document; wrong capsule is 403 and principals stay isolated; stale and future revisions fail without mutation; malformed requests fail closed; the object is declared for recovery and stored as ciphertext; a home-agent run binds and audits to "home-agent". Co-authored-by: Cursor <cursoragent@cursor.com>
…ent Space
Home GUI owns the motion and the place, nothing else. The Shelf pill grows
into a composer face (FLIP in pixels — CSS cannot interpolate max-content →
fixed width), the Home surface breathes down and the Agent Space rises as a
stage the pager knows about. The room itself is the home-agent capsule in an
opaque-sandboxed frame, launched like the Wallet rail through launchHomeTarget.
The frame is reached only by postMessage with the sender pinned to the frame
window:
Home → capsule home-agent:open | home-agent:shelf-handover {on} | home-agent:close
capsule → Home home-agent:ready | home-agent:shelf-metrics {width,height,radius}
home-agent:close | home-agent:open-viewer
Home never reads the frame's DOM; the capsule never reaches Home's.
Co-authored-by: Cursor <cursoragent@cursor.com>
…model contract
The URUX agent harness — sessions, projects, transcript with thinking blocks
and progress, markdown and math, edit / delete / regenerate, follow-up queue,
attachments, dictation — lifted as the home-agent capsule with its visual
fidelity intact, and with everything the Runtime does not back removed.
Inference is the typed model contract or nothing. offers_list decides what
the model menu and Settings › Models show; a turn is runs_create with
elastos.model.input.text/v1 {prompt}, polled by runs_events after_sequence,
stopped with runs_cancel. No offer, provider or model is named in source.
When no offer is advertised the harness says so; it never answers for the
model. The model chosen in the menu is the one the run uses and it persists.
State the Runtime backs lives in the capsule's workspace object (revisioned,
principal-root protected): sessions, projects, prompt, notes, context budget,
thinking visibility, chosen offer, live usage ledger. No browser storage.
Removed because nothing behind them was real on this Runtime: the mock
provider and its seeded replies, tool grants and the Inbox grant cards
(library.read / web.search / wallet.sign routes do not exist here), the
approval-mode chip, Chat/Build segment, Workbench rail (outputs, plan, diff,
browser, terminal), Studio, Usage, model catalog with Get / Mine / hardware
estimate, Settings › Overview / Machine / Tools / Runtime / Permissions,
temperature and reasoning-effort controls (the typed input has no sampling
knobs), the preview banner and every "preview"/"mock" line of copy.
Also fixes session menu state that was undeclared after the capsule split
(opening a chat's "…" menu threw a ReferenceError).
Co-authored-by: Cursor <cursoragent@cursor.com>
…and the seam node scripts/home-agent-shell-smoke.mjs, wired into `just verify`. Asserts in source that no offer is named, no browser storage or provider ping is used, no removed module or absent route is imported or called, no mock reply path exists, the workspace client reads before it writes and reloads on 409, the gateway route is principal-root protected and capsule-bound, index.html carries no theatre surface or preview copy, Settings offers only what the Runtime backs, and Home is reached by message only. Exercises the pure model-contract module (offer eligibility, transcript prompt, run body, after_sequence page reduction and its failure modes) directly. Co-authored-by: Cursor <cursoragent@cursor.com>
Bind owner and enabled-guest Create/Recover intents, initial Profile consent and terminal replay to the existing passkey and recovery authority. Verification on the final composite worktree, independently run by the parent: auth gateway 70 tests PASS; full-recovery 15 tests PASS; strict server/identity Clippy for lib/tests with Rust 1.91.0 and RUSTFLAGS=-D warnings PASS. git diff --cached --check PASS. These receipts are not an isolated-index build claim. Installed onboarding proof remains open.
Bind protected writes to exact absent/revision preconditions under the existing mutation lock. Keep Documents and GBA consumers with these primitives so intermediate builds retain all uses. Final-composite source evidence: node scripts/documents-save-conflict-smoke.mjs (13 PASS); node scripts/documents-window-close-handshake.test.mjs (9 PASS); node scripts/gba-save-conflict-smoke.mjs (18 PASS). Parent independently verified conditional storage (3), storage route (1), GBA routes (8) and real-Brave Documents/GBA fixtures. Index-only JavaScript syntax and git diff --cached --check PASS. These are not isolated-index runtime test claims. Two-file Documents crash recovery and installed acceptance remain open.
Declare and validate single, multiple and hybrid window policies in capsule metadata. Carry the policy through discovery, catalog and Home launch; content capsules use their selected viewer policy. Update every manifest constructor with the contract. Final-composite evidence: node scripts/home-shell-regression-smoke.mjs PASS (all 41 roles, single/hybrid windows and restore); parent window-policy route and strict metadata checks PASS. git diff --cached --check PASS. These receipts do not claim an isolated-index runtime build. Installed window acceptance remains open.
This was referenced Sep 25, 2026
Contributor
Author
This was referenced Oct 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This checkpoint combines the published website/recovery work with the later model and Home integration, Sash's Assistant UI, and Irzhy's protected-content foundation. It continues integration review after PR58 and preserves the original contributor histories.
The candidate provides one Assistant, protected preservation of legacy workspaces and drafts, local model preparation/use/retention controls, and the recorded recovery and Runtime lifecycle repairs. Existing Mac checks cover real Qwen reply/save/reload and owned shutdown/restart. Earlier recovery checks cover Mac and Linux on their named artifacts.
The public website and Home now run
25966622, tree419bdba6. The Linux build repair reconciles the Object provider dependency lock and makes setup builds use--locked; application source retains the reviewed06bf4e0fbehavior. All 25 required Linux manifests passed locked offline checks. Installed integrity, 573 artifact comparisons, running Runtime parity and five public HTTPS route checks passed. Anders confirmed existing-account sign-in and saved work. The temporary stage and deployment rollback are removed.Review these areas:
The current review head is
093b51ca3e12bf2e10abf3f35bb166bfe617a9e7; its final commit updates documentation only. Mac Homes retain tested code3c2f9a80. Main andupstream/0.7.1-devremain unchanged. The integration history protects both former website heads, and the redundant website branch and checkout are retired.The source gate passed whitespace, Home/public-copy entropy and Rust formatting checks. The reports passed link, table, evidence-scope and privacy checks. Their audit references retain exact source and installed boundaries.
Next implementation is exact Marketplace-to-Assistant CID/offer/draft handoff and safe removal, followed by cold Content/Carrier delivery, with one owner and independent reviewer. Full J1-J5 acceptance remains open, including Linux model qualification, Browser qualification, ordinary update/interruption and the final protected-video journey. Public startup still reports an unavailable configured Browser Engine and an unconfigured inactive custody provider. Signed three-platform installers follow source freeze and acceptance.
PR60's foundation (
617796a9) is included with original history throughdd21d8bd; agree its open PR disposition with Irzhy. PR59 then ready draft PR62 work retain their existing heads, bases and dependency order. This draft is ready for source review; release merge and tagging retain their acceptance gates.Part of #93.