Skip to content

Publish capture source and add archive manifests - #1

Merged
LightCyan01 merged 3 commits into
mainfrom
capture/source-release-manifest
Oct 10, 2026
Merged

LightCyan01 merged 3 commits into
mainfrom
capture/source-release-manifest

Conversation

@LightCyan01

@LightCyan01 LightCyan01 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

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.

@LightCyan01
LightCyan01 marked this pull request as ready for review October 10, 2026 07:09
@LightCyan01

Copy link
Copy Markdown
Owner Author

@greptileai Please review this PR, including archive integrity/recovery, recording performance and the source-only release workflow.

@greptile-apps

greptile-apps Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High impact] The PR appears safe to merge; the remaining request for archive recovery tests is non-blocking.

Fix All in CodexFindings

  1. P2 Archive recovery has no tests ▶

Summary

Publishes capture source and builds release installers from source with pinned dependencies. Capture ZIPs now include stream hashes, counts, hook coverage, and recovery details.

  • AtelierCapture records API traffic and selected battle activity.
  • Each capture ZIP includes stream details and recovery status.
  • Releases build the installer, capture plugin, and modified runtime from public source with pinned dependencies.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Capture events] --> B[Bounded writer queue]
  B --> C[Completed gzip blocks]
  C --> D[Checkpoint with run identity and hashes]
  D --> E[ZIP with four streams and manifest]
  F[Next launch] --> G{Completed ZIP exists?}
  G -->|No| H[Pack verified checkpoint prefixes]
  G -->|Yes| I[Check run, checkpoint, and stream hashes]
  H --> J[Clean temporary files]
  I -->|Checks pass| J
  I -->|Checks fail| K[Keep temporary files]
Loading

Reviews (2) · Last reviewed commit: "Fix capture shutdown, snapshot limits an..." · Reviewed by Greptile

Comment thread Sources/AtelierCapture/SessionWriter.cs Outdated
Comment thread Sources/AtelierCapture/Snapshot.cs
Comment thread Sources/AtelierCapture/SessionWriter.cs
Comment on lines +13 to +18
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]));

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 Archive recovery has no tests

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!

Fix in Codex

@LightCyan01 LightCyan01 Oct 10, 2026 •

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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.

@LightCyan01
LightCyan01 merged commit c0c2feb into main Oct 10, 2026
3 checks passed
@LightCyan01
LightCyan01 deleted the capture/source-release-manifest branch October 10, 2026 15:36
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