9c573f1e3c
Decisions, environment quirks and pitfalls learned while working on AgentHub (docs/claude-memory/, indexed by MEMORY.md). Notes holding personal account details are left out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
name, description, metadata
| name | description | metadata | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| s3-main-merge-notes | Exact edits to apply when merging s3-next (S3 server mode) into main — agenthub-26's chat/drop/permission-mode work on main needs S3 routing |
|
On 2026-10-09, agenthub-26 left uncommitted work on main. It covers the chat UI, drop images and permission-mode. These files overlap with S3 (see agenthub-multi-user-goal). When s3-next merges into main, do the following:
server/lib/tmux.js:capturePaneandsendKeycallexecImplon main. Change both to member routing:capturePane = onServerOf(name, ["capture-pane","-p","-t",pane(name)])sendKey = onServerOf(name, ["send-keys","-t",pane(name),key])Check that only ONEfunction onServerOfsurvives the merge. In CommonJS a second declaration silently wins and turns member routing off.server/lib/pane-mode.jsonly goes through those two helpers, so it inherits the routing.
GET /api/run/drop/:name(server/routes/run.js): on main it opens with O_NOFOLLOW|O_NONBLOCK, then fstats the descriptor, and requiresuid === process.getuid(). The name regex accepts only ids the server made. Under S3:- use
dropDir(req), the requester's own account; - compare
st.uidto the member's uid, or call run-asopenSafe. Agreed trade-off: an admin viewing a member's session sees the file-name chip, not the image.
- use
GET|POST /api/run/:id/permission-modeis already covered byscope.canSeeRunand the/run/:idPATH_RULES. It types only throughtmux.sendKey, so point 1 covers it.
Why: under S3 the host must never use a member's tmux socket or member files directly (P8 F1/F3). A plain merge would silently keep host-side calls.
How to apply: do this at the s3-next → main merge. Message agenthub-26 (if it is still alive) before committing on main.