Skip to content

Dev - #8

Merged
AbrahamGeorge8547 merged 17 commits into
mainfrom
dev
Oct 30, 2026
Merged

Dev#8
AbrahamGeorge8547 merged 17 commits into
mainfrom
dev

Conversation

@AbrahamGeorge8547

Copy link
Copy Markdown
Member

No description provided.

AbrahamGeorge8547 and others added 15 commits October 30, 2026 11:41
…it (R-838)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…R-838)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e, and freeing it (R-839)

The daemon finds each checkout from the ledger and git worktree list, gives
its build output by its key and by where its target and Android links point
(also into the older */tasks/checkouts layout), and states it: in_use,
active, idle, merged, gone or old. Peers report their copies with the build
output over a new cache request and drop them on request, keeping any a job
uses; retention's sweep now deletes a copy's output with the copy. gc deletes
only build output and peer copies, never a working tree, never in_use.
CLI loadtable gc [--delete STATES] [--idle-days N] [--json], MCP tool gc.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ut (R-839)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e them; gc --free (R-840)

The Disk tab shows the gc report as a card per machine and one row per
checkout with its size on every machine that reported. Rows a job uses
have no tick box; Free asks first and then sends gc with the ticked
checkouts. The daemon now frees checkouts by name or full path whatever
their state (still never one in use), and loadtable gc --free does the
same from the CLI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…afted

On a push to main, release.yml reads the workspace version; when vX.Y.Z
is already tagged it stops, otherwise it requires docs/releases/vX.Y.Z.md,
builds every target, tags the built commit and drafts the release. A
pushed tag works as before; a manual run on a branch only builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…version

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…; Kotlin daemon folder writable (R-841 to R-843)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ide a sandbox, Kotlin folder (R-841 to R-843)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…is greyed (R-844)

After gc frees, each machine's total drops by the bytes freed on it, here or
on a peer, so the card no longer shows the size from before. With nothing
ticked the Free button reads just Free and, like every button that cannot be
pressed, is drawn in faint text instead of red.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e button (R-844)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
….1.3 was to carry

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-30T12:52:01.087867Z f9dd767 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f9dd767e3c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +529 to +531
let chosen = delete.contains(&d.row.state) || checkouts.contains(&d.row.checkout);
if d.row.state == GcState::InUse || !chosen {
continue;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Synchronize local cache deletion with job admission

If another client submits a job while GC is measuring directories or waiting for peer reports, this check still uses the state computed from the initial ledger snapshot. server::accept_loop handles connections concurrently, so the new job can start building before gc_delete removes its output directory. This violates the promise that queued or running jobs are protected and can fail an otherwise valid build. Recheck checkout usage under synchronization shared with job admission/start, and retain that protection through deletion.

Useful? React with 👍 / 👎.

Comment on lines +494 to +496
.filter(|d| d.row.state.reclaimable() && d.row.freed_bytes == 0)
.flat_map(|d| &d.row.held)
.filter(|h| h.machine == m.name)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Track remaining output separately from bytes already freed

When deletion succeeds locally but a peer's drop request fails, the row has positive freed_bytes even though the peer still holds its output. This filter then excludes the entire row from every machine's reclaimable total, incorrectly reporting that the peer's remaining bytes cannot be freed. The Disk tab also uses freed_bytes == 0 to enable selection, preventing a retry until the user refreshes. Track remaining holdings per machine rather than treating any successful deletion as completion of the whole row.

Useful? React with 👍 / 👎.

Comment on lines +53 to +54
pushed_main = os.environ['GITHUB_EVENT_NAME'] == 'push' and ref_type == 'branch' and ref_name == 'main'
release = ref_type == 'tag' or (pushed_main and os.environ['TAGGED'] != 'true')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add requirement tracking and tests for automatic releases

The release workflow now automatically tags and drafts an untagged workspace version on a push to main, but this changed behavior has neither a requirement row nor a requirement-named test. Repository-wide searches for the release workflow and its new gating logic found only the workflow and release documentation; the added R-838–R-844 rows cover other changes. AGENTS.md requires both tracking and a named test for new or changed behavior. Add coverage for an untagged main push, an already-tagged version, and a manual branch run before relying on this release path.

AGENTS.md reference: AGENTS.md:L32-L34

Useful? React with 👍 / 👎.

AbrahamGeorge8547 and others added 2 commits October 30, 2026 18:24
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AbrahamGeorge8547
AbrahamGeorge8547 merged commit 0240a4e into main Oct 30, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant