Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
339 commits
Select commit Hold shift + click to select a range
c95938e
fix(browser): bind signaling continuations to their viewer peers
andersalm Sep 8, 2026
f367aeb
docs(browser): record reviewed display repair and next installed proof
andersalm Sep 8, 2026
31426a2
test(model): prove cold loopback preparation and reuse
andersalm Sep 8, 2026
4ed67aa
fix(browser): sample current viewer metrics for bounded recovery proof
andersalm Sep 8, 2026
4a89779
docs(browser): record fresh media recovery and remaining measurement …
andersalm Sep 8, 2026
93c2f1a
feat(model): record principal-scoped Keep intent
andersalm Sep 8, 2026
a24c549
test(browser): capture bounded reload signaling stages
andersalm Sep 8, 2026
b7ec14f
fix(browser): wait for legacy viewer registration release
andersalm Sep 8, 2026
3f47bfc
fix(browser): require the Mac TURN helper for engine readiness
andersalm Sep 8, 2026
a657428
docs(browser): record accepted reload and diagnosed registration race
andersalm Sep 8, 2026
1aa3c7b
feat(model): derive catalog readiness from admitted offers
andersalm Sep 8, 2026
a80b230
fix(browser): acknowledge page clicks before inserting text
andersalm Sep 8, 2026
229af30
docs(browser): preserve intermittent recovery and input failures
andersalm Sep 8, 2026
e995053
fix(browser): negotiate both display channels in the same retry cycle
andersalm Sep 8, 2026
57192ff
test(browser): record bounded click and text acknowledgments
andersalm Sep 8, 2026
6f5d48a
fix(browser): read retained diagnostics without running audio commands
andersalm Sep 8, 2026
b0c4c2f
feat(model): add Marketplace and System model controls
andersalm Sep 8, 2026
1b91c2f
test(browser): observe input from both supported origins
andersalm Sep 8, 2026
d3d2bdf
docs(browser): record installed readiness and reload checkpoint
andersalm Sep 8, 2026
97e1029
test(browser): retain bounded input evidence when Origin is omitted
andersalm Sep 8, 2026
648e86d
fix(model): preserve exact content selection in composers
andersalm Sep 8, 2026
088cbf1
test(browser): expire recovery probes at their monotonic deadline
andersalm Sep 8, 2026
fefccc1
docs(browser): accept local journey and bounded transport recovery
andersalm Sep 8, 2026
77983ef
fix(browser): balance VZ ICE references across pipeline restart
andersalm Sep 8, 2026
8c662b8
docs(browser): record reproduced ICE lifetime defect and repair
andersalm Sep 8, 2026
8772f5f
fix(model): confirm engine closure before releasing ownership
andersalm Sep 8, 2026
cbb1e09
fix(browser): install GStreamer Python bindings before building guest…
andersalm Sep 8, 2026
e0179f4
docs(browser): record startup regression and verified binding repair
andersalm Sep 8, 2026
eb55c71
feat(model): retire admitted offers after confirmed close
andersalm Sep 8, 2026
30bd371
fix(model): retain inventory ownership through activation
andersalm Sep 8, 2026
66d9b17
docs(browser): drive delivery in parallel within the 24-hour deadline
andersalm Sep 8, 2026
1e31995
feat(hello): add initial portable Rust capsule example
irzhywau Sep 2, 2026
e3a8c4e
feat(server,capsules): carrier peer seeding, provider hosting, real-f…
irzhywau Sep 7, 2026
5665092
feat(deploy,scripts,ci): custody-host harness, installed e2e proof dr…
irzhywau Sep 7, 2026
617796a
docs(protected-content): record installed e2e proof surface and align…
irzhywau Sep 5, 2026
cb78ccb
fix(services): use verified People contacts for service requests
andersalm Sep 8, 2026
a1260f1
test(browser): measure decoded audio through the installed journey
andersalm Sep 8, 2026
c02f3b5
docs(browser): record startup audio and service evidence
andersalm Sep 8, 2026
4dd0a21
feat(browser): inspect the acquired Engine document through Runtime a…
andersalm Sep 8, 2026
ed0da57
docs(browser): record installed operator and media recovery proof
andersalm Sep 8, 2026
faa1e58
fix(services): acknowledge Exit activation and order access decisions
andersalm Sep 8, 2026
788e541
docs(browser): accept inspection proof and advance parallel delivery
andersalm Sep 8, 2026
2b64097
fix(setup): start fresh Linux Home without a migration rollback
andersalm Sep 8, 2026
6f33325
docs(browser): record installed Exit regression and remote Home readi…
andersalm Sep 8, 2026
21028a4
fix(browser): authorize remote Exit streams on Runtime identity
andersalm Sep 8, 2026
7879f43
feat(browser): acquire verified local Engine image dependencies
andersalm Sep 8, 2026
e825750
docs(browser): record peer contact and installed Carrier checkpoint
andersalm Sep 8, 2026
4046df7
test(browser): require the selected Exit in controlled journeys
andersalm Sep 8, 2026
6c8b0d9
fix(services): use the configured Runtime Carrier for access requests
andersalm Sep 8, 2026
5c9c5c4
fix(inbox): expose Services access approval and denial
andersalm Sep 8, 2026
e61603f
fix(browser): stream verified Engine image packages to disk
andersalm Sep 8, 2026
54df379
feat(browser): probe approved peer Engines through Runtime
andersalm Sep 8, 2026
9e6693d
feat(browser): admit bounded operator actions on native page references
andersalm Sep 8, 2026
853f679
fix(browser): retain remote Exit admission failure diagnostics
andersalm Sep 8, 2026
f0e8757
test(browser): select remote Exit through Browser settings
andersalm Sep 8, 2026
92f04e0
fix(services): receive access requests in the Runtime background worker
andersalm Sep 8, 2026
7f1e11f
docs(browser): record installed approval and next integration checkpoint
andersalm Sep 8, 2026
0244cc0
fix(browser): admit normal page connections within approved Exit limits
andersalm Sep 8, 2026
8360cf4
docs(browser): record remote Exit use and remaining qualification gates
andersalm Sep 8, 2026
137a95a
test(browser): exercise operator handoff and exact empty Runtime cleanup
andersalm Sep 8, 2026
564f898
test(browser): accept native nullable values for an observed empty field
andersalm Sep 8, 2026
cb03a71
fix(browser): validate operator clicks against the live viewport
andersalm Sep 8, 2026
649132f
test(browser): retain the first failed session binding predicate
andersalm Sep 8, 2026
47f928f
docs(browser): record installed native operator journey and recovery …
andersalm Sep 8, 2026
35bf30e
test(browser): reuse signed Home authority for focused journeys
andersalm Sep 8, 2026
39ef866
docs(browser): record operator recovery passes and remaining audio fa…
andersalm Sep 8, 2026
c5630e4
test(browser): trace exact receiver audio counters beside decoded PCM
andersalm Sep 8, 2026
855624d
fix(browser): clear completed navigation progress
andersalm Sep 8, 2026
46cc1d4
docs(browser): accept bounded media recovery and operator journeys
andersalm Sep 8, 2026
64cebf1
test(browser): retain typed evidence for plain open conflicts
andersalm Sep 8, 2026
a91383e
fix(model): bound streaming deltas and confirm engine cleanup
andersalm Sep 8, 2026
92a04ed
feat(model): reconcile preparation capacity and exact retirement
andersalm Sep 8, 2026
f8a74ab
docs(model): record cold proof and installed acceptance boundary
andersalm Sep 8, 2026
417cda9
fix(browser): publish restored page after its address is ready
andersalm Sep 8, 2026
16299f1
test(browser): add bounded installed lifecycle qualification
andersalm Sep 8, 2026
94ed0dc
merge: reconcile PR58 setup guard
andersalm Sep 8, 2026
35b41c6
test(browser): verify sustained interaction and frame continuity
andersalm Sep 8, 2026
8e0d2ce
docs(browser): record restored-page proof and qualification gaps
andersalm Sep 8, 2026
6896fee
test(browser): observe bounded audio RTP queue behavior
andersalm Sep 8, 2026
caa5d90
feat(browser): route remote Engine sessions through Runtime authority
andersalm Sep 8, 2026
8228b74
docs(browser): record remote integration and bounded audio evidence
andersalm Sep 8, 2026
70dccb3
fix(browser): identify failed remote Engine operations
andersalm Sep 8, 2026
1a47ddc
test(browser): bind remote journeys to Engine and window identity
andersalm Sep 8, 2026
30fa0a6
test(browser): allow Runtime inventory observation to settle
andersalm Sep 8, 2026
2cdc953
feat(browser): approve scoped operator inspection and reference fill
andersalm Sep 8, 2026
a3360c1
docs(browser): reconcile current installed and qualification evidence
andersalm Sep 8, 2026
8feb264
test(browser): focus the owned Home window before cleanup
andersalm Sep 8, 2026
74d5b27
feat(browser): adapt scoped reference fill for Playwright clients
andersalm Sep 8, 2026
c17776f
test(browser): bind qualification to selected services and actual VM …
andersalm Sep 8, 2026
946b994
fix(services): name Engine authority in Inbox approval requests
andersalm Sep 8, 2026
690170b
fix(browser): identify remote execution and owner retirement stages
andersalm Sep 8, 2026
b6b5bd2
test(browser): observe committed profile storage across sessions
andersalm Sep 8, 2026
06cfe54
docs(browser): record remote navigation failure and remaining deliver…
andersalm Sep 8, 2026
05ee824
fix(model): retain bounded preparation failure diagnostics
andersalm Sep 8, 2026
e9b9baf
docs: reconcile Builder Home and model completion plan
andersalm Sep 9, 2026
6ceb608
test(collaboration): measure signed idle-state validation cost
andersalm Sep 9, 2026
1c393a9
docs(browser): accept installed local and framework milestones
andersalm Sep 9, 2026
a347180
fix(browser): forward remote Exit EOF independently
andersalm Sep 9, 2026
b8c78d7
test(browser): qualify paired profile storage journeys
andersalm Sep 9, 2026
de0a299
fix(auth): renew sessions and audit in one state update
andersalm Sep 9, 2026
52238f2
fix(browser): preserve existing profiles after mount failure
andersalm Sep 9, 2026
6ff7045
test(browser): verify selected file bytes in the Engine page
andersalm Sep 9, 2026
2217b27
docs(browser): record remote browsing and remaining recovery gate
andersalm Sep 9, 2026
5019635
docs(browser): consolidate current state and preserve reset handover
andersalm Sep 9, 2026
6972e16
docs: hand over Home and model diagnostic checkpoint
andersalm Sep 9, 2026
cdcb790
feat(home): add storefront and canonical Home entry
andersalm Sep 10, 2026
c7bc4a8
fix(installer): verify signed bootstrap with stock macOS tools
andersalm Sep 10, 2026
503d270
docs: define release execution and evidence ownership
andersalm Sep 10, 2026
92d1a31
fix(linux): accept an empty principal-root upgrade receipt
andersalm Sep 10, 2026
e347889
fix(installer): use platform data paths and preserve process ownership
andersalm Sep 10, 2026
c97e1c6
feat(site): display dated hosted deployment evidence
andersalm Sep 10, 2026
3e27cac
docs: record reviewed C1 source and scheduled monitor proof
andersalm Sep 10, 2026
a0743a1
fix(update): bind releases to exact signed head bytes
andersalm Sep 10, 2026
52fc231
fix(update): select release artifacts by operating system
andersalm Sep 10, 2026
78e586f
test(auth): prove guarded upgrade refuses object migration
andersalm Sep 10, 2026
6ea0ced
test(home): preserve credentials and follow current sign-in controls
andersalm Sep 10, 2026
5f9b6ab
docs: record seed UI proof and first public delivery boundary
andersalm Sep 10, 2026
cb869f0
test(home): open System through the ElastOS menu
andersalm Sep 10, 2026
cd7376e
refactor(site): focus the storefront on visitors and Home
andersalm Sep 10, 2026
9d9297a
docs(website): restore device installation with accurate platform gui…
andersalm Sep 10, 2026
50e82bc
fix(publisher): keep component manifests distinct by OS and CPU
andersalm Sep 10, 2026
344f388
fix(publisher): separate native and guest build targets
andersalm Sep 10, 2026
572f449
fix(publisher): verify complete staged app artifacts before signing
andersalm Sep 10, 2026
cb36624
fix(publisher): reject unsafe low-level dry-run mode
andersalm Sep 10, 2026
120cf9e
fix(publisher): package app archives with portable deterministic tools
andersalm Sep 10, 2026
4119952
refactor(publisher): separate asset preparation from uploads
andersalm Sep 10, 2026
9c271a6
Simplify installation with automatic Home setup
andersalm Sep 10, 2026
1950e03
Prepare and verify native release platform inputs
andersalm Sep 10, 2026
7905ce1
Lock native Browser helper release dependencies
andersalm Sep 10, 2026
462b29a
Package Home CLI renderer with its native capsule
andersalm Sep 10, 2026
cdb1340
Fix native provider metadata preparation contracts
andersalm Sep 10, 2026
97079b5
Use the native ioctl request type for Home terminal setup
andersalm Sep 10, 2026
7493375
Fix the Browser supervisor ioctl type on musl
andersalm Sep 10, 2026
5094c6c
Align video preparation with Runtime media contracts
andersalm Sep 10, 2026
6d9e76a
Deliver managed media tools through the one-command installer
andersalm Sep 10, 2026
8587dff
Keep custody atomic provisioning compatible with musl
andersalm Sep 10, 2026
95fc24b
Open browser Home after one-command installation
andersalm Sep 10, 2026
b726db9
Import verified native inputs into the release publisher
andersalm Sep 10, 2026
10b0c3e
Refine storefront layout and simplify 0.7.1 installation copy
andersalm Sep 10, 2026
7e4cefb
Explain ElastOS uses, first steps and preview availability
andersalm Sep 10, 2026
3a1c5b0
Use plain personal-computing language in storefront copy
andersalm Sep 10, 2026
8187066
Verify Home entry after desktop setup projection is ready
andersalm Sep 10, 2026
892a144
Harden passkey registration and identity persistence
andersalm Sep 10, 2026
0147f5b
Complete durable account creation and Profile recovery setup
andersalm Sep 10, 2026
d790a48
Align first-use instructions with Profile setup
andersalm Sep 10, 2026
ecf1339
Verify downloaded Profile recovery in installed Home smoke
andersalm Sep 10, 2026
4e62b6d
fix(carrier): close owned endpoints after installer transfers
andersalm Sep 10, 2026
49a62db
test(home): export recovery from the ready foreground window
andersalm Sep 10, 2026
e693881
docs: record installed preview proof and recovery follow-ups
andersalm Sep 10, 2026
f8824ee
fix(setup): reuse verified media tool archives
andersalm Sep 10, 2026
67572db
feat(home): choose recovery kit before passkey setup
andersalm Sep 10, 2026
a8b8f54
fix(gateway): close active connections before shutdown cleanup
andersalm Sep 10, 2026
3f789db
docs: hand over preview work and prioritize AI and Browser
andersalm Sep 10, 2026
bfe40ea
docs: reconcile resume records after safe branch cleanup
andersalm Sep 11, 2026
a45164c
fix(auth): resume completed recovery after a fresh sign-in
andersalm Sep 11, 2026
f21d285
fix(runtime): await gateway-owned managed process groups
andersalm Sep 11, 2026
59047fd
docs: close automated checkpoint and record human passkey gate
andersalm Sep 11, 2026
e31048b
fix(auth): isolate Home session cookies by destination
andersalm Sep 11, 2026
1e32057
fix(system): show recovered Profile name and space recovery controls
andersalm Sep 11, 2026
00003b6
docs: record restored Home user-review repairs and proof
andersalm Sep 11, 2026
0962e7e
feat(model): integrate verified bootstrap into delivery branch
andersalm Sep 11, 2026
b318bfd
merge: preserve model integration and current Home recovery
andersalm Sep 11, 2026
37c82d4
merge: record already-integrated Sash shelf history
andersalm Sep 11, 2026
dd21d8b
Merge protected-content foundation with current model and lifecycle o…
andersalm Sep 11, 2026
2b95b38
Keep model preparation alive during status reads and scope caller rev…
andersalm Sep 11, 2026
ab993a9
Read existing identity without persistence during access checks
andersalm Sep 11, 2026
796fb41
fix(models): observe readiness after content admission
andersalm Sep 11, 2026
f72810f
fix(models): authorize catalog reads for model consumers
andersalm Sep 11, 2026
fbf1a4b
fix(models): prepare local verifier for admitted model startup
andersalm Sep 11, 2026
4e00a30
docs(model): record installed Mac Qwen lifecycle and reuse proof
andersalm Sep 11, 2026
8f28b6e
fix(assistant): keep refreshed model menus truthful and anchored
andersalm Sep 11, 2026
1d12daf
fix(source-home): replace stale capsule archive identity after parity…
andersalm Sep 11, 2026
8aac3f7
docs(integration): recognize existing URUX adaptations and correct ne…
andersalm Sep 11, 2026
fa297cb
Unify Assistant with Sash UI and preserve workspace and run ownership
andersalm Sep 11, 2026
67a2acc
docs: record installed Assistant and Qwen checkpoint proof
andersalm Sep 11, 2026
822c4e3
fix(setup): reject stale archive metadata for source capsules
andersalm Sep 11, 2026
84825f9
docs: record System and Marketplace human launch repair
andersalm Sep 11, 2026
d3d757c
fix(assistant): show distinct activity and reasoning in disclosures
andersalm Sep 11, 2026
3c2f9a8
fix(models): retain pending content and use capsule marketplace prese…
andersalm Sep 11, 2026
06bf4e0
docs: record installed model and Assistant feedback checkpoint
andersalm Sep 11, 2026
1bb081f
docs: publish integration review and retire website checkpoint
andersalm Sep 11, 2026
2596662
fix(build): lock the integrated provider dependency graph
andersalm Sep 11, 2026
093b51c
docs: record September work and accepted public preview
andersalm Sep 11, 2026
5474317
merge: bring the Browser maturity line into remote services
andersalm Sep 11, 2026
bf846cd
fix(browser): start viewer status and display attachment together on …
andersalm Sep 11, 2026
ca87f02
feat(services): authorize remote model runs on the owning Runtime
andersalm Sep 11, 2026
d361c26
feat(model): route granted remote offers and runs through Carrier
andersalm Sep 11, 2026
daddba7
merge: take the Browser reload scheduling repair from the donor
andersalm Sep 11, 2026
3389d76
feat(services): show the AI model service beside Engine and Exit
andersalm Sep 11, 2026
09b3128
feat(assistant): name the contact behind a remote model offer
andersalm Sep 11, 2026
d53edf7
test(model): prove the remote model service between two Runtimes over…
andersalm Sep 11, 2026
d9ceb3d
fix(setup): drop the retention call the Browser merge left without a …
andersalm Sep 11, 2026
54eae4d
fix(services): route model decisions to the requester and name the re…
andersalm Sep 12, 2026
36f4d7f
fix(model): list granted remote offers on a Home without a local mode…
andersalm Sep 12, 2026
9bef09a
fix(model): route consumer calls by the granting Runtime's did:key
andersalm Sep 12, 2026
a9026bf
fix(model): settle remote run records from the real provider contract…
andersalm Sep 12, 2026
3f26235
fix(model): settle routed runs after the grant expires or is denied
andersalm Sep 12, 2026
5f31a93
fix(services): cancel a denied grant's runs whether or not the denial…
andersalm Sep 12, 2026
ac66c40
fix(model): read consumer run routes written before tickets were stored
andersalm Sep 12, 2026
91619eb
fix(model): bound open run records by age on both indexes
andersalm Sep 12, 2026
66a2367
fix(services): sweep a denied grant's runs only after the owner's den…
andersalm Sep 12, 2026
08fd81f
fix(model): hold a run slot atomically and recognise retried requests
andersalm Sep 12, 2026
98b40a2
feat(model): answer settlement reads from the owner's record after th…
andersalm Sep 12, 2026
6dd1790
fix(services): name an expired grant on the Others card and let the u…
andersalm Sep 12, 2026
5d75d86
fix(services): settle retained model runs without a second dispatch
andersalm Sep 12, 2026
50d835e
fix(services): let the owner revoke an approved model grant from Inbox
andersalm Sep 12, 2026
4949ca6
fix(assistant): show a failed model run after save and reload
andersalm Sep 12, 2026
8444ff5
fix(model): return Busy when a live offer is at capacity
andersalm Sep 12, 2026
4ab9912
fix(browser): give viewer-reload a separate 10s baseline budget
andersalm Sep 12, 2026
57c102c
docs: reconcile remote services evidence and remaining acceptance
andersalm Sep 13, 2026
9283711
fix(browser): keep transfer and ingress errors in the open toast
andersalm Sep 13, 2026
adc5dd2
docs: record ordinary A/B/A open 110 and the remaining reload gate
andersalm Sep 13, 2026
f4a04cf
fix(browser): keep restore page_status errors and visible recovery input
andersalm Sep 15, 2026
6aa7c5a
fix(browser): sample audio ICE-pair bytes on the inbound RTP clock
andersalm Sep 15, 2026
2fef812
fix(publisher): promote the release publication head-last from verifi…
andersalm Sep 16, 2026
aac9f26
test(installer): prove artifact rejection before changes and a clean …
andersalm Sep 16, 2026
4009015
fix(installer): probe the staged executable before replacing the binary
andersalm Sep 16, 2026
49f0ac8
feat(model): install a two-entry catalogue and copy it into managed Home
andersalm Sep 17, 2026
7d04948
fix(installer): stage the signed catalogue before replacing the binary
andersalm Sep 17, 2026
4f87749
fix(publisher): reuse the host Cargo cache for native Mac preparation
andersalm Sep 17, 2026
7aaded6
fix(browser): keep paused remote-display, restore, and engine work on…
andersalm Sep 17, 2026
7690aab
docs: record D1 model evidence and keep Browser acceptance open
andersalm Sep 17, 2026
1f9797b
fix(publisher): discover health and bootstrap from distinct source URLs
andersalm Sep 17, 2026
e9d9874
chore: remove personal fixture labels and stale status prose
andersalm Sep 17, 2026
678f1de
fix(runtime): use the native KVM ioctl request type
andersalm Sep 17, 2026
1034197
fix(runtime): preserve atomic capsule admission on musl
andersalm Sep 17, 2026
0724479
fix(ipfs): generate multipart boundaries across Unix targets
andersalm Sep 17, 2026
fdf529a
feat(model): compact model detail copy from one phase table
Sep 17, 2026
e8d35b6
feat(marketplace): lead the model detail with identity and one forwar…
Sep 17, 2026
98ca3d6
fix(home): handshake Assistant ready after a capsule document reload
andersalm Sep 17, 2026
bced8c1
fix(ipfs): match directory add flags and wait briefly for a local miss
andersalm Sep 17, 2026
336749e
fix(content): restore a complete local object as a named Carrier holder
andersalm Sep 17, 2026
20ac3f6
fix(setup): clear group-write on model-engine install parents
andersalm Sep 17, 2026
5894b2f
assistant: mode controls move to the sidebar and show only when backed
SashaMIT Sep 13, 2026
e77665c
library: theme the … menu and make the sidebar seam flush
SashaMIT Sep 13, 2026
26d0072
home-gui: dragging a window to the top edge no longer maximizes it
SashaMIT Sep 13, 2026
b038bdc
home-gui: restore the ink wordmark used on the light bar
SashaMIT Sep 13, 2026
ca4615f
fix(assistant): bind the saved Studio reopen to its session and intent
cursoragent Sep 17, 2026
0257ad3
fix(assistant): keep Studio reachable and follow every offers read
cursoragent Sep 17, 2026
8da670b
fix(assistant): save the composer draft as it is typed
cursoragent Sep 17, 2026
4b1a8a4
fix(runtime): keep private data roots off /capsule-data
andersalm Sep 17, 2026
9ffd25c
fix(runtime): require tokens for shell content writes
andersalm Sep 18, 2026
cbf6a58
fix(runtime): persist capability revoke across serve restart
andersalm Sep 18, 2026
71958e9
fix(runtime): write signing_key without following links
andersalm Sep 18, 2026
51bdcd1
fix(runtime): keep guest session bearers out of Home JSON
andersalm Sep 18, 2026
bd71cc2
fix(setup): install receipt-bound binaries and owner-only media tools
andersalm Sep 18, 2026
ec5f9a0
docs: record committed security slices through bd71cc2e
andersalm Sep 18, 2026
42e31e3
fix(setup): keep object-provider lock aligned with signing-key libc
andersalm Sep 18, 2026
a48ed2a
fix(release): admit two-platform stable publication
andersalm Sep 18, 2026
5435597
docs: record 0.7.1 public deploy and Mac SmolLM2 proof
andersalm Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
115 changes: 114 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,16 @@ jobs:
- name: product UI source proofs
run: |
node scripts/home-shell-regression-smoke.mjs
node scripts/home-agent-shell-smoke.mjs
node --test scripts/home-agent-cancellation.test.mjs
node scripts/people-discovery-smoke.mjs
- name: release artifact source proofs
run: |
python3 scripts/components-release-integrity-check.py --self-test
python3 scripts/publish-platform-artifacts-test.py
python3 scripts/release-platform-input-test.py
python3 scripts/prepare-release-platform-test.py
python3 scripts/media-tools-build-test.py
- name: Browser close handshake
run: node --test scripts/browser-window-close-handshake.test.mjs

