Skip to content

fix(pchronicle): non-loopback serve and lazy Directory discovery - #128

Open
reiase wants to merge 5 commits into
mainfrom
feat/pchronicle-non-loopback-lazy-discovery
Open

fix(pchronicle): non-loopback serve and lazy Directory discovery#128
reiase wants to merge 5 commits into
mainfrom
feat/pchronicle-non-loopback-lazy-discovery

Conversation

@reiase

@reiase reiase commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove loopback-only bind/pin checks for Warehouse, Gateway, Control, Echo, and catalog:// pins so ECS/LAN listeners and pins work.
  • Replace recursive object-store discovery with shallow Directory navigation: chronicle.manifest / CURRENT / events markers → Dataset; plain prefixes only probe immediate children (no loose-file Sources).
  • Start catalog serve discovery in the background so --listen can accept connections before large prefixes finish classifying; update RFCs 0013/0015 accordingly.

Test plan

  • just test persisting-pchronicle
  • just test persisting-pchronicle-cli (loopback/pin tests flipped to accept non-loopback)
  • On a large S3 Directory: pchronicle serve --catalog-config … --listen 127.0.0.1:8081 should bind without max_files recursive-list failure
  • Pin catalog://<non-loopback-ip>:port and confirm it is accepted
  • Confirm Directory with only nested */events.lance still appears in catalog/projection inventory

Made with Cursor

reiase and others added 5 commits September 8, 2026 22:35
Stop recursive object-store listing that hit max_files on large prefixes, classify Directory vs Dataset from shallow markers, and let catalog serve bind/listen before discovery finishes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Consolidated multiple lines of code into single lines for improved clarity and readability in the `discovery.rs` and `generic.rs` files. This change enhances the overall code structure without altering functionality.
…ry logic

Added a new `Directory` variant to the `Candidate` enum to represent navigational directories in the catalog. Updated the discovery logic to classify immediate child directories and dataset sources separately, ensuring that loose files are not registered as sources. Enhanced the sorting and counting of sources in the catalog to accommodate the new directory type. Updated documentation to reflect these changes.
…ehavior

Added support for writing and reading relative bytes in the DatasetLocation, enabling recursive listing of importable JSON objects. Improved the import process to clear existing prefixes in object stores before writing new data, ensuring a clean slate for imports. Updated documentation to clarify the behavior of the replace mode for object-store datasets, emphasizing that it clears the destination prefix before writing. Added tests to verify the new import behavior and ensure correct handling of existing data.
… modules

Enhanced the formatting of code in the `location.rs`, `exchange.rs`, `sync.rs`, and `tests.rs` files for better clarity. This includes consolidating multiple lines into single lines where appropriate and ensuring consistent indentation. No functional changes were made, focusing solely on code aesthetics and maintainability.
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