✨ feat(sync): report queued transcript projection - #77
Merged
Conversation
Treat successful transcript acknowledgements as accepted immutable versions and distinguish new, deduplicated, and unknown outcomes. Report projection as asynchronously queued per session rather than completed, and preserve successful acknowledgements when another upload fails. Keep the public sync entry points compatible while making detailed per-file outcomes available to verbose callers.
|
| Filename | Overview |
|---|---|
| crates/tapesctl/src/transcript/client.rs | Decodes acknowledgement fields independently while retaining the existing public defaults and successful-response behavior. |
| crates/tapesctl/src/transcript/sync.rs | Adds detailed file reporting, unique queued-session accounting, and post-report partial-failure handling without changing the public sync entry points. |
| crates/tapesctl/src/transcript/tailer.rs | Uses detailed acknowledgement values for diagnostics while preserving per-file delivery fingerprints and retry behavior. |
| crates/tapesctl/src/transcript/codex_anchors.rs | Logs independently available acknowledgement fields without changing anchor delivery success semantics. |
| crates/tapesctl/src/lib.rs | Passes the parsed global verbosity count into the sync CLI reporting path. |
| crates/tapesctl/tests/public_compatibility.rs | Adds compile-time checks that transcript outcomes and sync retain their existing public shapes. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Transcript files] --> B[tapesctl sync]
B --> C[POST transcript]
C -->|Successful response| D[Preserve optional ack fields]
C -->|Failure| E[Record file failure]
D --> F[Classify new, already present, or unavailable]
D --> G[Count unique sessions queued]
E --> H[Print reports, then exit nonzero]
F --> I[Print aggregate and optional per-file output]
G --> I
Reviews (1): Last reviewed commit: "✨ feat(sync): report queued transcript p..." | Re-trigger Greptile
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
How it works
Successful ingest acknowledgements are decoded defensively: known record counts and deduplication status survive independently when an older or partially compatible server omits fields. The sync summary counts unique sessions queued for projection, while verbose output reports each file's session, path, record count, and acceptance outcome.
This requires the companion
papercomputeco/tapesserver-side projection PR for complete transcript browsing behavior, while remaining compatible with older acknowledgement payloads.Behavior matrix
Test plan
git diff --checkPart of PCC-1278