Repository navigation
docs: close out the journey gap list - data directories, fresh-namespace recipe, and protocol surface details (#325) - #327
Merged
Conversation
…ace recipe, and protocol surface details Second round of #325 findings from the revalidation journey: the two agents independently invented the same things. Each item below was verified against the implementation (and executed where it is a recipe) before being documented. - configuration.md: an application data directories section - the platform convention roots, the env-override hook acceptance suites inject disposable roots through, atomic writes, and defensive loading. Rivet intentionally ships no API for this; the convention is now written down instead of per-product folklore. - product-acceptance.md: the fresh-namespace restart recipe for the in-process backend loop (namespace-require/copy by file path, serve taken from the same namespace); the full rivet/protocol export list so tests stop relying on naming symmetry; and the statement that suite commands run with the project root as their current directory. - protocol.md: error payloads are RVT1-encoded String values, not raw UTF-8 bytes (with the Swift ClientError.backend surface); zero-argument RPC syntax (define-rpc (ping : String)) with its single-element wire request; and the guarantee that a pre-session state-set! commits without emitting an event. - native-ui-testing.md: raco rivet package runs a launch smoke by default; --skip-launch-smoke keeps a native-ui suite hermetic.
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
Closes #325 (with #326, which landed the five high-impact items). This PR documents the remaining findings from the second (revalidation) journey — the items both journey agents independently had to invent. Every fact was verified against the implementation first, and the two recipes were executed for real before being written down:
%APPDATA%\<publisher>\<name>, macOS~/Library/Application Support/<identifier>, Linux XDG), the prohibition on home-root/install-dir/generated-roots writes, the env-override hook that acceptance suites inject disposable roots through, atomic writes, and defensive loading. Rivet intentionally ships no API here — the convention is now canonical instead of per-product folklore.namespace-require/copy-by-file-path pattern withserve(andrecord-ref) taken from the same namespace. Executed against a real backend before documenting; the revalidation agent converged on this via two probes.rivet/protocolexport list (product-acceptance.md):message:response/message:error/frameaccessors etc. — tests stop relying on naming symmetry.ClientError.backend(String)with a generic fallback.(define-rpc (ping : String) "pong"), wire request["ping"]. Executed.state-set!guarantee (protocol.md): commits the cell and emits no event when no session exists — initialization writes are ordinary mutation.raco rivet packagelaunch-smoke default (native-ui-testing.md):--skip-launch-smokekeeps a native-ui suite hermetic.Out of scope (unchanged):
raco docsemptiness (item 9 — Scribble documentation build, its own project).Validation
raco test rivet/tests/documentation.rkt: 732 passed.raco test rivet/ rivet-cli/: all green.