You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f0c0a53
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: CHANGELOG.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
### Fixed
11
+
- Replace fabricated POSIX identities with Linux boot-scoped kernel start tokens and macOS process start/executable/argv probes; fail closed on query errors.
12
+
- Parse DMTF timezone offsets as signed minutes; use shared POSIX process-group teardown for directly owned children.
13
+
- Publish slot leases atomically, recover provably dead directory-lock owners, and report legacy locks/corrupt leases as blocked capacity.
14
+
- Align slot defaults with the eight-worker cap; cache process probes per scan and use cheap Windows liveness checks during termination waits.
15
+
- Require manifest hashes before patch application; preserve replacement common-directory lock owners on release.
16
+
- Return structured job-action data and a clear no-active-worker cancellation result; derive storage health from corruption counts.
17
+
- Bound output copying using chunk accumulation and a circular tail buffer; remove the redundant full health scan from async dispatch.
18
+
- Use the Antigravity CLI's configured model by default; document agent/model and the currently unenforced retention policy.
19
+
- Run CI on Windows, Linux and macOS, check committed bundle drift, and update GitHub Actions via Dependabot.
20
+
- Preserve job evidence during retention cleanup when timestamps are missing or malformed.
21
+
- Reject invalid cleanup clocks and negative or non-finite retention windows before scanning the ledger.
22
+
- Add regression coverage for retention boundaries, future timestamps, creation-time fallback, and dry-run/destructive cleanup safety.
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,7 +34,7 @@ The repository coordinates atomic subagent execution through an MCP server inter
34
34
### Focused Change Workflow
35
35
1.**Targeted Scope**: Always scope changes to explicit, non-overlapping target files or module prefixes. Avoid large refactors or incidental formatting changes across unrelated files.
36
36
2.**Worktree Isolation**: Never mutate shared state directly during exploratory or agent runs. The harness uses `isolation: "worktree"` for mutating delegations. Changes must be reviewed and explicitly applied.
37
-
3.**Disjoint Concurrency**: When splitting tasks across parallel workers, ensure disjoint target paths with a maximum concurrency limit of 4 worker slots(`MAX_WORKER_SLOTS = 4`).
37
+
3.**Disjoint Concurrency**: When splitting tasks across parallel workers, ensure disjoint target paths with a hard maximum of 8 worker slots, subject to adaptive CPU/memory admission (`MAX_WORKER_SLOTS = 8`).
38
38
4.**Untrusted Worker Output**: In this architecture, worker execution claims are considered untrusted until parent verification executes automated checks.
39
39
40
40
---
@@ -63,8 +63,8 @@ To verify MCP protocol communication independently:
63
63
npm run test:protocol
64
64
```
65
65
66
-
### Root Integration Tests
67
-
From the workspace root directory:
66
+
### Root Test Aliases
67
+
These convenience entry points import the same suites already included in `npm test`; they are not additional, orphaned tests. From the workspace root directory:
Copy file name to clipboardExpand all lines: README.md
+9-4Lines changed: 9 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -116,10 +116,12 @@ flowchart TD
116
116
2.**Untrusted Worker Principle**: Worker claims are untrusted by default. The parent orchestrator inspects actual git/filesystem diffs and executes automated tests before changes are accepted.
117
117
3.**Explicit Apply & Finalize**: Completed worktree changes are never merged automatically. The parent orchestrator reviews the patch hash, applies verified changes, and cleans up the worktree.
118
118
4.**Path Traversal Protection**: Target paths are constrained to the workspace root; directory traversal (`..`) attempts outside the workspace are rejected.
119
-
5.**Retention Policies**:
119
+
5.**Retention and Cleanup**:
120
120
121
-
***Worktrees**: Retained for 24 hours (1,440 minutes by default) to allow manual inspection and debugging before disposal.
122
-
***Evidence Ledger**: Job logs, terminal events, and hashes are kept for 14 days for forensic traceability.
121
+
***Worktrees**: Use explicit `agy_job finalize` after verification to remove a job's worktree. The `retentionMinutes` field (default 1,440) is reserved policy metadata, **not an automatic expiry timer**.
122
+
***Evidence Ledger**: Automatic ledger/outbox pruning is not currently wired into the runner or `reconcile`. The 14-day evidence constant is a policy target, not an enforced deletion schedule. Monitor disk usage and retain evidence needed for pending callbacks and review.
123
+
***Fail-safe Cleanup Library**: `collectEligibleJobs` is an explicit library operation (24-hour default window). It preserves active, unfinalized, callback-pending and corrupt jobs, and jobs with missing or malformed retention timestamps (`invalid_timestamp`). It rejects invalid clocks and negative/non-finite retention windows before scanning.
124
+
***Blocked Leases**: New owner-bearing slot locks recover when their owner is provably dead. Legacy nonce-only locks and corrupt leases are reported as blocked capacity and preserved. Verify no worker is still using the slot before manual repair; malformed data is not proof that a worker has stopped.
123
125
124
126
---
125
127
@@ -240,6 +242,9 @@ Synchronously delegates a bounded task to Antigravity and waits for the result.
240
242
*`timeoutSeconds` (number, default `300`): Execution timeout (1–1800s). Sizing target is under 25s.
*`resumeJobId` (string, optional): Resume a prior job attempt in its existing worktree.
245
+
*`agent` (string, optional): Antigravity agent identifier, forwarded as `--agent`.
246
+
*`model` (string, optional): Antigravity model identifier, forwarded as `--model`. When omitted, the harness uses the CLI's configured default rather than pinning a model.
247
+
*`retentionMinutes` (integer, optional, 10–10080): Reserved policy metadata; currently does not schedule deletion. Use explicit `agy_job finalize` for worktree cleanup.
243
248
244
249
```json
245
250
{
@@ -273,7 +278,7 @@ Dispatches a background worker task and returns an immediate acknowledgement. Wh
273
278
```
274
279
275
280
### `agy_job`
276
-
Inspects or manages the lifecycle of transactional jobs.
281
+
Inspects or manages the lifecycle of transactional jobs. Successful responses include the parsed job-action result in MCP `structuredContent`, including `state` and `attempts[].artifactPaths` for status, or `jobs` for list. The JSON text response is retained for compatibility.
retentionMinutes: z.number().int().min(10).max(10080).optional().describe('Reserved retention-policy metadata; automatic pruning is not implemented. Use explicit finalize for worktree cleanup.'),
0 commit comments