Skip to content

Commit dfde885

Browse files
committed
(docs) add development.md
1 parent c01f78d commit dfde885

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

DEVELOPMENT.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Development Overview
2+
3+
## Component Relationships
4+
5+
The repository is split into a few cooperating parts: the ImGui desktop client (`pipetap-gui`), the injected hook + proxy DLL (`pipetap-dll`), shared contracts and logging (`pipetap-shared`), a Python SDK for the TCP-to-named-pipe proxy (`pipetap-python`), and two small fixtures to exercise the flow (`pipe-test-client`/`pipe-test-server`). The diagram shows how they depend on each other and where the DLL sits when injected into a target named-pipe server.
6+
7+
```mermaid
8+
graph TD
9+
shared["pipetap-shared\n(IPC contracts, logging)"]
10+
gui["pipetap-gui\n(ImGui desktop client)"]
11+
dll["pipetap-dll\n(Injected hook + TCP proxy)"]
12+
py["pipetap-python\n(TCP SDK, PyPI)"]
13+
client["pipe-test-client\n(Named pipe fixture)"]
14+
server["pipe-test-server\n(Target fixture)"]
15+
16+
shared --> gui
17+
shared --> dll
18+
gui -- inject/control --> dll
19+
gui -- control/events named pipes --> dll
20+
py -- TCP port 61337 --> dll
21+
client -- named pipe I/O --> server
22+
dll -- injected hooks --> server
23+
```
24+
25+
## Protocol Flow
26+
27+
Once injected, the DLL stands between the real client/server named-pipe traffic and the GUI (and optionally the Python SDK). It establishes PID-scoped control/event pipes for coordination with the GUI, continues to forward intercepted I/O to the real APIs, and exposes a TCP listener for remote pipe access. The sequence below outlines the major message paths.
28+
29+
```mermaid
30+
sequenceDiagram
31+
participant GUI as pipetap-gui
32+
participant DLL as pipetap-dll in target
33+
participant Server as Named Pipe Server (target)
34+
participant Client as Named Pipe Client
35+
participant Python as pipetap-python (optional)
36+
37+
GUI->>DLL: Inject support DLL into target process
38+
DLL-->>GUI: Expose PID-scoped control/events pipes
39+
GUI-->>DLL: Connect and send control commands
40+
Client->>Server: Named pipe read/write calls
41+
DLL-->>GUI: Stream intercepted I/O events
42+
GUI-->>DLL: Optional edits/blocks then send replacements
43+
Python->>DLL: TCP connect (default 61337)
44+
Python->>DLL: Request remote pipe open/send/recv
45+
DLL->>Server: Relay proxied I/O to the pipe server
46+
DLL->>Client: Return pass-through or edited responses
47+
```

0 commit comments

Comments
 (0)