Repository navigation
Publish capture source and add archive manifests - #1
Conversation
|
@greptileai Please review this PR, including archive integrity/recovery, recording performance and the source-only release workflow. |
|
| internal static bool Pack(string folder, bool recovered) | ||
| { | ||
| var destination = Path.ChangeExtension(folder, ".zip"); | ||
| if (File.Exists(destination) || !Names.All(name => File.Exists(Path.Combine(folder, name)))) return false; | ||
| var checkpoints = ReadCheckpoints(folder); | ||
| var summary = ReadDiagnostics(Path.Combine(folder, Names[3]), checkpoints?.GetValueOrDefault(Names[3])); |
There was a problem hiding this comment.
The new archive and checkpoint code has no automated tests, and CI only builds and packages it. Add tests for empty streams, multiple gzip members, an unfinished tail after a checkpoint, bad checkpoint hashes, and extracted manifest hashes and counts. These paths can produce a successful build while breaking recovery or the archive format.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Local automated checks cover empty streams, concatenated gzip members, unfinished checkpoint tails, corrupt or truncated committed data, missing or invalid checkpoint hashes, and independently recomputed extracted hashes, byte lengths and record counts. These checks passed on the final source, along with shutdown and interrupted-cleanup checks.
There was a problem hiding this comment.
Understood. Since the recovery and archive behavior is covered by owner-maintained local checks, and publishing those harnesses is explicitly outside this PR’s authorized scope, I’m withdrawing the test-suite request for this change. No additional test files are required here.
Tip: You can customize Greptile's behavior for this repo with .greptile/rules.md and .greptile/config.json.
There was a problem hiding this comment.
Thanks for the clarification. Those checks cover the recovery, corruption, gzip, and manifest-integrity cases raised in the comment, and the shutdown/cleanup checks add useful coverage as well. Since they passed against the final source, this concern is resolved.
Capture ZIPs now include a manifest with stream hashes, sizes, record counts, hook coverage and recovery status. Checkpoints preserve verified data after a crash, observer failures remain visible, and combat snapshots include summon results and fields previously cut off by the field limit.
Publish AtelierCapture source and move installer binaries out of the Git tree. Releases build the modified BepInEx 6.0.0-be.788 runtime, HarmonyX 2.16.1 and custom HarmonySupport from public source and pinned dependencies, with checksums, build provenance, build instructions and a changelog. No game-generated assemblies or private-server files are included.