Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
5675b88
feat(home): first run seeds an empty desktop and pins Marketplace
SashaMIT Sep 2, 2026
568bb04
test(home): regression smoke expects the empty first-run desktop
SashaMIT Sep 2, 2026
d8c37cb
fix(apps): clear the unified-sidebar chrome overlay in Documents, Inb…
SashaMIT Sep 2, 2026
90d7f08
fix(inbox): request rows hug their content instead of stretching to t…
SashaMIT Sep 2, 2026
b26f5ee
feat(home): lock face — wordmark, full-bleed ground and vignette, lar…
SashaMIT Sep 2, 2026
ecb6ecd
feat(documents): flat unified-sidebar layout
SashaMIT Sep 2, 2026
ba95c94
feat(library): New and Upload move into the toolbar menu
SashaMIT Sep 2, 2026
f175b70
feat(home): dock motion — eased pill width, height-led Apps reveal, l…
SashaMIT Sep 2, 2026
8c39c89
feat(home): Apps face at dock width, URUX motion tokens
SashaMIT Sep 2, 2026
05ff77b
fix(home): Apps face uncovers planted icons and never repeats the doc…
SashaMIT Sep 2, 2026
37bd411
fix(home): Apps face keeps the dock row on the floor through open and…
SashaMIT Sep 2, 2026
c9a4a66
fix(home): dock renders at final width on load; icons never leave the…
SashaMIT Sep 2, 2026
2a49ea5
feat(providers): service capsules own their Marketplace icons
SashaMIT Sep 3, 2026
0dc5b40
fix(protected-content): verify custody node provisioning via installe…
andersalm Sep 3, 2026
68fe34c
fix(home): restore first-run hint and CSS spacing
andersalm Sep 3, 2026
b49a5dc
fix(setup): package provider capsule metadata
andersalm Sep 3, 2026
c90ba87
merge: add verified protected content provisioning
andersalm Sep 3, 2026
64449ae
merge: package provider catalog metadata
andersalm Sep 3, 2026
4d9cb29
docs: record 0.7.1 development truth
andersalm Sep 3, 2026
37b4195
fix(runtime): resolve managed providers from installed bin
andersalm Sep 3, 2026
7b61913
docs: align 0.7.1 candidate review state
andersalm Sep 4, 2026
4383992
feat(runtime): Home Agent capsule gets a workspace object and its own…
SashaMIT Sep 3, 2026
498dab2
feat(home): the Shelf morphs into the Agent composer and opens the Ag…
SashaMIT Sep 3, 2026
7749855
feat(home-agent): the agent harness as its own capsule, on the typed …
SashaMIT Sep 3, 2026
47a44df
test(home-agent): capsule gate for the typed contract, the workspace …
SashaMIT Sep 3, 2026
450db53
fix(home-agent): bind capsule handoffs to Home
andersalm Sep 4, 2026
9e31558
fix(deps): refresh object-provider lock after provisioning
andersalm Sep 4, 2026
900d7e5
fix(home): unify Agent launch and layout upgrades
andersalm Sep 4, 2026
e108dd3
docs: record 0.7.1 candidate acceptance
andersalm Sep 4, 2026
f8c167f
docs(model): define inference placement and delivery plan
andersalm Sep 4, 2026
12d3826
docs(model): separate responses from agent execution
andersalm Sep 4, 2026
5ba1faa
fix(setup): satisfy clippy question_mark on the extracted-bundle guard
irzhywau Sep 8, 2026
6c61c99
Merge pull request #58 from Elacity/feat/0.7.1-integration
irzhywau 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
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
102 changes: 102 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,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
13 changes: 8 additions & 5 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,11 +187,14 @@ capsules, provider config, and `components.json`.
- Avoid volatile proof logs in durable docs. Store open work in `TASKS.md`,
verified current truth in `state.md`, and release history in
`elastos/CHANGELOG.md`.
- Keep standing instructions, READMEs, contracts and roadmaps independent of
the current release. Branch heads, PR numbers, commit IDs, CI results and
installation snapshots belong in `state.md` or a dated evidence record.
Contract versions, dependency pins and artifact provenance stay with the
contract or artifact they identify.
- Keep product documentation release-neutral. Use version numbers only for
exact release state, compatibility or migration, release notes or changelogs,
manifests, and exact Git refs or evidence. Keep standing instructions,
READMEs, contracts, and roadmaps independent of the current release.
Branch heads, PR numbers, commit IDs, CI results, and installation snapshots
belong in `state.md` or a dated evidence record. Contract versions,
dependency pins, and artifact provenance stay with the contract or artifact
they identify.

## Verification Gate

Expand Down
Loading
Loading