Expand Down Expand Up @@ -166,6 +175,108 @@ jobs:
(cd "$capsule" && cargo test)
done

# Rehearses the ELACITY-2298 dKMS ceremony (offline custody composition +
# Carrier dial-proof preflight) against a fresh instance of the
# deploy/custody-host 3-node compose harness -- scripts/custody-harness-ci-smoke.sh
# owns all the logic (throwaway client identity, throwaway compose
# project, receipt assertions, full teardown); this job is thin glue over
# it. Gated to workflow_dispatch and PRs that actually touch the harness
# image, the proof driver, or the protected-content/carrier crates it
# exercises -- NOT every push, since the image build + 3-node bring-up
# add real wall time.
custody-harness-smoke:
name: custody-harness-smoke
runs-on: ubuntu-latest
timeout-minutes: 60
needs: source-gate
if: github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request'
# The top-level `permissions: contents: read` above zeroes every other
# scope for every job; dorny/paths-filter resolves a pull_request's
# changed files via the GitHub API (this job's checkout is fetch-depth 1,
# so there's no local base commit to diff against) and needs
# `pull-requests: read` to do that -- without this, the filter step
# (unconditional on pull_request) 403s and fails the job on every PR.
permissions:
contents: read
pull-requests: read
steps:
- uses: actions/checkout@v5
with:
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.ref || github.sha }}
- name: detect custody/carrier-relevant changes
id: filter
if: github.event_name == 'pull_request'
uses: dorny/paths-filter@v3
with:
filters: |
custody:
- 'deploy/custody-host/**'
- 'scripts/protected-content-installed-e2e-proof.sh'
- 'scripts/protected-content-installed-static-audit.py'
- 'scripts/custody-harness-ci-smoke.sh'
- 'capsules/custody-provider/**'
- 'capsules/availability-provider/**'
- 'capsules/ipfs-provider/**'
- 'elastos/crates/elastos-protected-content-*/**'
# Targeted, not the whole elastos-server crate (which would
# fire this 60-minute job on most PRs): exactly the modules
# this smoke actually exercises -- Carrier transport/dial,
# standalone provider hosting, and the custody
# composition/chain-config CLI the ceremony drives.
- 'elastos/crates/elastos-server/src/carrier.rs'
- 'elastos/crates/elastos-server/src/carrier_service.rs'
- 'elastos/crates/elastos-server/src/provider_host.rs'
- 'elastos/crates/elastos-server/src/run_cmd.rs'
- 'elastos/crates/elastos-server/src/server_infra.rs'
- 'elastos/crates/elastos-server/src/node_cmd.rs'
- 'elastos/crates/elastos-server/src/protected_content_config.rs'
- id: should-run
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ "${{ steps.filter.outputs.custody }}" = "true" ]; then
echo "run=true" >> "$GITHUB_OUTPUT"
else
echo "run=false" >> "$GITHUB_OUTPUT"
echo "no custody/carrier-relevant paths changed on this PR; skipping the smoke run" >> "$GITHUB_STEP_SUMMARY"
fi
- if: steps.should-run.outputs.run == 'true'
uses: dtolnay/rust-toolchain@1.91.0
# Builds the host `elastos` binary the smoke script itself invokes
# (identity show, node peer add, node status) -- same cache shape as
# the test-elastos/lint jobs above.
- if: steps.should-run.outputs.run == 'true'
uses: Swatinem/rust-cache@v2
with:
workspaces: elastos
prefix-key: ${{ runner.os }}-custody-smoke-bd
cache-directories: target-build
- if: steps.should-run.outputs.run == 'true'
uses: docker/setup-buildx-action@v3
# Pre-warms the custody-host image's BuildKit layer cache via the GHA
# cache backend, tagged/loaded exactly as deploy/custody-host/up.sh's
# own `docker compose up -d --build` expects it -- that later build
# then hits this same local layer cache instead of rebuilding cold.
- name: pre-build custody-host image (GHA layer cache)
if: steps.should-run.outputs.run == 'true'
run: |
docker buildx build \
-f deploy/custody-host/Dockerfile \
-t elastos-custody-host:latest \
--cache-from type=gha \
--cache-to type=gha,mode=max \
--load \
.
- name: custody harness smoke
if: steps.should-run.outputs.run == 'true'
run: scripts/custody-harness-ci-smoke.sh
- name: upload evidence receipt on failure
if: failure() && steps.should-run.outputs.run == 'true'
uses: actions/upload-artifact@v5
with:
name: custody-harness-smoke-evidence
path: /tmp/custody-harness-ci-smoke-evidence/
retention-days: 7
if-no-files-found: ignore

# The source-home jobs run only once the test phase is green, in parallel
# across the three architectures. They are the de-facto release builders:
# setup-source-home compiles the runtime, shell, home-cli and every provider
Expand Down Expand Up @@ -203,7 +314,7 @@ jobs:
- name: install host prerequisites
run: |
sudo apt-get update
sudo apt-get install -y coturn e2fsprogs ffmpeg
sudo apt-get install -y coturn e2fsprogs ffmpeg musl-tools nasm pkg-config
- name: source-home into isolated HOME
env:
ELASTOS_COLLABORATION_STARTUP_MODE: isolated
Expand All @@ -218,6 +329,7 @@ jobs:
export HOME="${SOURCE_HOME}"
export XDG_DATA_HOME="${SOURCE_HOME}/.local/share"
export PATH="${CARGO_HOME}/bin:${PATH}"
export SETUP_SOURCE_HOME_MEDIA_TOOLS_DIR="$(dirname "$(command -v ffmpeg)")"
scripts/setup-source-home.sh 2>&1 | tee "${RUNNER_TEMP}/source-home-logs/setup-source-home.log"
ELASTOS_DATA_DIR="${XDG_DATA_HOME}/elastos" \
scripts/installed-provider-verify.sh 2>&1 | tee "${RUNNER_TEMP}/source-home-logs/installed-provider-verify.log"
Expand Down Expand Up @@ -315,6 +427,7 @@ jobs:
export RUSTUP_HOME="${RUSTUP_HOME:-${USER_HOME}/.rustup}"
export HOME="${MAC_TEST_HOME}"
export PATH="${CARGO_HOME}/bin:/opt/homebrew/bin:/opt/homebrew/opt/e2fsprogs/sbin:${PATH}"
export SETUP_SOURCE_HOME_MEDIA_TOOLS_DIR="$(dirname "$(command -v ffmpeg)")"
scripts/setup-source-home.sh 2>&1 | tee "${RUNNER_TEMP}/source-home-logs/setup-source-home.log"
ELASTOS_DATA_DIR="${HOME}/Library/Application Support/elastos" \
scripts/installed-provider-verify.sh 2>&1 | tee "${RUNNER_TEMP}/source-home-logs/installed-provider-verify.log"
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,9 @@ archive/
control_graph/
control_graph_viewer/

# Website deployment artifacts
website/
# Website deployment artifacts; the public site's source is versioned.
website/*
!website/elastos/

# AI models
models/
Expand Down
6 changes: 6 additions & 0 deletions PRINCIPLES.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,12 @@ access policy.
end-to-end cryptography remain above Carrier, and compatibility transports
stay provider-internal

The target [storage and access contract](docs/STORAGE_AND_ACCESS.md) applies
these constraints to encrypted private objects, protected use, explicit export,
revocation, and recovery. Its
[implementation guide](docs/OBJECT_PROTECTION_IMPLEMENTATION.md) keeps storage,
rights evidence, and key mechanisms replaceable behind Runtime authority.

## 16. UI surfaces must not be authority

Opening a page and holding a capability are different things.
Expand Down
46 changes: 38 additions & 8 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,12 @@ audited reassignment that verifies the root and its protectors before mutation.
Hosted, loopback, native, and mobile hosts need explicit origin or host-auth
policy; none may gain authority from a trusted header.

Public first-owner enrollment must start from one-use local operator authority
and bind one exact HTTPS origin and RP before the ceremony begins. Adding a
credential to an existing owner requires explicit self-link consent and keeps
the same principal and protected root. Both flows reuse Runtime auth state and
produce typed denial, replay, expiry, concurrency, and audit results.

Principal-root protection should use random per-principal data keys. Protectors
may include a Recovery Kit, client-side WebAuthn PRF wrapping, DID-backed
recovery, and future quantum-resistant envelopes. Runtime stores wrapped
Expand Down Expand Up @@ -133,19 +139,32 @@ in the UI. Recipients verify it before retaining, mounting, or forking it.
The contract and its limits live in
[Content availability](docs/CONTENT_AVAILABILITY.md).

The first package-delivery milestone is a signed, CID-identified Qwen content
capsule used through Runtime-owned preparation. Source has bounded local
admission/offer binding and reply/reuse fixture proof; installed Use and cold
peer delivery remain unaccepted. The intended experience uses Marketplace
discovery/Open into Home Agent, retains the selected local model, and provides
recoverability-aware removal in System. Generic Get is not current shipped
support. The contract lives in
[Content capsule distribution](docs/CONTENT_CAPSULE_DISTRIBUTION.md).
Execution and proof dependencies live in
[Builder-only execution](TASKS.md#builder-only-execution).

### 3. Build Runtime-mediated protected content

The target protected-content design uses the same effect path as ordinary
content:

`viewer -> Runtime -> rights provider -> custody providers -> decrypt provider`
`viewer -> Runtime -> custody nodes (node-local rights) -> decrypt provider`

Runtime will resolve the content object, check availability, verify rights,
request recipient-encrypted custody contributions, create a scoped decrypt or
render session, and record the result. Each dependency will have a typed
contract and fail closed. Viewers will receive scoped output or a scoped
session, not content keys, custody shares, chain RPC, Wallet authority, storage
APIs, provider routes, network locations, or credentials.
Runtime will resolve the content object, check availability, load the exact
Chain policy, and ask each selected custody node to evaluate rights locally
before it returns a recipient-encrypted contribution. Runtime then creates a
scoped decrypt or render session and records the result. Each dependency has a
typed contract. Every invalid or unavailable dependency fails closed. Viewers
will receive scoped output or a scoped session, not content keys, custody shares,
chain RPC, Wallet authority, storage APIs, provider routes, network locations,
or credentials.

The dependency order is contracts and cryptographic review, private provider
protocols, Wallet/Chain authority, durable Runtime coordination, then installed
Expand Down Expand Up @@ -489,7 +508,18 @@ It must not create a separate trust root or expose key material to apps.

AI providers and agents need explicit identity, capabilities, budget policy,
data access, and audit. Hosted credentials stay inside configured providers.
Local and hosted models should expose the same typed Runtime contract.
Local and hosted models use the same typed Runtime contract. Chat Completions
and Responses adapters have fixture coverage; real configured provider
compatibility and installed lifecycle proof remain open.
Installed provider acceptance precedes service publication. Runtime publishes
the operator-selected signed offer and owns principal-scoped grants. The
destination Runtime authorizes each remote request, and Carrier transports only
the route that Runtime selected. Local-engine sharing and hosted-API sharing
have separate acceptance tracks in [Model provider](docs/MODEL_PROVIDER.md).
Carrier ingress bounds and destination-owned remote authority precede peer
acceptance. Hosted-sharing policy and full Jetson target proof remain requested
work with credential, terms, access and hardware prerequisites, even when source
review publication occurs earlier.

Operator tools should derive decisions from source, signed artifacts, and
machine-readable evidence. Durable docs should record contracts and current
Expand Down
Loading
Loading