Commit Graph

18 Commits

Author SHA1 Message Date
Michael Mikovsky bc22d349bf Add compile-time leaf declarations
Introduce a function-like leaf declaration macro, bind endpoint and TUI hosts to shared generated metadata, and move remote shell endpoint construction out of the leaf module into the examples and runtime assembly code.
2026-04-26 13:54:44 -06:00
Michael Mikovsky 4f8835bd25 Fix examples for renamed leaf endpoint surface
Update the remote shell examples to use unshell::leaves and the leaf_endpoint feature-gated endpoint module, and restore the local macro aliasing needed after removing the direct unshell dependency from unshell-leaves.
2026-04-26 12:57:56 -06:00
Michael Mikovsky d4100d0604 Split protocol and leaf surfaces into crates
Move the protocol runtime into unshell-protocol and remote shell leaf code into unshell-leaves so endpoint and TUI roles can compile independently without circular dependencies.
2026-04-26 12:39:06 -06:00
Michael Mikovsky 7bea3e2b6b Add procedure-scoped stateful leaves 2026-04-25 17:42:39 -06:00
Michael Mikovsky 7e266e2a38 Add stateful call leaf runtime 2026-04-25 15:35:08 -06:00
Michael Mikovsky b1ebe34ec1 Add derive-based protocol leaf declarations 2026-04-25 14:41:00 -06:00
Michael Mikovsky 62b22be39f Simplify hook runtime state
Remove the unused pending-hook layer and dead protocol trait wrappers, and resolve active hooks through a direct active-only flow with peer-side indexing instead of scan-based recovery.
2026-04-25 11:57:37 -06:00
Michael Mikovsky 49901b6370 Reorganize protocol. 2026-04-24 13:37:30 -06:00
Michael Mikovsky dcf0fe230b Work on implementing the protocol. 2026-04-24 12:32:24 -06:00
Michael Mikovsky fcb3b2be17 feat: complete protocol spec and initial implementation
- Write PROTOCOL.md with full wire format spec and 8 real-world scenario
  analyses (reconnect, multi-operator, large files, AV evasion, router crash,
  malformed packets, future pivoting)

- Rewrite workspace structure:
  - unshell lib: protocol types (PacketHeader, TreeRequest/Response,
    HandshakeMessage/Ack), Transport trait, TcpTransport, Tree routing
  - ush-router: router binary with per-node threads, NodeRegistry with
    longest-prefix path matching, packet relay
  - ush-payload: implant binary with reconnect loop, module tree, InfoModule
  - ush-cli: operator REPL with rustyline, session management, command parser

- Protocol design: two-part rkyv frame [header][payload]; router reads only
  header for routing, payload bytes forwarded opaque

- All code documented with doc comments and examples
- Zero warnings, zero errors across entire workspace
- 32 tests pass (unit tests for tree routing, TCP transport, framing,
  command parsing, node registry)
2026-04-20 23:38:02 -06:00
Michael Mikovsky f3a59f5082 Convert to no_std, add request type 2026-03-17 16:40:05 -06:00
Michael Mikovsky 3a5605bc0d Remove error type 2026-03-17 15:15:37 -06:00
Michael Mikovsky 219c7254fb Remove old code 2026-02-20 14:13:41 -07:00
Michael Mikovsky 2a18639d84 Rename things to ush for brevity. Add Tree system. 2026-02-09 10:27:15 -07:00
Michael Mikovsky fc625e89d2 Start reworking the manager system 2026-02-04 22:19:16 -07:00
Michael Mikovsky 2edb4f3187 Clean up some package stuff 2026-01-27 15:12:20 -07:00
Michael Mikovsky 2aa61e80eb Make unshell-obfuscate into a re-export 2026-01-26 09:47:40 -07:00
Michael Mikovsky 5d6d746985 Move everything into workspace 2026-01-26 09:13:46 -07:00