Skip to content

fix: mobile composer, agent draft allowlist, git push DX, duplicate-session warning - #3912

Open
Chessing234 wants to merge 12 commits into
block:mainfrom
Chessing234:fix/multi-issue-batch
Open

fix: mobile composer, agent draft allowlist, git push DX, duplicate-session warning#3912
Chessing234 wants to merge 12 commits into
block:mainfrom
Chessing234:fix/multi-issue-batch

Conversation

@Chessing234

Copy link
Copy Markdown
Contributor

Summary

Stacked fixes across mobile, CLI/desktop agent drafts, relay auth, and git DX — 11 commits in one PR:

  1. Mobile channel composer: make Enter insert a newline instead of sending #3725 — mobile channel composer: Enter inserts a newline; send stays on the button
  2. feat(cli): owner-reviewed agent drafts cannot grant "Selected people" access — respond-to is limited to owner-only / anyone #3792 — CLI draft-update supports --respond-to allowlist + --respond-to-allowlist
  3. feat(cli): owner-reviewed agent drafts cannot grant "Selected people" access — respond-to is limited to owner-only / anyone #3792 — Desktop round-trips allowlist (stop clearing Selected people on draft apply)
  4. Same agent key running in two places — both reply, nothing detects it #3832 — Relay NOTICE + warn log when a second session auths as the same pubkey
  5. Same agent key running in two places — both reply, nothing detects it #3832 — ACP README: remote-only agents / duplicate-key hazard
  6. Hosted relay git push limited to ~5 MiB packs (code default 500 MB); over-limit and chunked pushes fail opaquely #3802 — Clearer HTTP 413 for over-limit git packs + hydrate ResourceLimit detail
  7. Hosted relay git push limited to ~5 MiB packs (code default 500 MB); over-limit and chunked pushes fail opaquely #3802.env.example + git-credential-nostr troubleshooting for postBuffer / pack limits
  8. .env.example: BUZZ_WEB_DIR comment implies it alone serves the web frontend at /, but BUZZ_SERVE_GIT_WEB_GUI is also required #3815 — Startup log distinguishes invite-bundle-only vs full SPA (BUZZ_SERVE_GIT_WEB_GUI)
  9. docs(presence): 90s TTL is documented as 3× a 30s heartbeat, but the agent harness heartbeats at 60s (real margin 1.5×) #3795 — Cross-ref 60s/180s presence invariant at the ACP heartbeat
    10–11. Follow-up tests/docs for the git 413 path

Skipped issues that already have open third-party PRs (#3816, #3857, #3865, #3849, #3885, #3856, #3847).

Test plan

  • cargo test -p buzz-cli --lib agent_management
  • node --test desktop/src/features/agents/agentManagement.test.mjs
  • cargo test -p buzz-relay --lib git_body_limit_message_names_env_var
  • Manual: mobile composer Enter → newline; send button still sends
  • Manual: second buzz-acp with same key → NOTICE in logs
  • Manual: over-limit git push → 413 naming BUZZ_GIT_MAX_PACK_BYTES

Closes #3725
Closes #3792
Closes #3832
Closes #3802
Closes #3795

Made with Cursor

Chessing234 and others added 12 commits July 31, 2026 14:47
Match the pulse composer: multiline keyboard with newline action, and
keep send on the visible send button (block#3725).

Co-authored-by: Cursor <cursoragent@cursor.com>
Owner-reviewed drafts can grant Selected people access via
--respond-to allowlist and --respond-to-allowlist (block#3792).

Co-authored-by: Cursor <cursoragent@cursor.com>
Parse respondToAllowlist from draft updates and stop clearing the stored
Selected people list when applying respond-to changes (block#3792).

Co-authored-by: Cursor <cursoragent@cursor.com>
Emit a NOTICE (and warn log) on NIP-42 auth when another live connection
already holds the identity, so duplicate agent harnesses are visible (block#3832).

Co-authored-by: Cursor <cursoragent@cursor.com>
Explain why the same agent key must not run on a laptop and a VPS at
once, and point at the relay NOTICE (block#3832).

Co-authored-by: Cursor <cursoragent@cursor.com>
Map RequestBodyLimitLayer failures to a clear 413 that names
BUZZ_GIT_MAX_PACK_BYTES, and surface hydrate ResourceLimit details (block#3802).

Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify BUZZ_GIT_MAX_PACK_BYTES, http.postBuffer for NIP-98, and opaque
large-push failure modes (block#3802).

Co-authored-by: Cursor <cursoragent@cursor.com>
Distinguish invite-bundle-only mode from full SPA serving so operators
know they still need BUZZ_SERVE_GIT_WEB_GUI (block#3815).

Co-authored-by: Cursor <cursoragent@cursor.com>
Document the 60s heartbeat / 180s TTL invariant next to the interval
so agent presence docs stay aligned with the relay (block#3795).

Co-authored-by: Cursor <cursoragent@cursor.com>
Unit-test the LengthLimitError → HTTP 413 helper used by git_router.

Co-authored-by: Cursor <cursoragent@cursor.com>
Document postBuffer 401s, pack-limit 413s, and mid-upload TLS aborts.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use axum middleware to replace RequestBodyLimitLayer's empty 413 with a
message that names BUZZ_GIT_MAX_PACK_BYTES.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Chessing234
Chessing234 requested a review from a team as a code owner July 31, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment