TestClient: implement shell, client registry, login, system, and communication commands #91

Closed
opened 2026-08-08 08:24:33 +00:00 by hugo · 1 comment
Owner

Objective

Port the TestClient application framework and first command groups.

Deliverables

  • Implement argument parsing, multi-client registry, command discovery/help, interactive loop, output/logging, cancellation, login/logout/quit, wait/sleep/debug/load/packet-log, chat/IM/group-IM and communication commands.
  • Keep TEST_CLIENT_COMMANDS as the completeness inventory.
  • Provide fake-grid/scripted terminal tests.

Validation

  • All owned command targets are removed from the pending inventory and tested.
  • Interactive and non-interactive command parsing is deterministic.
  • Multiple clients and shutdown behave correctly.

Prerequisite

The library behavior required by the program is implemented and its translated parity tests pass.

Project constraints

  • Programs must use the native Rust public API; no CLR, C# process, bridge, RPC, or fallback.
  • Provide deterministic offline/fake validation before opt-in live or device tests.
  • Never log/store credentials or capability tokens, and keep destructive/spending actions separately opt-in.
  • Update program/source completeness, docs, and workspace validation evidence.
## Objective Port the TestClient application framework and first command groups. ## Deliverables - Implement argument parsing, multi-client registry, command discovery/help, interactive loop, output/logging, cancellation, login/logout/quit, wait/sleep/debug/load/packet-log, chat/IM/group-IM and communication commands. - Keep `TEST_CLIENT_COMMANDS` as the completeness inventory. - Provide fake-grid/scripted terminal tests. ## Validation - All owned command targets are removed from the pending inventory and tested. - Interactive and non-interactive command parsing is deterministic. - Multiple clients and shutdown behave correctly. ## Prerequisite The library behavior required by the program is implemented and its translated parity tests pass. ## Project constraints - Programs must use the native Rust public API; no CLR, C# process, bridge, RPC, or fallback. - Provide deterministic offline/fake validation before opt-in live or device tests. - Never log/store credentials or capability tokens, and keep destructive/spending actions separately opt-in. - Update program/source completeness, docs, and workspace validation evidence.
hugo added this to the 11 - Programs and live-grid validation milestone 2026-08-08 08:24:33 +00:00
hugo added the enhancement label 2026-08-08 08:24:33 +00:00
Author
Owner

Implemented and pushed in commit 9675440.

Implemented the native asynchronous TestClient shell, deterministic quoted command parser, 64-client registry and selector, sorted discovery/help, live/script/headless loops, bounded cancellation and shutdown, login/logout/quit, native alias manifests, packet metadata logging, master and group command authorization, teleport-lure handling, and all 20 issue-owned system and communication targets. TEST_CLIENT_COMMANDS remains the authoritative inventory; the 20 owned source targets are explicitly removed from its pending view.

Offline verification:

  • test_client_cli: 5/5 passed (multi-client routing, communication/system commands, authorized and unauthorized remote input, packet logging, duplicate login replacement, cancellation/resume, aliases, credential redaction, clean shutdown)
  • test_client unit inventory/parser/location tests: 3/3 passed
  • core_runtime_shims: 2/2 passed
  • social_message_semantics: 4/4 passed
  • network_semantics: 4/4 passed, 3 credential-gated live tests ignored

Repository gates passed: formatting, generated mapping, generated shims, API coverage, workspace all-target check, standalone API compile, workspace test no-run (single job after the parallel attempt exceeded host memory), and workspace rustdoc. Strict TestClient clippy passed. The required workspace all-target/all-feature clippy checked the production workspace and then stopped on four pre-existing unrelated warnings in tests/compat/tests/archive_model_semantics.rs (three float comparisons and one needless raw-string hash); that out-of-scope file was not changed.

No live credentials or capabilities were used. Documentation now covers the live shell, safety bounds, portable alias format, fake-grid terminal format, and focused validation commands.

Implemented and pushed in commit 9675440. Implemented the native asynchronous TestClient shell, deterministic quoted command parser, 64-client registry and selector, sorted discovery/help, live/script/headless loops, bounded cancellation and shutdown, login/logout/quit, native alias manifests, packet metadata logging, master and group command authorization, teleport-lure handling, and all 20 issue-owned system and communication targets. TEST_CLIENT_COMMANDS remains the authoritative inventory; the 20 owned source targets are explicitly removed from its pending view. Offline verification: - test_client_cli: 5/5 passed (multi-client routing, communication/system commands, authorized and unauthorized remote input, packet logging, duplicate login replacement, cancellation/resume, aliases, credential redaction, clean shutdown) - test_client unit inventory/parser/location tests: 3/3 passed - core_runtime_shims: 2/2 passed - social_message_semantics: 4/4 passed - network_semantics: 4/4 passed, 3 credential-gated live tests ignored Repository gates passed: formatting, generated mapping, generated shims, API coverage, workspace all-target check, standalone API compile, workspace test no-run (single job after the parallel attempt exceeded host memory), and workspace rustdoc. Strict TestClient clippy passed. The required workspace all-target/all-feature clippy checked the production workspace and then stopped on four pre-existing unrelated warnings in tests/compat/tests/archive_model_semantics.rs (three float comparisons and one needless raw-string hash); that out-of-scope file was not changed. No live credentials or capabilities were used. Documentation now covers the live shell, safety bounds, portable alias format, fake-grid terminal format, and focused validation commands.
hugo closed this issue 2026-08-11 10:22:02 +00:00
Sign in to join this conversation.