Conversation
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Fixture <fixture@example.invalid>
Signed-off-by: Fixture <fixture@example.invalid>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
Signed-off-by: Var1377 <vl331@cam.ac.uk>
|
|
|
||
| [workspace.dependencies] | ||
| acyclic-fs = { git = "https://github.com/acyclic-labs/sdk.git", rev = "22b4e752f46d8f6db6e024b3137fe520ef64bcc1", features = ["local", "native-watch", "native-mount"] } | ||
| acyclic-fs = { path = "../../../sdk/rust/crates/filesystem", features = ["local", "native-watch", "native-mount"] } |
There was a problem hiding this comment.
Release Builds Lose Dependency
acyclic-fs now resolves only from ../../../sdk/rust/crates/filesystem, but the release matrix checks out only this repository before running cargo build. Tagged releases will therefore fail dependency resolution before producing binaries or npm artifacts. Please either restore an immutable fetchable dependency or check out the SDK at the required relative path in the release workflow.
Prompt To Fix With AI
This is a comment left during a code review.
Path: Cargo.toml
Line: 15
Comment:
**Release Builds Lose Dependency**
`acyclic-fs` now resolves only from `../../../sdk/rust/crates/filesystem`, but the release matrix checks out only this repository before running `cargo build`. Tagged releases will therefore fail dependency resolution before producing binaries or npm artifacts. Please either restore an immutable fetchable dependency or check out the SDK at the required relative path in the release workflow.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| // An idle daemon must remain O(1) in repository size. The first | ||
| // consumer operation that needs authenticated contents performs the | ||
| // baseline; a timer alone is not such an operation. | ||
| if self.state == State::NeedsBaseline { | ||
| return; | ||
| } |
There was a problem hiding this comment.
Automatic Checkpointing Never Starts
A daemon now starts in NeedsBaseline, but the idle checkpoint timer immediately returns in that state. A plain AGENTS.md or shell-only agent can edit files after acyclic init without invoking another Acyclic content operation; in that case no watcher or baseline starts, so the edits create no checkpoint or recoverable history. This breaks the documented timer-based safety net for hosts without lifecycle hooks.
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/acyclic/src/pipeline.rs
Line: 1590-1595
Comment:
**Automatic Checkpointing Never Starts**
A daemon now starts in `NeedsBaseline`, but the idle checkpoint timer immediately returns in that state. A plain AGENTS.md or shell-only agent can edit files after `acyclic init` without invoking another Acyclic content operation; in that case no watcher or baseline starts, so the edits create no checkpoint or recoverable history. This breaks the documented timer-based safety net for hosts without lifecycle hooks.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| #[cfg(all(unix, test))] | ||
| #[allow( | ||
| unsafe_code, | ||
| reason = "kill(pid, 0) only tests for the process's existence; the \ | ||
| killpg that follows is guarded by a command-name match" | ||
| )] | ||
| pub fn sweep_stale_runs(spec_runs: &Path) { | ||
| fn sweep_stale_runs(spec_runs: &Path) { |
There was a problem hiding this comment.
Crashed Model Processes Survive
The Unix cleanup for speculative model processes is now compiled only in tests and is no longer called during daemon startup. Because these children run in their own process groups, force-killing or crashing the daemon leaves them running—and potentially billing—along with their PID and scratch files. Restarting the daemon cleans database rows but does not terminate these stale processes.
Prompt To Fix With AI
This is a comment left during a code review.
Path: crates/acyclic/src/spec_runner.rs
Line: 359-365
Comment:
**Crashed Model Processes Survive**
The Unix cleanup for speculative model processes is now compiled only in tests and is no longer called during daemon startup. Because these children run in their own process groups, force-killing or crashing the daemon leaves them running—and potentially billing—along with their PID and scratch files. Restarting the daemon cleans database rows but does not terminate these stale processes.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| - name: Checkout SDK | ||
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | ||
| with: | ||
| repository: acyclic-labs/sdk | ||
| ref: codex/generation-reader | ||
| path: sdk |
There was a problem hiding this comment.
The sole CI gate executes qualification code from the mutable codex/generation-reader branch. Updates to that external branch can change which checks this repository runs without a reviewed change here, making CI results non-reproducible. Pin the SDK checkout to an immutable commit and update it deliberately.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/ci.yml
Line: 29-34
Comment:
**CI Uses Mutable SDK**
The sole CI gate executes qualification code from the mutable `codex/generation-reader` branch. Updates to that external branch can change which checks this repository runs without a reviewed change here, making CI results non-reproducible. Pin the SDK checkout to an immutable commit and update it deliberately.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Comments Outside DiffThese findings sit on lines the diff does not cover, so they could not be posted inline. Each one leaves this list once its file changes.
|
Summary
acycliccrate and use the local SDK filesystem APIValidation
This remains a work in progress while the consumer-driven API and cross-platform qualification loop continues.
Summary by cubic
Centralizes plugin state, diffs, and filesystem paths in the local SDK so capture, merge, restore, and rewind share one implementation. The engine and protocol crates are folded into
acyclic, qualification runs through the SDK'squalifyharness, and the unfinished Safe Mode feature is removed.Behavior changes
dry_runconfiguration are rejected; explicit forks replacedry_run.Migration
acyclic-fsresolves from the local relative path../../../sdk/rust/crates/filesystem, and CI and acceptance tests run the SDK'squalifygate from that checkout; check out the SDK repo at../../../sdk.fusermount3 -u <repo>on Linux orumount -f <repo>on macOS before starting the new binary.Written for commit b6d25e9. Summary will update on new commits.