| fix(ci): use OBS staging for AMD64 publication Honor the selected artifact transport when publishing the assembled x86 package. Reuse the immutable release and exact Execd component already staged in OBS instead of downloading large archives from Buildkite again. Keep Buildkite transport explicit, retain the small SDK/admin handoffs, and stop on OBS transfer or verification failure. Cover both transports and failure propagation; all 425 driver and 34 release tests pass in Linux. Signed-off-by: WenYuLuo <luo1442@gmail.com> | 7 天前 |
| refactor(afs): isolate peer receive frame sizing Signed-off-by: luozhancheng <luozhancheng@huawei.com> | 6 天前 |
| feat(agent): initialize bindings from template parameters Initialize missing Bindings in shared activation using URL-form request parameters. Render template environment and mount values atomically, reuse the winning parameters under concurrency, and ignore new input for existing Bindings. Remove prepare operations and private launch snapshots. Let built-in Jiuwen supply model and workspace parameters lazily while retaining account-database credential protection in the account module. Refresh stale WebSocket Binding selections within Ingress before any backend handshake or business write. Preserve generation fences for HTTP and SSH and never replay application requests. Update behavior regressions and current architecture documentation. Signed-off-by: neatline <fuyipeng3@huawei.com> | 7 天前 |
| feat(afs): make published DFS data readable through external S3 storage Allow independent DFS nodes to read committed data without a live writer. Select external durability when initializing a filesystem and retain the Node-replicated path when no external backend is configured. Keep bounded publication, immutable payload accounting, verified content caching and close-to-open read authority within their existing correctness contracts. Keep third-party service deployment and experimental collectors outside the product tree. Consolidate connection, architecture and acceptance documents around supported behavior and explicit limits. Refs: #15 Constraint: Preserve successful fsync, complete BLAKE3, permissions, bounded authorization and fail-closed drain while following current master engineering. Rejected: Bundle SeaweedFS deployment or use performance experiments as the product acceptance gate | external services and performance investigation have separate ownership. Confidence: high Scope-risk: moderate Directive: External mode is single-local-copy; caches are disposable and metadata durability remains independently required. Preserve original candidate evidence identities. Tested: Fixed public Linux ARM image; external92/read55 focused tests; DFS library593 passed/1 existing ignored; config14, Meta59/2 ignored, REST7; fmt and strict workspace all-targets/all-features Clippy; release bins; same-binary three-VM 64MiB publish/read, permissions, failed-upload retry, sparse/truncate, writer-exit source read, local-file normal restart and clean exits; docs/render/diff checks. Not-tested: Complete POSIX, crash/HA, immediate new-session write takeover, P2P/reference-aware object GC, new unified ON installation package or performance qualification. Signed-off-by: luozhancheng <luozhancheng@huawei.com> | 12 天前 |
| 修改Dockerfile | 16 小时前 |
| feat(snapshot): add unified storage and safe AFS reclamation Support local-only storage, S3 with node-local caching, and shared filesystem capture and restore through a common checkpoint storage crate. Capture AFS snapshots directly and retain lazy restore inputs for the execution lifetime. Keep anonymous checkpoints owned by their Environment. Let Coordinator reclaim shared artifacts after execution fencing, and reject deletion of snapshots in use with the Sandbox and template owners in HTTP and SDK error details. Persist AFS Meta deltas with recoverable checkpoints, bound idempotency retention, and compact Watch history with resynchronization. Protect COW and live readers while collecting unreferenced versions and physical chunks. Retry unlink/rmdir CAS conflicts with the same operation identity and fresh permission, inode and directory checks; retain typed pre-forward route-change evidence for safe retry. Integrate master@1e9ae5f native read/write pipelines while retaining GC safety. Pin each native write generation through upload and publication, reserve chunks before native uploads, and drain catalog admission before GC checkpoint/WAL rotation. Retire collected Peer residents without releasing live reader charges. Regression tests cover native reservation rejection, publication reference lifetime, catalog-install exclusion, and checkpoint recovery with a torn WAL tail. Validation on master@1e9ae5f: - Linux AFS: 1,572 passed, 68 ignored, including four rebase regression tests. - Checkpoint storage: 6 passed; fmt and strict workspace Clippy passed. - Python SDK: 296 passed and 89 subtests; E2E driver unit tests: 386 passed. - Documentation and whitespace checks passed. - Real Firecracker E2E and performance were not rerun after this rebase. Validation before the master@1e9ae5f rebase (runtime tests not rerun after rebase): - Linux AFS: 1,359 passed, 63 ignored; Python checks: 386 passed. - Linux fmt and strict workspace/all-targets/all-features Clippy passed. - Documentation checks and staged whitespace checks passed. - Real FUSE: all 64 contested removals passed; 55 actual conflicts retried. - Real AFS/Firecracker: six pause/resume cycles converged after Environment deletion, with COW, node-session replacement and Coordinator reclaim checks. - Matched-runtime ABBA regression: 40 timed wakes, each with 12 requests through two Ingress replicas and exactly one physical restore, all passed functionally. Performance remains under review: cold pause P95 rose from 1.582s to 3.684s, driven by one 5.499s pause with 5.023s in the VMM snapshot phase. Median latency did not regress materially; causation has not been established. Initial FC measurements with different runtime image hashes were excluded from comparison. Runtime tests used two isolated executors on one KVM host, not physical-host HA. Signed-off-by: WenYuLuo <luo1442@gmail.com> | 8 天前 |
| !82 merge github-pr-101 into master [mirror] openJiuwen-ai/agent-dx#101: fix(runtime): avoid checkpoint handoff and resume stalls Created-by: openjiuwen-sync Commit-by: WenYuLuo Merged-by: robbluo Description: Paired: [GitHub #101](https://github.com/openJiuwen-ai/agent-dx/pull/101) ↔ [GitCode !82](https://gitcode.com/openJiuwen/agent-dx/merge_requests/82) <!-- bot1-mirror-meta --> github_pr: 101 head_repo: WenYuLuo/agent-dx head_ref: fix/checkpoint-handoff-latency-20261022 head_sha: db090db00c617d18579c8d0e628018284e60fa39 base_repo: openJiuwen-ai/agent-dx base_ref: master github_repo: openJiuwen-ai/agent-dx base_branch: master base_sha: ff9353b0c0b0f602ddd1ca475fc4807bad80002d github_user: WenYuLuo <!-- /bot1-mirror-meta --> GitHub PR mirror for CodeArts CI. <!-- bot1-source-body --> Repeated checkpoint preparation can stall after restore while Execd waits for a Tokio blocking-task completion. Periodic node reconciliation can also block unrelated environments and close allocation admission behind one slow operation. This PR removes those waits while preserving checkpoint durability, ownership fencing, and runtime-control access under block policies. - Deliver each checkpoint handoff-open result through a fresh Unix completion socket that closes before Prepared. Preserve the existing reader across checkpoints, propagate failures, and let accepted opens finish after caller cancellation. - Reconcile each Environment through one atomic command in its existing serial controller. Keep at most one pending comparison per Environment and bound the reporting loop's wait, so a blocked restore does not stop other creates, pause/resume operations, catalog refreshes, or capacity sampling. - Keep node-wide barriers for startup recovery, full draining, session invalidation, and invalid authority catalogs. Inspection briefly closes new allocation while validating the complete catalog and runtime inventory; admission reopens before waiting for per-Environment work. Publish that readiness even when a local comparison fails quickly. - Fence orphan cleanup by Environment ID until deletion is confirmed, including lost responses and later executions discovered during cleanup. Reject stale catalog results and protect controllers admitted during inspection. Newly adopted controllers reject lifecycle requests until their own authority check completes. Run whole-directory checkpoint sweeping only under the startup barrier; live controllers release their own artifacts and retain restore inputs. - Replay live journaled results in their controller queues instead of putting a journal-wide writer in the reporting loop. Keep EnsureRunning gate/controller timing separate. - Cover stateful block policy at Start/update RPCs, target-node restore ACLs and credentials, and the production Execd process reconnecting to a different control endpoint. ### Validation On macOS, using two build/test workers: - **287 distinct Rust tests passed**: adxlet integration suites (235), focused adxlet library tests (20), Execd control/HTTP/gRPC process tests (27), and checkpoint handoff tests (5). - The reconciliation suite includes blocked-restore isolation, independent pause/resume and cleanup, 16 overlapping monitor/report rounds, in-progress checkpoint directory protection, orphan deletion failures and lost responses, blocked journal commits, and session invalidation. - make rust-check JOBS=2 passed: formatting, strict default-workspace Clippy across all targets/features, and the production unwrap policy. Documentation and whitespace checks passed. - The native library run excludes five Linux-only managed_mounts tests that require /proc/self/fd. AFS crates follow the repository's default workspace-check exclusions. The macOS Coordinator gRPC and backend UDS tests use controlled backend fixtures. Execd process tests use real TCP gRPC and Unix socket traffic with FIFO checkpoint handoff fixtures. ### Linux AKernel standalone acceptance Passed at db090db00c617d18579c8d0e628018284e60fa39 with AKernel 6ea004125eb4365ba06ba3c7b21c4fd80e4cdaac, real sandboxd/runsc, native XFS, runtime-control enabled, and 512 MiB workloads. The complete ADX release and guest Execd were rebuilt and verified against the package manifest. Background restore and synchronous checkpoint persistence stayed enabled. The node reporting interval was one second; resource observations were valid for 30 seconds. - **11 scenario groups passed, creating 20 Environments and completing 17 real runsc restores.** Both NetworkPolicy.block() and stateful default-deny policies retained control access. A blocked outbound connection to another port on the control-node address succeeded only while the policy was cleared; restored workloads remained blocked. - While A spent about **49 seconds** waiting for its readiness probe during restore, another Environment was created in **0.87 s** and B completed pause, resume, and a successful service request in **3.08 s**. After the 30-second resource-validity window, another create still completed in **0.40 s** while A remained pending. - Three rounds of **four concurrent pauses and four concurrent resumes** completed. Each round admitted another Environment and executed its command while all four lifecycle operations were still pending. Each resume round produced exactly four backend restores. - **16 concurrent gateway requests** to one paused Environment all succeeded and triggered **one** backend restore. Two concurrent create_snapshot calls admitted another independent create; two concurrent creates from those Snapshots restored the expected service state. - The independent service handled **2,372 HTTPS requests with zero failures and no automatic retries**, with **3.33 ms P99** and **42.92 ms maximum** latency. - Cleanup converged to zero Environments, artifact holds, artifacts, checkpoint directories, runtime processes, and runtime-control connections. The isolated test container and network were removed. This acceptance used one Linux host, one runsc execution node, and one embedded Ingress with XFS. It does not cover CCE, multiple Ingress replicas, cross-node recovery, Firecracker, or shared-storage backends. Detailed results and sanitized evidence are retained locally. <!-- /bot1-source-body --> See merge request: openJiuwen/agent-dx!82 | 5 天前 |
| feat(agent): initialize bindings from template parameters Initialize missing Bindings in shared activation using URL-form request parameters. Render template environment and mount values atomically, reuse the winning parameters under concurrency, and ignore new input for existing Bindings. Remove prepare operations and private launch snapshots. Let built-in Jiuwen supply model and workspace parameters lazily while retaining account-database credential protection in the account module. Refresh stale WebSocket Binding selections within Ingress before any backend handshake or business write. Preserve generation fences for HTTP and SSH and never replay application requests. Update behavior regressions and current architecture documentation. Signed-off-by: neatline <fuyipeng3@huawei.com> | 7 天前 |
| !82 merge github-pr-101 into master [mirror] openJiuwen-ai/agent-dx#101: fix(runtime): avoid checkpoint handoff and resume stalls Created-by: openjiuwen-sync Commit-by: WenYuLuo Merged-by: robbluo Description: Paired: [GitHub #101](https://github.com/openJiuwen-ai/agent-dx/pull/101) ↔ [GitCode !82](https://gitcode.com/openJiuwen/agent-dx/merge_requests/82) <!-- bot1-mirror-meta --> github_pr: 101 head_repo: WenYuLuo/agent-dx head_ref: fix/checkpoint-handoff-latency-20261022 head_sha: db090db00c617d18579c8d0e628018284e60fa39 base_repo: openJiuwen-ai/agent-dx base_ref: master github_repo: openJiuwen-ai/agent-dx base_branch: master base_sha: ff9353b0c0b0f602ddd1ca475fc4807bad80002d github_user: WenYuLuo <!-- /bot1-mirror-meta --> GitHub PR mirror for CodeArts CI. <!-- bot1-source-body --> Repeated checkpoint preparation can stall after restore while Execd waits for a Tokio blocking-task completion. Periodic node reconciliation can also block unrelated environments and close allocation admission behind one slow operation. This PR removes those waits while preserving checkpoint durability, ownership fencing, and runtime-control access under block policies. - Deliver each checkpoint handoff-open result through a fresh Unix completion socket that closes before Prepared. Preserve the existing reader across checkpoints, propagate failures, and let accepted opens finish after caller cancellation. - Reconcile each Environment through one atomic command in its existing serial controller. Keep at most one pending comparison per Environment and bound the reporting loop's wait, so a blocked restore does not stop other creates, pause/resume operations, catalog refreshes, or capacity sampling. - Keep node-wide barriers for startup recovery, full draining, session invalidation, and invalid authority catalogs. Inspection briefly closes new allocation while validating the complete catalog and runtime inventory; admission reopens before waiting for per-Environment work. Publish that readiness even when a local comparison fails quickly. - Fence orphan cleanup by Environment ID until deletion is confirmed, including lost responses and later executions discovered during cleanup. Reject stale catalog results and protect controllers admitted during inspection. Newly adopted controllers reject lifecycle requests until their own authority check completes. Run whole-directory checkpoint sweeping only under the startup barrier; live controllers release their own artifacts and retain restore inputs. - Replay live journaled results in their controller queues instead of putting a journal-wide writer in the reporting loop. Keep EnsureRunning gate/controller timing separate. - Cover stateful block policy at Start/update RPCs, target-node restore ACLs and credentials, and the production Execd process reconnecting to a different control endpoint. ### Validation On macOS, using two build/test workers: - **287 distinct Rust tests passed**: adxlet integration suites (235), focused adxlet library tests (20), Execd control/HTTP/gRPC process tests (27), and checkpoint handoff tests (5). - The reconciliation suite includes blocked-restore isolation, independent pause/resume and cleanup, 16 overlapping monitor/report rounds, in-progress checkpoint directory protection, orphan deletion failures and lost responses, blocked journal commits, and session invalidation. - make rust-check JOBS=2 passed: formatting, strict default-workspace Clippy across all targets/features, and the production unwrap policy. Documentation and whitespace checks passed. - The native library run excludes five Linux-only managed_mounts tests that require /proc/self/fd. AFS crates follow the repository's default workspace-check exclusions. The macOS Coordinator gRPC and backend UDS tests use controlled backend fixtures. Execd process tests use real TCP gRPC and Unix socket traffic with FIFO checkpoint handoff fixtures. ### Linux AKernel standalone acceptance Passed at db090db00c617d18579c8d0e628018284e60fa39 with AKernel 6ea004125eb4365ba06ba3c7b21c4fd80e4cdaac, real sandboxd/runsc, native XFS, runtime-control enabled, and 512 MiB workloads. The complete ADX release and guest Execd were rebuilt and verified against the package manifest. Background restore and synchronous checkpoint persistence stayed enabled. The node reporting interval was one second; resource observations were valid for 30 seconds. - **11 scenario groups passed, creating 20 Environments and completing 17 real runsc restores.** Both NetworkPolicy.block() and stateful default-deny policies retained control access. A blocked outbound connection to another port on the control-node address succeeded only while the policy was cleared; restored workloads remained blocked. - While A spent about **49 seconds** waiting for its readiness probe during restore, another Environment was created in **0.87 s** and B completed pause, resume, and a successful service request in **3.08 s**. After the 30-second resource-validity window, another create still completed in **0.40 s** while A remained pending. - Three rounds of **four concurrent pauses and four concurrent resumes** completed. Each round admitted another Environment and executed its command while all four lifecycle operations were still pending. Each resume round produced exactly four backend restores. - **16 concurrent gateway requests** to one paused Environment all succeeded and triggered **one** backend restore. Two concurrent create_snapshot calls admitted another independent create; two concurrent creates from those Snapshots restored the expected service state. - The independent service handled **2,372 HTTPS requests with zero failures and no automatic retries**, with **3.33 ms P99** and **42.92 ms maximum** latency. - Cleanup converged to zero Environments, artifact holds, artifacts, checkpoint directories, runtime processes, and runtime-control connections. The isolated test container and network were removed. This acceptance used one Linux host, one runsc execution node, and one embedded Ingress with XFS. It does not cover CCE, multiple Ingress replicas, cross-node recovery, Firecracker, or shared-storage backends. Detailed results and sanitized evidence are retained locally. <!-- /bot1-source-body --> See merge request: openJiuwen/agent-dx!82 | 5 天前 |
| fix(ci): download pinned sandboxd bundles from OBS Replace repeated Buildkite backend-file downloads with one immutable OBS archive. Verify its size and SHA256, sandboxd revision, complete file set, per-file digests and native ELF architecture before atomically installing the backend. Cover corrupted, incompatible and unsafe bundles and download failures. Keep source rebuilds as an explicit maintenance tool and document the archive pin. Signed-off-by: robbluo <luo1442@gmail.com> | 14 天前 |
| chore(release): prepare Python packages for 0.1.0rc2 Signed-off-by: robbluo <luo1442@gmail.com> | 15 天前 |
| feat(platform): complete sandbox runtime capabilities Carry typed rootfs, mount, network, data-plane security, resource-limit, failover, and entrypoint options through the public API and Instance control path. Extend Node Manager, sandboxd/Firecracker integration, RRT, and the Python SDK for the corresponding lifecycle and data-plane operations. Expand standalone and Firecracker acceptance coverage, backend provenance, and operator documentation for the supported contract. Signed-off-by: robbluo <luo1442@gmail.com> | 1 个月前 |
| feat: complete Jiuwen gateway and sandbox lifecycle integration Signed-off-by: neatline <fuyipeng3@huawei.com> | 12 天前 |
| fix(scheduling): preserve cancelled admission diagnostics Return typed placement diagnostics when an unassigned queue request is confirmed cancelled, and preserve the known not-started outcome through JSON, SSE and the Python SDK. Retain service failures as HTTP errors after retry exhaustion and include the prepared environment identity. Track local claims across Redis writes so queue expiry cannot acknowledge cancellation while assignment is uncertain. Cache confirmed cancellations and preserve ambiguous-result retry identity. Cover resource non-fit, cancellation and assignment races, replay, raw HTTPS JSON/SSE responses, resource baselines and SDK diagnostics. Signed-off-by: robbluo <luo1442@gmail.com> | 8 天前 |
| feat(agent): initialize bindings from template parameters Initialize missing Bindings in shared activation using URL-form request parameters. Render template environment and mount values atomically, reuse the winning parameters under concurrency, and ignore new input for existing Bindings. Remove prepare operations and private launch snapshots. Let built-in Jiuwen supply model and workspace parameters lazily while retaining account-database credential protection in the account module. Refresh stale WebSocket Binding selections within Ingress before any backend handshake or business write. Preserve generation fences for HTTP and SSH and never replay application requests. Update behavior regressions and current architecture documentation. Signed-off-by: neatline <fuyipeng3@huawei.com> | 7 天前 |
| feat(snapshot): add unified storage and safe AFS reclamation Support local-only storage, S3 with node-local caching, and shared filesystem capture and restore through a common checkpoint storage crate. Capture AFS snapshots directly and retain lazy restore inputs for the execution lifetime. Keep anonymous checkpoints owned by their Environment. Let Coordinator reclaim shared artifacts after execution fencing, and reject deletion of snapshots in use with the Sandbox and template owners in HTTP and SDK error details. Persist AFS Meta deltas with recoverable checkpoints, bound idempotency retention, and compact Watch history with resynchronization. Protect COW and live readers while collecting unreferenced versions and physical chunks. Retry unlink/rmdir CAS conflicts with the same operation identity and fresh permission, inode and directory checks; retain typed pre-forward route-change evidence for safe retry. Integrate master@1e9ae5f native read/write pipelines while retaining GC safety. Pin each native write generation through upload and publication, reserve chunks before native uploads, and drain catalog admission before GC checkpoint/WAL rotation. Retire collected Peer residents without releasing live reader charges. Regression tests cover native reservation rejection, publication reference lifetime, catalog-install exclusion, and checkpoint recovery with a torn WAL tail. Validation on master@1e9ae5f: - Linux AFS: 1,572 passed, 68 ignored, including four rebase regression tests. - Checkpoint storage: 6 passed; fmt and strict workspace Clippy passed. - Python SDK: 296 passed and 89 subtests; E2E driver unit tests: 386 passed. - Documentation and whitespace checks passed. - Real Firecracker E2E and performance were not rerun after this rebase. Validation before the master@1e9ae5f rebase (runtime tests not rerun after rebase): - Linux AFS: 1,359 passed, 63 ignored; Python checks: 386 passed. - Linux fmt and strict workspace/all-targets/all-features Clippy passed. - Documentation checks and staged whitespace checks passed. - Real FUSE: all 64 contested removals passed; 55 actual conflicts retried. - Real AFS/Firecracker: six pause/resume cycles converged after Environment deletion, with COW, node-session replacement and Coordinator reclaim checks. - Matched-runtime ABBA regression: 40 timed wakes, each with 12 requests through two Ingress replicas and exactly one physical restore, all passed functionally. Performance remains under review: cold pause P95 rose from 1.582s to 3.684s, driven by one 5.499s pause with 5.023s in the VMM snapshot phase. Median latency did not regress materially; causation has not been established. Initial FC measurements with different runtime image hashes were excluded from comparison. Runtime tests used two isolated executors on one KVM host, not physical-host HA. Signed-off-by: WenYuLuo <luo1442@gmail.com> | 8 天前 |
| !8 fix: support namespaced ar agent urns From: @neatline Reviewed-by: @slichengsong | 3 个月前 |
| refactor: unify Environment APIs, SDK and deployment tooling Expose adx-environment 0.1.0rc1, adx_environment.Environment and the public /api/environment/v1/environments contract with environmentId. Adapt Agent, Gateway, platform execution types and protocols, SDK callers, examples, deployment configuration and observability to the Environment model. Align Buildkite labels and artifact paths, and share repository release-tag gates across SDK and admin while keeping package versions independent. Include adx-activator in release packages and add real standalone and embedded Activator deployment acceptance. Correct documentation, SVG diagrams, English language consistency and external protocol references. Preserve the external sandboxd API and AKernel's public Sandbox interface. Validate on refactor@0011cfb with fmt, strict Clippy, unwrap policy, 849 Rust tests and 19 crate doctest gates; 293 SDK tests plus 89 subtests, 22 admin tests, and OpenAPI, documentation and CI contracts. Real Activator acceptance passed 9/9 cases per mode, and AKernel passed 17 runsc E2E groups with zero skips using the prior cd3e38e artifact snapshot. Deployment acceptance and release assembly were not rerun after rebase. Signed-off-by: robbluo <luo1442@gmail.com> | 14 天前 |
| feat(snapshot): add unified storage and safe AFS reclamation Support local-only storage, S3 with node-local caching, and shared filesystem capture and restore through a common checkpoint storage crate. Capture AFS snapshots directly and retain lazy restore inputs for the execution lifetime. Keep anonymous checkpoints owned by their Environment. Let Coordinator reclaim shared artifacts after execution fencing, and reject deletion of snapshots in use with the Sandbox and template owners in HTTP and SDK error details. Persist AFS Meta deltas with recoverable checkpoints, bound idempotency retention, and compact Watch history with resynchronization. Protect COW and live readers while collecting unreferenced versions and physical chunks. Retry unlink/rmdir CAS conflicts with the same operation identity and fresh permission, inode and directory checks; retain typed pre-forward route-change evidence for safe retry. Integrate master@1e9ae5f native read/write pipelines while retaining GC safety. Pin each native write generation through upload and publication, reserve chunks before native uploads, and drain catalog admission before GC checkpoint/WAL rotation. Retire collected Peer residents without releasing live reader charges. Regression tests cover native reservation rejection, publication reference lifetime, catalog-install exclusion, and checkpoint recovery with a torn WAL tail. Validation on master@1e9ae5f: - Linux AFS: 1,572 passed, 68 ignored, including four rebase regression tests. - Checkpoint storage: 6 passed; fmt and strict workspace Clippy passed. - Python SDK: 296 passed and 89 subtests; E2E driver unit tests: 386 passed. - Documentation and whitespace checks passed. - Real Firecracker E2E and performance were not rerun after this rebase. Validation before the master@1e9ae5f rebase (runtime tests not rerun after rebase): - Linux AFS: 1,359 passed, 63 ignored; Python checks: 386 passed. - Linux fmt and strict workspace/all-targets/all-features Clippy passed. - Documentation checks and staged whitespace checks passed. - Real FUSE: all 64 contested removals passed; 55 actual conflicts retried. - Real AFS/Firecracker: six pause/resume cycles converged after Environment deletion, with COW, node-session replacement and Coordinator reclaim checks. - Matched-runtime ABBA regression: 40 timed wakes, each with 12 requests through two Ingress replicas and exactly one physical restore, all passed functionally. Performance remains under review: cold pause P95 rose from 1.582s to 3.684s, driven by one 5.499s pause with 5.023s in the VMM snapshot phase. Median latency did not regress materially; causation has not been established. Initial FC measurements with different runtime image hashes were excluded from comparison. Runtime tests used two isolated executors on one KVM host, not physical-host HA. Signed-off-by: WenYuLuo <luo1442@gmail.com> | 8 天前 |
| refactor: unify Environment APIs, SDK and deployment tooling Expose adx-environment 0.1.0rc1, adx_environment.Environment and the public /api/environment/v1/environments contract with environmentId. Adapt Agent, Gateway, platform execution types and protocols, SDK callers, examples, deployment configuration and observability to the Environment model. Align Buildkite labels and artifact paths, and share repository release-tag gates across SDK and admin while keeping package versions independent. Include adx-activator in release packages and add real standalone and embedded Activator deployment acceptance. Correct documentation, SVG diagrams, English language consistency and external protocol references. Preserve the external sandboxd API and AKernel's public Sandbox interface. Validate on refactor@0011cfb with fmt, strict Clippy, unwrap policy, 849 Rust tests and 19 crate doctest gates; 293 SDK tests plus 89 subtests, 22 admin tests, and OpenAPI, documentation and CI contracts. Real Activator acceptance passed 9/9 cases per mode, and AKernel passed 17 runsc E2E groups with zero skips using the prior cd3e38e artifact snapshot. Deployment acceptance and release assembly were not rerun after rebase. Signed-off-by: robbluo <luo1442@gmail.com> | 14 天前 |
| fix(afs): keep shared runtime and release boundaries safe Use the persisted registration lease remaining lifetime with a conservative monotonic request-start cutoff; retain expired-session and epoch fail-closed handling. Keep jemalloc while validating OwnerFs-only and mixed Node runtime. Synchronize packaged defaults, isolate DFS-only code, initialize TLS locally, and carry allocator notices through the existing AFS package notice. A deterministic regression also exposed cache namespace lock retention through a duplicated open-file description. Join the cache worker before explicit unlock and retain OS error details, without retry or budget changes. Constraint: Preserve authorization, complete BLAKE3, fsync, close-to-open and independent S3 budgets; do not modify public build/CI code or third-party sources. Rejected: Swallow every authorization refresh failure or disable jemalloc | this changes the agreed lifecycle or allocator contract. Confidence: high Scope-risk: moderate Directive: Upgrade Meta and Node together; missing relative lease lifetime fails closed. Keep historical performance evidence tied to its original candidate. Tested: Fixed Linux ARM image; library1020 passed/32 ignored, six contract suites114 passed/2 ignored, allocator3; default AFS and strict workspace lint, feature-specific lint, fmt, GNU release; release tools34; real OwnerFs-only and mixed modes70 checks each with12 normal exits and jemalloc metrics; docs and diff. Not-tested: No new DFS performance, real clock-step/partition fault matrix, bind ON extension, full POSIX, unified release/install, x86/musl, hardware RDMA or full CI/CD. Original intermittent cache-lock failure's fork source remains unproven; deterministic lifecycle regression passes. Signed-off-by: luozhancheng <luozhancheng@huawei.com> | 10 天前 |
| fix: implement AgentRuntime Python SDK event logging Add the Python SDK bootstrap, request context, streaming output, EventLog persistence, turn lifecycle, and DataSystem-backed storage needed by agent functions. Keep startup failures available for invocation-time reporting, use a shared event loop, enforce session ownership, and validate persisted records so runtime failures remain controlled. Canonicalize cross-language key hashing for HTML and Unicode separator characters, align function metadata fixtures with the leaf-name contract, and add packaging, documentation, and unit coverage. Co-Authored-By: GPT-5 Signed-off-by: neatline <fuyipeng3@huawei.com> | 2 个月前 |
| refactor: unify Environment APIs, SDK and deployment tooling Expose adx-environment 0.1.0rc1, adx_environment.Environment and the public /api/environment/v1/environments contract with environmentId. Adapt Agent, Gateway, platform execution types and protocols, SDK callers, examples, deployment configuration and observability to the Environment model. Align Buildkite labels and artifact paths, and share repository release-tag gates across SDK and admin while keeping package versions independent. Include adx-activator in release packages and add real standalone and embedded Activator deployment acceptance. Correct documentation, SVG diagrams, English language consistency and external protocol references. Preserve the external sandboxd API and AKernel's public Sandbox interface. Validate on refactor@0011cfb with fmt, strict Clippy, unwrap policy, 849 Rust tests and 19 crate doctest gates; 293 SDK tests plus 89 subtests, 22 admin tests, and OpenAPI, documentation and CI contracts. Real Activator acceptance passed 9/9 cases per mode, and AKernel passed 17 runsc E2E groups with zero skips using the prior cd3e38e artifact snapshot. Deployment acceptance and release assembly were not rerun after rebase. Signed-off-by: robbluo <luo1442@gmail.com> | 14 天前 |
| fix(ci): reuse the Rust 1.95 builder and configure persistent Cargo caches Signed-off-by: robbluo <luo1442@gmail.com> | 1 个月前 |
| refactor(rust): enforce workspace coding guidelines | 1 个月前 |