feat(cold-storage): export model placement inventory - #3656
Open
tang-vu wants to merge 1 commit into
Open
Conversation
This was referenced Sep 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
?## Summary
--status --jsonto LLM cold-storage toolingWhy this matters
Operators need to know which model artifacts occupy NVMe versus backup storage before capacity planning, moving disks, or restoring a model. The existing prose status is useful interactively but cannot feed dashboards, fleet inventory, or support evidence reliably.
Behavioral invariant: JSON status is read-only and classifies the same cache/cold directories, protected models, process usage, and access age as the human status path.
Overlap check
Searched open and closed PRs for
llm-cold-storage,cold storage JSON, and production fileods/scripts/llm-cold-storage.sh. PR #2627 configures retention age, #3638 adds a maximum storage limit, and #2365 repairs archive destination creation. None exports status. This PR does not change archive/restore policy and preserves each PR's independent advantage.Test plan
bash -n ods/scripts/llm-cold-storage.shbash ods/tests/test-llm-cold-storage-json.shgit diff --checkbats ods/tests/bats-tests/macos-bsd-compat.bats(BATS unavailable locally; CI remains the macOS contract gate)The boundary fixture creates a hot model, archived model, and cache symlink; it parses the real status JSON, verifies the three physical/logical states and summary, and checks that JSON cannot select a mutating default action.
Tradeoffs, portability, and rollback
Sizes remain human-readable
duvalues rather than byte counts to preserve parity with the existing command. Linux and macOS retain their respective access-time probes; Windows uses WSL. No live archive/restore was performed. Rollback restores positional command parsing and prose-only status without moving data.Generated with Codex
Batch compatibility
This PR is independently mergeable. For the September feature batch, the tested order is #3647 ? #3656. All ten heads cherry-picked without conflict onto
upstream/main@6ff9b4fc; the resulting synthetic integration head was17e0791c.Combined validation: all focused boundary suites passed,
make lintpassed, and every GitHub Actions check on all ten PRs passed.make testreaches the pre-existingHermes template bounds each model turnfailure; the same command/failure was reproduced on a cleanupstream/main@6ff9b4fcworktree. No live hardware, physical-print, archive/restore, or deployment claim is inferred from static/simulated validation.