Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
444 commits
Select commit Hold shift + click to select a range
c25e924
fix(chat): keep configured Room polling read only
andersalm Oct 9, 2026
b7aff6e
fix(home): save navigation only when selection changes
andersalm Oct 9, 2026
f128ad8
test(auth): keep future launch token beyond clock allowance
andersalm Oct 9, 2026
d07670e
Merge current develop into Chat stability
andersalm Oct 9, 2026
9d22b05
perf(chat): reuse verified reads within each poll response
andersalm Oct 9, 2026
3fdc1ef
perf(crypto): fit retained receipts in signature cache
andersalm Oct 9, 2026
c15e18a
fix(home): reuse verified contacts within each response
andersalm Oct 9, 2026
f0d9289
fix(home): avoid repeated catalogue scans within each response
andersalm Oct 9, 2026
d3529f2
refactor(chat): separate Community profile custodian operation
andersalm Oct 9, 2026
c7cc062
ci(chat): keep PR packaging proposal outside Chat candidate
andersalm Oct 9, 2026
31f27b6
test(chat): separate phone coverage from Chat batch
andersalm Oct 9, 2026
b01464f
refactor(chat): keep Sasha phone work in PR116
andersalm Oct 9, 2026
8540e3c
feat(signing): prepare protected Community profile custodian operation
andersalm Oct 9, 2026
e91fd7b
perf(chat): read protected Contact and Profile authority once
andersalm Oct 9, 2026
1ad9a92
docs(signing): state Community release-pin prerequisite
andersalm Oct 9, 2026
297a003
fix(chat): let the Home owner leave and rejoin Community
andersalm Oct 9, 2026
b8cac6f
Merge remote-tracking branch 'origin/develop' into fix/139-chat-stabi…
andersalm Oct 9, 2026
97fb63b
docs(signing): make Runtime network-pin support a prerequisite
andersalm Oct 9, 2026
4c03594
fix(chat): serialize Community choice with durable admission
andersalm Oct 9, 2026
7873a49
fix(inbox): check current Room decision authority
andersalm Oct 9, 2026
1e2e890
fix(community): refuse contact intent while this Home is left
andersalm Oct 9, 2026
62fd13f
test(chat): repair Leave fixture construction and lint
andersalm Oct 9, 2026
c999e41
fix(chat): show Community availability
andersalm Oct 9, 2026
2dd4329
Merge remote-tracking branch 'origin/develop' into fix/139-chat-stabi…
andersalm Oct 10, 2026
cf1be8c
style(setup): format merged CID fixture assertion
andersalm Oct 10, 2026
1b56743
fix(chat): retry Shared fanout after bootstrap custody
andersalm Oct 10, 2026
20997bc
fix(carrier): reconcile bounded CID fetch after develop merge
andersalm Oct 10, 2026
137db06
test: create owner-only protected fixture roots
andersalm Oct 10, 2026
b6a582a
Merge current develop into Community profile custodian source
andersalm Oct 10, 2026
e64f159
test: secure protected-read fixture directory ancestors
andersalm Oct 10, 2026
65edec3
Merge remote-tracking branch 'origin/develop' into feat/252-setup-pro…
SashaMIT Oct 10, 2026
f30db87
fix(chat): show unavailable Direct conversations and recover safely
andersalm Oct 10, 2026
72ef403
test(chat): bind Community participant selection to the fresh sender
andersalm Oct 10, 2026
3d962b5
test: import published shared behaviour runner
andersalm Oct 10, 2026
cb459a3
fix(chat): build visible Direct availability errors into UI assets
andersalm Oct 10, 2026
d0c4ab9
fix(chat): deliver Shared messages directly between Homes
andersalm Oct 10, 2026
f06c77e
test(chat): complete direct Shared regression fixtures
andersalm Oct 10, 2026
d50eaad
fix(chat): bound direct Shared replies before buffering
andersalm Oct 10, 2026
2e28dd7
fix(carrier): enable LAN discovery for direct connections
andersalm Oct 10, 2026
f699b94
fix(chat): remove unused held-frame test helpers
andersalm Oct 10, 2026
44c7718
test(chat): exercise blocked metadata and held delivery
andersalm Oct 10, 2026
36b68ee
test(chat): distinguish startup metadata from direct Shared messages
andersalm Oct 10, 2026
1433c9f
fix(carrier): send Linux datagrams without segmentation offload
andersalm Oct 11, 2026
aaa1a11
fix(chat): show Runtime Community state and gate sending
andersalm Oct 11, 2026
bb4e30e
Merge remote-tracking branch 'origin/develop' into feat/252-setup-pro…
SashaMIT Oct 11, 2026
c3a4ac1
Merge remote-tracking branch 'origin/develop' into feat/252-setup-pro…
SashaMIT Oct 11, 2026
4ed8009
Merge origin/develop into fix/139-chat-stability
andersalm Oct 11, 2026
db56103
test(chat): preserve regression coverage after alpha.15 merge
andersalm Oct 11, 2026
9e5cfd0
test(release): bind Community fixture to approved source inputs
andersalm Oct 11, 2026
fdd7b57
fix(chat): render Shared messages before metadata refresh
andersalm Oct 11, 2026
d866bfb
build(chat): refresh browser artifacts for Runtime state and prompt d…
andersalm Oct 11, 2026
580ea15
feat(release): sign one record per capsule archive and list them in t…
andersalm Oct 11, 2026
6e18228
feat(update): verify capsule records and replace only capsules whose …
andersalm Oct 11, 2026
add7d13
docs: per-capsule records in updates and publishing
andersalm Oct 11, 2026
6f51a7c
fix(release): only the Runtime binary compiles in the release version…
andersalm Oct 11, 2026
14caa67
ci: audit every Cargo.lock and lock the Jetson package build (#311 D2)
andersalm Oct 11, 2026
b2a0966
test(chat): retain develop metadata transport regression coverage
andersalm Oct 11, 2026
760d618
fix(chat): keep managed Home local peer discovery enabled by default
andersalm Oct 11, 2026
67122b8
docs(chat): align local discovery and approved Carrier relay contract
andersalm Oct 11, 2026
fa40bd4
fix(model): confirm owned local Stop settlement
andersalm Oct 11, 2026
b871f71
fix(model): retry pending activation during Status polling
andersalm Oct 11, 2026
b82c330
fix(model): rebuild activation for a verified engine successor
andersalm Oct 11, 2026
6337982
fix(assistant): resolve saved model CID through its current offer
andersalm Oct 11, 2026
15b522b
test(assistant): compare hydrated chat state across engine replacement
andersalm Oct 11, 2026
27ce5c6
fix(model): keep registry-free Status available for retention
andersalm Oct 11, 2026
00edc85
test(model): keep composer ownership through engine confirmation
andersalm Oct 11, 2026
ae031fa
test(model): drain missing-engine retries before fixture changes
andersalm Oct 11, 2026
091e0c3
fix(model): import owned Stop settlement types
andersalm Oct 11, 2026
1685a70
fix(storage): keep disk shortage as a typed Runtime fact
andersalm Oct 11, 2026
8bb33c3
fix(model): explain interrupted preparation and budget refusals
andersalm Oct 11, 2026
bae6731
test(update): use signed-release paths in positive support fixtures
andersalm Oct 11, 2026
e4c0175
fix(carrier): keep the mDNS default in one place
andersalm Oct 11, 2026
ee15684
test(carrier): preserve mDNS choice across Home restarts
andersalm Oct 11, 2026
a140744
refactor(model): share effective device memory observation
andersalm Oct 11, 2026
d8a08fe
feat(model): check signed minimum device memory before Get
andersalm Oct 11, 2026
5bd16f5
fix(model): require visible Linux memory limits before admission
andersalm Oct 11, 2026
438e519
fix(model): bound run history before dispatch and preserve recovery
andersalm Oct 11, 2026
fb142f5
feat(model): define bounded fresh request identities
andersalm Oct 11, 2026
e541f8a
fix(model): refuse pruned request replays before new work
andersalm Oct 11, 2026
30a4aca
fix(model): preserve preparation replay facts across pruning
andersalm Oct 11, 2026
4c7504a
fix(model): bind expiry refusal to the validated invocation
andersalm Oct 11, 2026
4529d34
fix(assistant): keep uncertain requests bound during expiry recovery
andersalm Oct 11, 2026
35fec2d
fix(content): give each new viewer open a distinct audit ID
andersalm Oct 11, 2026
1b8129f
test(model): preserve uncertain Stop replay and deadline coverage
andersalm Oct 11, 2026
f8aacba
test(update): borrow single DIDs as slices in capsule record tests (c…
andersalm Oct 11, 2026
c29521c
fix(model): release expired Get identity after confirmed refresh
andersalm Oct 11, 2026
7e795b1
fix(model): report unreadable memory as an admission refusal
andersalm Oct 11, 2026
073b321
fix(model): recover owned journal transactions with bounded retained …
andersalm Oct 11, 2026
7f82038
fix(assistant): preserve deliberate edits after an expired request
andersalm Oct 11, 2026
2379d03
fix(model): validate transaction names before journal recovery
andersalm Oct 11, 2026
9247b5d
refactor(model): keep transaction suffix validation linear
andersalm Oct 11, 2026
5976062
test(model): prove finite-memory installed Home journeys
andersalm Oct 11, 2026
35426a1
fix(model): distinguish unreadable limits from insufficient memory
andersalm Oct 11, 2026
ffe1689
docs(model): bind local execution ownership to the Home data root
andersalm Oct 11, 2026
f33dafa
test(model): run visible recovery regressions in the behaviour gate
andersalm Oct 11, 2026
e60bc7c
fix(model): resolve preparation refusals through the owning API module
andersalm Oct 11, 2026
0c03f0f
test(model): fix journal replacement fixture error type
andersalm Oct 11, 2026
9fd0b74
fix(model): scope preparation refusal projection to supported hosts
andersalm Oct 11, 2026
780fa0d
test(model): wait for the current refusal refresh before checking Retry
andersalm Oct 11, 2026
7d016bd
test(model): bind recovery assertions to each completed model refresh
andersalm Oct 11, 2026
3966cfd
test(model): observe the fresh Get before checking its request identity
andersalm Oct 11, 2026
f4e687e
test(model): keep preparation fixture constructor callable
andersalm Oct 11, 2026
ef54cd0
test(model): exercise both encoded header boundaries
andersalm Oct 11, 2026
aab6d3e
test(model): declare the catalogue policy for Media journey
andersalm Oct 11, 2026
2c00e50
test(model): distinguish public catalogue counts from memory facts
andersalm Oct 11, 2026
4f86a3d
test(model): distinguish header quota from string validation
andersalm Oct 11, 2026
36dc0f9
fix(model): compile the live memory reader with its owner
andersalm Oct 12, 2026
db28407
fix(model): simplify final Stop ownership and replay fixtures
andersalm Oct 12, 2026
88b274a
test(model): preserve native journal recovery fixture boundaries
andersalm Oct 12, 2026
6ccd9f1
Merge remote-tracking branch 'origin/develop' into feat/84-local-ai-080
andersalm Oct 12, 2026
3a16087
test(model): wait for a consistent concurrent journal census
andersalm Oct 12, 2026
66df745
test(model): observe stored runs through their coordinator
andersalm Oct 12, 2026
c6d7320
Merge remote-tracking branch 'origin/develop' into fix/dependency-adv…
andersalm Oct 12, 2026
97930f5
deps: patch rustls, h2, wasmtime, quinn-proto and rustls-webpki advis…
andersalm Oct 12, 2026
1b766e1
fix(chat): show own Community delivery from Runtime evidence
andersalm Oct 12, 2026
e097ec8
test(chat): measure signup click to ready within 30 seconds
andersalm Oct 12, 2026
9117e6b
Merge remote-tracking branch 'origin/develop' into fix/139-chat-stabi…
andersalm Oct 12, 2026
8462962
fix(setup): box the Carrier and Browser image downloads so setup's fu…
andersalm Oct 12, 2026
c12069a
Merge remote-tracking branch 'origin/develop' into feat/274-records
andersalm Oct 12, 2026
946c5f1
test(chat): cover own Community delivery changes in WASM
andersalm Oct 12, 2026
461c2a8
test(ci): return from Assistant through its visible Home control
andersalm Oct 12, 2026
2ccd1a7
test(ci): retain finite counters until native cleanup is proven
andersalm Oct 12, 2026
598977c
release: prepare checks delivery identities before downloading inputs
andersalm Oct 12, 2026
dffb7f3
ci: cargo-audit fails when listing Cargo.lock files fails
andersalm Oct 12, 2026
e5ef695
test(ci): launch finite contender through its signed Home
andersalm Oct 12, 2026
593634a
test(ci): serve real Home dependencies in contender fixture
andersalm Oct 12, 2026
39e254f
fix(update): admit every released row against its capsule record on e…
andersalm Oct 12, 2026
fef017e
Merge remote-tracking branch 'origin/develop' into feat/274-records
andersalm Oct 12, 2026
4a91040
release: retry transient upstream errors when fetching release inputs
andersalm Oct 12, 2026
63aa11a
Merge remote-tracking branch 'origin/develop' into fix/139-chat-stabi…
andersalm Oct 12, 2026
cb330d9
test(chat): wait for emoji picker input transitions
andersalm Oct 12, 2026
31cc051
build(chat): refresh browser assets for Community delivery status
andersalm Oct 12, 2026
d1b3ebe
fix(ci): wait for Shell restoration before Assistant launch
andersalm Oct 12, 2026
3198eb5
test(ci): follow Shell handover and Wallet preload timing
andersalm Oct 12, 2026
9a4ed30
release-publish: seed scripts export XDG_DATA_HOME and check publish …
andersalm Oct 12, 2026
7ca0682
fix(chat): reuse verified collaboration state and signed records
andersalm Oct 12, 2026
c2b0657
Merge remote-tracking branch 'origin/develop' into feat/84-local-ai-080
andersalm Oct 12, 2026
67e2c90
release-publish: seed pre-download check accepts a rerun of the commi…
andersalm Oct 12, 2026
67ba8bb
ci: start the update journey from 0.8.0-alpha.15; prepare refuses a s…
andersalm Oct 12, 2026
513fc12
fix(chat): preserve accepted messages and enforce receive admission
andersalm Oct 12, 2026
04c6c69
Merge branch 'fix/139-chat-state-cache' into fix/139-chat-stability
andersalm Oct 12, 2026
0114277
build(chat): refresh browser assets for the polled conversation cursor
andersalm Oct 12, 2026
cbe5adc
fix(model): expire uncertain history and recover oversized journals
andersalm Oct 12, 2026
10445b7
fix(engine): ship an OpenMP-free amd64 engine and verify dependencies
andersalm Oct 12, 2026
f099398
fix(chat): validate projection before acceptance and preserve termina…
andersalm Oct 12, 2026
913568c
test(chat): bind browser artifacts to source and exercise the generat…
andersalm Oct 12, 2026
1030b18
fix(engine): enforce release inputs and scope startup recovery errors
andersalm Oct 12, 2026
ae63090
release-publish: quote printed seed commands, first publication, N+1 …
andersalm Oct 12, 2026
08c8e25
Merge remote-tracking branch 'origin/feat/186-community-profile-custo…
andersalm Oct 12, 2026
0dc7ba5
Merge remote-tracking branch 'origin/fix/update-from-current' into fe…
andersalm Oct 12, 2026
ea73983
fix(chat): validate every shared consumer before durable admission
andersalm Oct 12, 2026
568073d
fix(chat): preserve recovered outgoing delivery while Chat is closed
andersalm Oct 12, 2026
00a6bc6
fix(chat): reserve held-frame capacity throughout retries
andersalm Oct 12, 2026
145c61a
test(chat): import shared ownership for restart regressions
andersalm Oct 12, 2026
5599ba5
fix(ci): install both pinned Browser test builds
andersalm Oct 13, 2026
bbdb682
release: bind the Community network to the custodian output at prepare
andersalm Oct 13, 2026
b78f4ac
fix(ci): use pinned Node 24 for the older Browser installer
andersalm Oct 13, 2026
52b5eb9
test(chat): borrow the retained-history candidate slice
andersalm Oct 13, 2026
9e4c1c1
Merge remote-tracking branch 'origin/fix/update-from-current' into fe…
andersalm Oct 13, 2026
397c849
docs(collaboration): verify an owner-only copy of the read-only custo…
andersalm Oct 13, 2026
09fda76
test(chat): align startup worker fixtures with consumer admission
andersalm Oct 13, 2026
d0bb0ab
test(chat): use Home exchange for Shared acceptance fixture
andersalm Oct 13, 2026
55efc89
fix(chat): preserve local projection obligations after transport expiry
andersalm Oct 13, 2026
3674a1f
release: refuse Community admission before bind; policy needs a finis…
andersalm Oct 13, 2026
c204d80
update: a skipped release's new component kind no longer refuses the …
andersalm Oct 13, 2026
8d71658
fix(model): confirm exact engine closure before model activation
andersalm Oct 13, 2026
dd619e5
test(model): prove kept download recovery across Home restart
andersalm Oct 13, 2026
84bff46
test(model): exercise installed Stop switch and interrupted Get recovery
andersalm Oct 13, 2026
6a2e514
test(model): bind process lifecycle requests to the run contract
andersalm Oct 13, 2026
748c09b
fix(model): reap the owned engine before guard group shutdown
andersalm Oct 13, 2026
38d98c2
test(model): retain cancelled journal after different reply
andersalm Oct 13, 2026
eeed842
update: admit known assets of a deferred component; keep its paths fr…
andersalm Oct 13, 2026
a81d29c
test(model): retain status across activation assertions
andersalm Oct 13, 2026
fd2728f
docs(release): 0.8.0 isolation status and known issues; explain Carri…
andersalm Oct 13, 2026
b038fcf
release: retry the whole upstream download, not only the open
andersalm Oct 13, 2026
eb2e3f5
Merge commit '55efc8966' into feat/community-release-pin
andersalm Oct 13, 2026
bf1760c
test(chat): generate malformed Shared products across signed consumers
andersalm Oct 13, 2026
f0fd291
signing: show what a Community profile signs; sign only one bootstrap…
andersalm Oct 13, 2026
cc1c530
fix(ci): preserve active Marketplace during installed model repair
andersalm Oct 13, 2026
095ee1e
fix(setup): admit capsule records before engine, helper, image and to…
andersalm Oct 13, 2026
32e3696
test: source-manifest setup smokes ignore a pinned release network
andersalm Oct 13, 2026
a1b89fc
carrier: the publisher ticket lists only public addresses; a fixed po…
andersalm Oct 13, 2026
46272d8
release: retry an upstream body that ends short of Content-Length
andersalm Oct 13, 2026
01445dc
carrier: exported tickets drop IANA special-use addresses; a taken IP…
andersalm Oct 13, 2026
c359800
auth: plain lock-screen sign-in errors; owner adds a passkey after fr…
andersalm Oct 13, 2026
f4febe5
update: the deferral record is release support; the install command i…
andersalm Oct 13, 2026
22431b1
update: a canary Home also accepts its signer's stable release (#335)
andersalm Oct 13, 2026
07da061
release: publish a final version once, on stable, from its tag (#335)
andersalm Oct 13, 2026
f2b92da
fix(update): fetch component bytes only through admitted release rows
andersalm Oct 13, 2026
18e0800
carrier: exported tickets use the IANA IPv6 special-purpose table (#336)
andersalm Oct 13, 2026
8e8ba68
auth: passkey removal checks and revokes in one auth write; add is ow…
andersalm Oct 13, 2026
bc4d3c2
update: staged support never removes or writes a newer kind's paths
andersalm Oct 13, 2026
d008b94
fix(update): bind admitted rows to the admitted manifest; list every …
andersalm Oct 13, 2026
26d6784
carrier: IPv4-compatible IPv6 is never public; collision test checks …
andersalm Oct 13, 2026
48b88dd
release: pin the signed Community network elastos.community
andersalm Oct 13, 2026
cceb6b3
update: one admission refuses paths shared with a newer component kind
andersalm Oct 13, 2026
9f3edbd
fix(update): admit rows only from a verified release; extract only ad…
andersalm Oct 13, 2026
511e18b
fix(ci): require installed model repair journey
andersalm Oct 13, 2026
2b4d226
fix(setup): explain required Linux model engine bundle
andersalm Oct 13, 2026
e300ada
fix(ai): bound activation polling and start waiting Gets
andersalm Oct 13, 2026
955e37c
test(update): drop the text-matching transport guard for the type bou…
andersalm Oct 13, 2026
983c409
deps: bump quinn-proto to 0.11.19 (RUSTSEC-2026-0338..0343)
andersalm Oct 13, 2026
c022ad0
fix(ai): isolate hosted unknown from local activation
andersalm Oct 13, 2026
4096a19
fix(ai): recover abandoned journal transactions safely
andersalm Oct 13, 2026
599d164
update: re-scope for 0.8.0 to the install-command message and the old…
andersalm Oct 13, 2026
25b48df
fix(chat): preserve history identity and durable projection progress
andersalm Oct 13, 2026
bcb8174
fix(chat-ui): order poll delivery snapshots and retain local rows
andersalm Oct 13, 2026
d68d694
update: malformed known-schema components refuse; a newer kind needs …
andersalm Oct 13, 2026
3d5a10c
update: only a well-formed newer components schema needs the installer
andersalm Oct 13, 2026
8798343
docs(release): state front-door and Community access exactly (#170, #83)
andersalm Oct 13, 2026
9ce1f01
test: disposable installed-Home smokes never join the pinned Community
andersalm Oct 13, 2026
89c7136
docs(release): state the front door without overclaiming (#170)
andersalm Oct 13, 2026
b62a474
docs(release): name the Origin check exactly (#170)
andersalm Oct 13, 2026
ea20fb0
fix(collaboration): only exact source-home modes skip the release net…
andersalm Oct 13, 2026
e80e5f8
train: merge fix/prepare-fail-fast (#359) at 598977cbf
andersalm Oct 13, 2026
d86b0cc
train: merge fix/upstream-fetch-retry (#360) at 46272d814
andersalm Oct 13, 2026
a32281b
train: merge fix/update-skip-safe (incl. #361 ae63090db) at 3d5a10c8d
andersalm Oct 13, 2026
210530e
train: merge fix/dependency-advisories (#351) at 983c40929
andersalm Oct 13, 2026
17221ad
train: merge feat/274-records (#353) at 955e37c5f
andersalm Oct 13, 2026
effdebe
train: merge feat/335-stable-release (#335) at 07da061a7
andersalm Oct 13, 2026
61c099a
train: merge fix/338-account-errors (#338) at 8e8ba68e2
andersalm Oct 13, 2026
bc244d2
train: merge fix/336-ticket-addresses (#336) at 26d6784ec
andersalm Oct 13, 2026
351bb12
train: merge feat/community-release-pin (pin, contains #309 at 55efc8…
andersalm Oct 13, 2026
0031654
train: merge feat/84-local-ai-080 (#348) at 4096a19f7
andersalm Oct 13, 2026
77989f2
train: merge docs/080-release-text (release text) at b62a474fe
andersalm Oct 13, 2026
ef0b11d
train: name the Community network field in #353's supervisor test man…
andersalm Oct 13, 2026
9cf077a
build(chat): refresh browser assets for the ordered delivery polls (b…
andersalm Oct 13, 2026
854eff9
train: pin's Community prepare tests use the canary fixture version #…
andersalm Oct 13, 2026
f173210
test(chat): align three regressions with drop-only history conflicts
andersalm Oct 13, 2026
b8e8928
train: merge fix/139-chat-stability (#309) at f17321068
andersalm Oct 13, 2026
04016de
train: admit capsule records before the unknown-kind installer return
andersalm Oct 13, 2026
bbe5f38
feat(home): show the 0.8.0 goals in one order on the website, Dock an…
andersalm Oct 13, 2026
bc41a79
fix(home): keep the Assistant room when ready arrives before the fram…
andersalm Oct 13, 2026
f691269
fix(home): bind Assistant readiness to the loaded document with a hel…
andersalm Oct 13, 2026
e354766
fix(home): show the Assistant room for a legacy ready and after a bou…
andersalm Oct 13, 2026
f86aca2
fix(home): show the Assistant room from the document's own hello and …
andersalm Oct 13, 2026
b0648a9
test(home): drop the source-text check on Assistant readiness wiring …
andersalm Oct 13, 2026
c2145d3
train: fix #348 test construction of DispatchResult::Terminal
andersalm Oct 13, 2026
3a7b004
fix(home): a legacy Assistant ready always takes over the room (#339)
andersalm Oct 13, 2026
7cbe1eb
fix(assistant): hold Home's open and handover until the workspace is …
andersalm Oct 13, 2026
925dc41
train: merge feat/339-first-ten-minutes (#339) at 7cbe1eb35
andersalm Oct 13, 2026
1a512af
test: deflake taken-IPv6 Carrier port and durable DM restart tests
andersalm Oct 13, 2026
651dba9
release: 0.8.0
andersalm Oct 13, 2026
e4e5eb4
release: 0.8.0 and 0.8.0-alpha.16 notes
andersalm Oct 13, 2026
59364c8
release: carrier dependency check expects quinn-proto 0.11.19 (the #3…
andersalm Oct 13, 2026
53fa7f8
train: merge fix/080-ci-flakes at 1a512af5a
andersalm Oct 13, 2026
02e86f4
fix(home): a session restore that finishes late keeps an opened Assis…
andersalm Oct 13, 2026
206908c
train: merge fix/339-assistant-restore at 02e86f40d
andersalm Oct 13, 2026
9eaf7f2
fix(home): place restored windows on their Desktops when restore keep…
andersalm Oct 13, 2026
563a6e2
train: merge fix/339-assistant-restore at 9eaf7f2c8
andersalm Oct 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
147 changes: 142 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ env:
CARGO_TERM_COLOR: always
RUSTFLAGS: "-D warnings"
# Reviewed ARM64 archive pin, shared by the producer and every CI consumer.
CI_LLAMA_AMD64_SHA256: 0dee60d855f864aa9e8a7200014baf9419e3a4c9ccb3f3609532aad0ed34f2c0
CI_LLAMA_ARM64_SHA256: a92e404708feae91cbede43322e445971450de8a204f4ff51502a7f42f5df8b8
# An explicit dispatch ref may select a tag independently of the workflow ref.
CI_USE_CACHE: ${{ github.ref_type != 'tag' && !(github.event_name == 'workflow_dispatch' && inputs.ref != '') }}
Expand Down Expand Up @@ -95,8 +96,121 @@ jobs:
path: ${{ runner.temp }}/browser-status-screenshots/
if-no-files-found: ignore

# One input for every ARM consumer. PRs restore their develop base's cache;
# Every tracked Cargo.lock against the current RustSec database. Reviewed
# exceptions live only in elastos/.cargo/audit.toml, which cargo-audit
# reads from its working directory. No cache: the binary is a checksummed
# release and the database must be fresh.
cargo-audit:
name: cargo-audit
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
with:
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.ref || github.sha }}
persist-credentials: false
- name: install checksummed cargo-audit
run: |
set -euo pipefail
archive=cargo-audit-x86_64-unknown-linux-musl-v0.22.2
directory="$RUNNER_TEMP/cargo-audit"
mkdir -p "$directory"
curl -fsSL --connect-timeout 30 --max-time 120 --retry 3 \
"https://github.com/rustsec/rustsec/releases/download/cargo-audit%2Fv0.22.2/$archive.tgz" \
-o "$directory/$archive.tgz"
echo "7fb9497f8594b389e5fce5ef9b92db08432996895b2e0c5a0167a69ed445c428 $directory/$archive.tgz" | sha256sum -c -
tar -xzf "$directory/$archive.tgz" -C "$directory" "$archive/cargo-audit"
echo "$directory/$archive" >> "$GITHUB_PATH"
- name: audit every Cargo.lock
working-directory: elastos
run: |
set -euo pipefail
# A failed listing must fail the job, not audit a partial list.
listing=$(git -C .. ls-files '*Cargo.lock')
locks=()
while IFS= read -r lock; do [[ -n "$lock" ]] && locks+=("$lock"); done <<< "$listing"
(( ${#locks[@]} > 0 ))
db="$RUNNER_TEMP/advisory-db"
fetch=()
failed=0
for lock in "${locks[@]}"; do
echo "::group::$lock"
cargo-audit audit --db "$db" ${fetch[@]+"${fetch[@]}"} --file "../$lock" || failed=1
echo "::endgroup::"
# One database fetch per run; every lockfile is checked against it.
fetch=(--no-fetch)
done
exit "$failed"

# One reviewed input per Linux architecture. PRs restore their develop base's cache;
# only a develop push can save a verified recipe result in this namespace.
engine-llama-amd64:
name: engine-llama-amd64
runs-on: ubuntu-24.04
timeout-minutes: 45
needs: source-gate
container:
image: ubuntu@sha256:5ec03bb3441e8b0bf3b4f9cd4629a1ae763010dc3035bb8da3ae6cf026486401
defaults:
run:
shell: bash
env:
DEBIAN_FRONTEND: noninteractive
BUILD_CONTAINER_IMAGE: ubuntu@sha256:5ec03bb3441e8b0bf3b4f9cd4629a1ae763010dc3035bb8da3ae6cf026486401
ENGINE_BUILD_TOOLS: build-essential cmake git ca-certificates curl binutils file python3
steps:
- name: install engine build tools
run: |
apt-get update -qq
read -r -a tools <<< "$ENGINE_BUILD_TOOLS"
apt-get install -y -qq --no-install-recommends "${tools[@]}"
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
with:
ref: ${{ github.event_name == 'workflow_dispatch' && inputs.ref || github.sha }}
persist-credentials: false
- name: bind engine cache to build recipe
id: engine-recipe
run: |
recipe_hash=$( {
cat scripts/build/build-llama-server-bundle.sh
cat scripts/verify-linux-engine.py
printf '\n%s\n%s\n' "$BUILD_CONTAINER_IMAGE" "$ENGINE_BUILD_TOOLS"
} | sha256sum | cut -d ' ' -f 1)
echo "cache-key=develop-llama-amd64-${recipe_hash}" >> "$GITHUB_OUTPUT"
- name: restore pinned AMD64 engine
id: engine-cache
if: env.CI_USE_CACHE == 'true'
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ${{ runner.temp }}/llama-amd64-bundle
key: ${{ steps.engine-recipe.outputs.cache-key }}
- name: build and validate pinned AMD64 engine
id: engine-build
if: steps.engine-cache.outputs.cache-hit != 'true'
run: |
RECIPE_COMMIT="$(git -c safe.directory="$GITHUB_WORKSPACE" rev-parse HEAD)"
export RECIPE_COMMIT
bash scripts/build/build-llama-server-bundle.sh --platform linux-amd64 "$RUNNER_TEMP/llama-amd64-bundle"
- name: verify accepted AMD64 engine archive
run: bash scripts/build/build-llama-server-bundle.sh --platform linux-amd64 --verify-archive "$RUNNER_TEMP/llama-amd64-bundle"
- name: save pinned AMD64 engine
if: env.CI_USE_CACHE == 'true' && github.event_name == 'push' && github.ref == 'refs/heads/develop' && steps.engine-cache.outputs.cache-hit != 'true'
uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ${{ runner.temp }}/llama-amd64-bundle
key: ${{ steps.engine-cache.outputs.cache-primary-key }}
- name: upload pinned AMD64 engine input
# Retain build receipts on a pin mismatch for review; dependent jobs
# require this job to succeed before they can consume the archive.
if: "!cancelled() && (steps.engine-cache.outputs.cache-hit == 'true' || steps.engine-build.outcome == 'success')"
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5
with:
name: llama-amd64-bundle
path: ${{ runner.temp }}/llama-amd64-bundle/
if-no-files-found: error
retention-days: 1
compression-level: 0

engine-llama-arm64:
name: engine-llama-arm64
runs-on: ubuntu-24.04-arm
Expand Down Expand Up @@ -126,6 +240,7 @@ jobs:
run: |
recipe_hash=$( {
cat scripts/build/build-llama-server-bundle.sh
cat scripts/verify-linux-engine.py
printf '\n%s\n%s\n' "$BUILD_CONTAINER_IMAGE" "$ENGINE_BUILD_TOOLS"
} | sha256sum | cut -d ' ' -f 1)
echo "cache-key=develop-llama-arm64-${recipe_hash}" >> "$GITHUB_OUTPUT"
Expand Down Expand Up @@ -621,8 +736,8 @@ jobs:
source-home-linux:
name: source-home-linux (${{ matrix.os }})
runs-on: ${{ matrix.os }}
timeout-minutes: 90
needs: source-gate
timeout-minutes: 120
needs: [source-gate, engine-llama-amd64]
env:
CI_APT_PACKAGES: coturn e2fsprogs ffmpeg musl-tools nasm pkg-config
strategy:
Expand Down Expand Up @@ -723,6 +838,15 @@ jobs:
with:
path: ${{ steps.kubo-pin.outputs.paths }}
key: ${{ steps.kubo-pin.outputs.key }}
- name: download pinned AMD64 engine input
if: matrix.os == 'ubuntu-24.04'
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
with:
name: llama-amd64-bundle
path: ${{ runner.temp }}/llama-amd64-bundle
- name: verify pinned AMD64 engine input
if: matrix.os == 'ubuntu-24.04'
run: bash scripts/build/build-llama-server-bundle.sh --platform linux-amd64 --verify-archive "$RUNNER_TEMP/llama-amd64-bundle"
- name: download pinned ARM64 engine input
if: matrix.os == 'ubuntu-22.04-arm'
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
Expand All @@ -737,6 +861,7 @@ jobs:
ELASTOS_COLLABORATION_STARTUP_MODE: isolated
SETUP_SOURCE_HOME_INSTALL_LLAMA_SERVER: '1'
SETUP_SOURCE_HOME_INSTALL_KUBO: '1'
ELASTOS_LLAMA_AMD64_BUNDLE: ${{ runner.temp }}/llama-amd64-bundle/llama-b10516-bin-ubuntu22.04-amd64-cpu.tar.gz
ELASTOS_LLAMA_ARM64_BUNDLE: ${{ runner.temp }}/llama-arm64-bundle/llama-b10516-bin-ubuntu22.04-arm64-cpu.tar.gz
run: |
set -euo pipefail
Expand Down Expand Up @@ -764,6 +889,7 @@ jobs:
scripts/installed-provider-verify.sh 2>&1 | tee "${RUNNER_TEMP}/source-home-logs/installed-provider-verify.log"
- name: local-carrier setup smoke
env:
ELASTOS_LLAMA_AMD64_BUNDLE: ${{ runner.temp }}/llama-amd64-bundle/llama-b10516-bin-ubuntu22.04-amd64-cpu.tar.gz
ELASTOS_LLAMA_ARM64_BUNDLE: ${{ runner.temp }}/llama-arm64-bundle/llama-b10516-bin-ubuntu22.04-arm64-cpu.tar.gz
run: |
set -euo pipefail
Expand All @@ -786,19 +912,30 @@ jobs:
timeout-minutes: 20
env:
CI_SOURCE_HOME: ${{ runner.temp }}/elastos-source-home
CI_MODEL_REPAIR_JOURNEY: ${{ matrix.os == 'ubuntu-24.04' }}
run: scripts/ci-installed-journeys.sh prepare
# Only the x86-64 job proves one reply Get from a separate holder Home over Carrier.
- name: installed Marketplace Get and Assistant reply
timeout-minutes: 15
timeout-minutes: 30
env:
CI_SOURCE_HOME: ${{ runner.temp }}/elastos-source-home
CI_CARRIER_GET: ${{ matrix.os == 'ubuntu-24.04' }}
CI_FINITE_MEMORY: ${{ matrix.os == 'ubuntu-24.04' }}
run: scripts/ci-installed-journeys.sh home
- name: installed model Stop, switch and interrupted Get recovery
if: matrix.os == 'ubuntu-24.04'
timeout-minutes: 30
env:
CI_SOURCE_HOME: ${{ runner.temp }}/elastos-source-home
CI_MODEL_REPAIR_JOURNEY: 'true'
run: scripts/ci-installed-journeys.sh model-repair
- name: summarize installed model journey
if: always()
env:
CI_SOURCE_HOME: ${{ runner.temp }}/elastos-source-home
CI_CARRIER_GET: ${{ matrix.os == 'ubuntu-24.04' }}
CI_FINITE_MEMORY: ${{ matrix.os == 'ubuntu-24.04' }}
CI_MODEL_REPAIR_JOURNEY: ${{ matrix.os == 'ubuntu-24.04' }}
run: scripts/ci-installed-journeys.sh summary
- name: upload installed model journey
if: always()
Expand All @@ -816,7 +953,7 @@ jobs:
run: |
set -euo pipefail
# Incremental on top of setup-source-home's release builds.
cargo build --manifest-path elastos/Cargo.toml --workspace --release
cargo build --locked --manifest-path elastos/Cargo.toml --workspace --release
scripts/package-release-binaries.sh
- name: verify Jetson release compatibility
if: matrix.os == 'ubuntu-22.04-arm'
Expand Down
87 changes: 86 additions & 1 deletion .github/workflows/release-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,83 @@ jobs:
- name: record the artifact
run: echo "Mac inputs artifact ${{ steps.upload.outputs.artifact-id }}, zip sha256:${{ steps.upload.outputs.artifact-digest }}" >> "$GITHUB_STEP_SUMMARY"

engine-llama-amd64:
name: pinned AMD64 CPU engine
needs: admit
runs-on: ubuntu-24.04
timeout-minutes: 45
# Match ci.yml's Ubuntu 22.04 engine recipe and glibc 2.35 baseline.
container:
image: ubuntu@sha256:5ec03bb3441e8b0bf3b4f9cd4629a1ae763010dc3035bb8da3ae6cf026486401
defaults:
run:
shell: bash
working-directory: source
env:
SOURCE_TREE: ${{ needs.admit.outputs.source_tree }}
DEBIAN_FRONTEND: noninteractive
BUILD_CONTAINER_IMAGE: ubuntu@sha256:5ec03bb3441e8b0bf3b4f9cd4629a1ae763010dc3035bb8da3ae6cf026486401
ENGINE_BUILD_TOOLS: build-essential cmake git ca-certificates curl binutils file python3
steps:
- name: install engine build tools
working-directory: /tmp
run: |
apt-get update -qq
read -r -a tools <<< "$ENGINE_BUILD_TOOLS"
apt-get install -y -qq --no-install-recommends "${tools[@]}"
- uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5
with:
ref: ${{ inputs.source_commit }}
path: source
persist-credentials: false
- name: bind the source and approved AMD64 engine
id: engine-input
run: |
set -euo pipefail
[[ "$RUNNER_ENVIRONMENT/$RUNNER_OS/$RUNNER_ARCH" == github-hosted/Linux/X64 ]]
[[ "$(git rev-parse HEAD)/$(git rev-parse 'HEAD^{tree}')" == "$SOURCE_COMMIT/$SOURCE_TREE" ]]
[[ -z "$(git status --porcelain=v1 --untracked-files=all)" ]]
CI_LLAMA_AMD64_SHA256=$(python3 -I -S - <<'PYTHON'
import json
recipes = json.load(open("scripts/release-upstream-recipes.json"))["recipes"]
print(next(r["source"]["checksum"].removeprefix("sha256:") for r in recipes
if r["component"] == "llama-server" and r["platform"] == "linux-amd64"))
PYTHON
)
echo "CI_LLAMA_AMD64_SHA256=$CI_LLAMA_AMD64_SHA256" >> "$GITHUB_ENV"
- name: bind engine cache to build recipe
id: engine-recipe
run: |
recipe_hash=$( {
cat scripts/build/build-llama-server-bundle.sh
cat scripts/verify-linux-engine.py
printf '\n%s\n%s\n' "$BUILD_CONTAINER_IMAGE" "$ENGINE_BUILD_TOOLS"
} | sha256sum | cut -d ' ' -f 1)
echo "cache-key=develop-llama-amd64-${recipe_hash}" >> "$GITHUB_OUTPUT"
- name: restore pinned AMD64 engine
id: engine-cache
# A miss takes the same verified cold build below.
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ${{ runner.temp }}/llama-amd64-bundle
key: ${{ steps.engine-recipe.outputs.cache-key }}
- name: build and validate pinned AMD64 engine
id: engine-build
if: steps.engine-cache.outputs.cache-hit != 'true'
run: |
export RECIPE_COMMIT="$SOURCE_COMMIT"
bash scripts/build/build-llama-server-bundle.sh --platform linux-amd64 "$RUNNER_TEMP/llama-amd64-bundle"
- name: verify accepted AMD64 engine archive
run: |
bash scripts/build/build-llama-server-bundle.sh --platform linux-amd64 --verify-archive "$RUNNER_TEMP/llama-amd64-bundle"
[[ -z "$(git status --porcelain=v1 --untracked-files=all)" ]]
- uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v4
with:
name: release-llama-amd64-${{ inputs.source_commit }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/llama-amd64-bundle
if-no-files-found: error
retention-days: 14

engine-llama-arm64:
name: pinned Jetson CPU engine
needs: admit
Expand Down Expand Up @@ -255,6 +332,7 @@ jobs:
run: |
recipe_hash=$( {
cat scripts/build/build-llama-server-bundle.sh
cat scripts/verify-linux-engine.py
printf '\n%s\n%s\n' "$BUILD_CONTAINER_IMAGE" "$ENGINE_BUILD_TOOLS"
} | sha256sum | cut -d ' ' -f 1)
echo "cache-key=develop-llama-arm64-${recipe_hash}" >> "$GITHUB_OUTPUT"
Expand Down Expand Up @@ -284,7 +362,7 @@ jobs:

linux:
name: ${{ matrix.platform }} N and N+1
needs: [admit, engine-llama-arm64]
needs: [admit, engine-llama-arm64, engine-llama-amd64]
runs-on: ${{ matrix.os }}
timeout-minutes: 300
permissions:
Expand Down Expand Up @@ -333,6 +411,12 @@ jobs:
- name: install host prerequisites
timeout-minutes: 15
run: bash scripts/release-host-prerequisites.sh linux
- name: download pinned AMD64 engine input
if: matrix.platform == 'x86_64-linux'
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
with:
name: release-llama-amd64-${{ inputs.source_commit }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/llama-amd64-bundle
- name: download pinned ARM64 engine input
if: matrix.platform == 'aarch64-linux'
uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5
Expand All @@ -345,6 +429,7 @@ jobs:
set -euo pipefail
umask 077
export CARGO_HOME="${CARGO_HOME:-$HOME/.cargo}" RUSTUP_HOME="${RUSTUP_HOME:-$HOME/.rustup}"
export ELASTOS_LLAMA_AMD64_BUNDLE="$RUNNER_TEMP/llama-amd64-bundle/llama-b10516-bin-ubuntu22.04-amd64-cpu.tar.gz"
export ELASTOS_LLAMA_ARM64_BUNDLE="$RUNNER_TEMP/llama-arm64-bundle/llama-b10516-bin-ubuntu22.04-arm64-cpu.tar.gz"
inputs="$RELEASE_ROOT/inputs"
# Fresh Cargo directories for each version; removed after each build.
Expand Down
Loading
Loading