Skip to content

feat(experiment): evaluate Python-free Node CLI discovery (#186) - #225

Closed
abruption wants to merge 2 commits into
mainfrom
feat/186-node-cli-prototype
Closed

abruption wants to merge 2 commits into
mainfrom
feat/186-node-cli-prototype

Conversation

@abruption

Copy link
Copy Markdown
Owner

Summary

Refs #186; intentionally does not complete the issue.

  • Compare a Python adapter, independent TypeScript client, and no npm distribution. Select a bounded Python-free, read-only discovery prototype, not a full messaging port.
  • Add experiments/node-cli, excluded from stable Python distributions. Explicit local Claude/Codex inventory only; Codex requires --codex-home.
  • Fail explicitly for send (including dry-run), implicit inventory, SSH, paired devices, Relay client/server, MCP, wake and unsupported options/platforms. No external process or network invocation in the runtime.
  • Add Python-v1 cross-runtime conformance, native SQLite/Unix socket fixtures, package-content/repeat-pack/clean-install/uninstall checks, and macOS/Linux Node 22/24 CI.
  • Keep package private, prototype version 0.0.0, reference contract 1.0.2, and a nonconflicting executable name. No separate repository or npm publication.

Type

  • feat
  • chore / refactor / test / perf

Checklist

  • Commits follow Conventional Commits
  • Prototype scope, prerequisites, differences and release gates documented
  • No secrets, tokens, or session keys in the diff
  • Existing Python runtime, generated standalone, Relay and deployed installations unchanged
  • Real SSH / send / dry-run / native inbox / queue / ACK interoperability: deliberately not supported or claimed in this slice

Verified against

  • macOS arm64, Node 22.14.0: 8 conformance tests pass against the repository's Python CLI and compatibility-v1 fixture.
  • Actual temporary Unix socket (metadata only, zero connections), real temporary SQLite databases; no real user sessions/messages.
  • Fresh npm-prefix installation, empty-PATH execution, uninstall and repeated tarball SHA-256 equality pass.
  • npm audit: 0 vulnerabilities, including build dependencies.
  • Python compatibility module: 3 pass / 1 optional-relay-dependency skip.
  • Generated standalone check and git diff --check pass.
  • Node 22/24 macOS/Linux matrix runs in the new workflow; local results do not substitute for those CI results.

Notes

This is a draft for the first #186 gate. The remaining work is explicit in the experiment README: full inventory, live-writer kernel lock/process identity validation, pre-submit revalidation, envelope/reply and uncertain outcome contracts, authorized real inbox/queue tests, SSH runtime decision, platform/release/provenance gates.

Saved Codex rows and Claude reachable metadata are not evidence of consumption or ACK. Unsupported commands return submitted=false and never fall back to Python. Error messages deliberately use fixed codes rather than echoing untrusted arguments or SQLite contents. Read-only SQLite is not a snapshot and may participate in WAL shared-memory bookkeeping.

@abruption abruption added this to the Long-term milestone Sep 27, 2026
@abruption

Copy link
Copy Markdown
Owner Author

Superseded by the user-approved repository split: https://github.com/abruption/session-peer-ts (initial split head 326861cf9ac5b05be0c14a81424919bd9b0b35ce). The independent CLI now implements guarded local and SSH delivery. Four fresh one-shot ACKs were independently observed in dedicated native Claude/Codex TUIs across local Mac mini and Mac mini → MacBook SSH; see VALIDATION.md in the new repository. This draft is not merged into the Python runtime. Issue #186 remains open for the remaining public npm release gates; no npm publication occurred.

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