Skip to content

feat(device-client): re-export the types its public api exposes - #132

Merged
kinqsradio merged 1 commit into
mainfrom
feat/device-client-reexports
Nov 11, 2026
Merged

kinqsradio merged 1 commit into
mainfrom
feat/device-client-reexports

Conversation

@kinqsradio

Copy link
Copy Markdown
Member

Summary

  • Rule D6: the app may not name orbyn-contracts. orbyn-device-client re-exports every foreign type its public API exposes: DevicePlatform, DeviceApp, DeviceState, Device, DeviceList, DeviceRemoval, PendingApproval, Engine, Snapshot, Applied, RejectedFields, RefusedEnvelope, ClientError, Peer, Local, Quarantined, Trashed, Fields, Stamp, DeviceKeys, DevicePublic, Zeroizing.
  • orbyn-client re-exports the contract types its Engine methods take or return (plus DeviceKeys, DevicePublic, Fields, Stamp).
  • Left out on purpose: the planner's Item/ItemError, internal request/response bodies, orbyn-auth-client (no public use), the pairing structs wrapped by ApproverApproval/JoinedApproval. Listed in docs/device-client.md ("One crate to depend on").
  • No behaviour change, no signing code.

Testing

  • Full gate with Postgres: fmt, clippy, structure, wasm32, workspace tests (969 pass).
  • New compile tests use the types through one crate only (orbyn-device-client/tests/single_crate.rs, orbyn-client/tests/reexports.rs); a check fails if the first file names another Engine crate. Mutations (an extra contracts import, a dropped re-export) were caught.
  • Not tested: none

Co-authors

none

AI usage

  • Written by hand, with no AI
  • Harness and version: Claude Code 2.1.317
  • Models: claude-sonnet-5-5 (all)
  • Effort: medium
  • Human role: set scope and the D6 rule
  • Sources: none

Checklist

  • Works on Windows, macOS and Linux
  • docs/architecture.md with any rule change; generated wire types with any contract change
  • No copied source, secrets, credentials or personal data; no AI attribution in commits, title or branch

The app may not name orbyn-contracts (rule D6). orbyn-device-client now
re-exports every type of another Engine crate that its public API
exposes, and orbyn-client re-exports the contract, crypto and sync types
its Engine methods use. No behaviour change.
@kinqsradio
kinqsradio merged commit 1960191 into main Nov 11, 2026
17 checks passed
@kinqsradio
kinqsradio deleted the feat/device-client-reexports branch November 11, 2026 22:51
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