Skip to content

Implement Family Connection/Context v1 resolver across launchers - #13

Merged
fruwe merged 5 commits into
mainfrom
fruwe/family-connection-context-v1-resolver
Aug 16, 2026
Merged

fruwe merged 5 commits into
mainfrom
fruwe/family-connection-context-v1-resolver

Conversation

@fruwe

@fruwe fruwe commented Aug 16, 2026 •

Copy link
Copy Markdown
Member

Closes #12

Scope

  • Add production Family Connection/Context v1 resolver APIs for Python, Rust, and Node.
  • Parse and validate the closed configuration JSON model, including duplicate keys, exact numeric-token handling, and one Unicode scalar policy.
  • Return opaque validated configuration objects, isolate them from caller mutation, and validate closed resolver requests without native exceptions or panics.
  • Canonicalize endpoints according to the ordered v1 URI, UTS #46, IPv4, IPv6, port, path, and loopback HTTP profile.
  • Encode injective environment override names and resolve named connections with exact precedence and no invalid-value fallthrough.
  • Reserve config, context, and auth before product dispatch and omit reserved binaries from discovery, list, and help in all three launchers.

Review hardening

  • Permit at most one dotted IPv4 production in IPv6 and only as the single final 32-bit component; focused Node tests cover compressed-left, compressed-right, and uncompressed multi-dotted forms.
  • Use null-prototype Node parser and normalized objects so prototype-like source keys remain closed-model fields.
  • Preserve arbitrary-precision Rust JSON number spelling so valid oversized numeric tokens reach invalid_version.
  • Make the repository Rust vector runner separate from package-safe tests; repository instructions and CI execute it with cargo run, while an extracted crate passes cargo test --all-features.
  • Pin the Rust toolchain action by immutable commit and pass stable/1.81.0 explicitly.
  • Update the contract and deferred-work boundary to match implemented behavior.

Unicode and runtime support

  • Python requires 3.11 or newer and pins idna==3.10 with unicodedata2==15.1.0.
  • Node requires 22 or newer and pins tr46@5.0.0.
  • Rust declares MSRV 1.81, pins behavior-relevant ICU data dependencies, and enables arbitrary-precision JSON token preservation.

Validation

  • Shared reference vectors: 163 passed.
  • Python: editable install, ruff check ., and pytest -q passed with 195 tests.
  • Node: npm ci, npm test, and npm audit passed; audit found 0 vulnerabilities.
  • Rust current: MSRV metadata check, locked release build, all-target/all-feature clippy with warnings denied, default/all-feature tests, and all 163 shared vectors passed.
  • Rust 1.81.0: locked release build, default tests, and all 163 shared vectors passed.
  • Published-crate simulation: cargo package --locked, extraction, and cargo test --locked --all-features passed using packaged contents only.
  • git diff --check passed.

Excluded

  • No networking, remote protocol/client, credential values or storage, configuration-file discovery, Determa State, protocol clients, package version bump, tag, or release.

Exact head: 4ce0d1dc39705fb0925bd1afcb3d99dd00ceb0b5.

@fruwe fruwe self-assigned this Aug 16, 2026
@fruwe
fruwe marked this pull request as ready for review August 16, 2026 18:33
@fruwe
fruwe merged commit 6fac16e into main Aug 16, 2026
5 checks passed
@fruwe
fruwe deleted the fruwe/family-connection-context-v1-resolver branch August 16, 2026 18:34
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.

Implement Family Connection/Context v1 resolver across launchers

1 participant