Repository navigation
Conversation
|
Thanks for this, @johoja12. This PR adds an opt-in Full mode that turns Discord into a conversation interface for Codeman sessions, with a private channel per case, a thread per session, native history and live responses, controls, and live activity indicators. The delivery journal, the prompt-bound controls and the re-checks before every terminal write are careful work. I reproduced the four blockers below with small tests on this branch, and they need fixing before this can merge. Blockers
Should fix before merge
Smaller
Open questions These are not settled by this review: whether writes over ssh are accepted (CLAUDE.md currently rules them out), whether Next step: please push the blocker and should-fix changes to this branch. This does not merge until those are in and the open questions are settled. |
|
Thanks for the reproductions. Pushed Blockers
Should-fix findings
Smaller findings Shell/Docker history is intentionally unsupported without sync errors; stream preferences survive conversation resets, including stream-off; local history uses Node; Claude reads the chain tail. Removed all ten unreferenced Discord screenshots. The browser test uses and cleans a per-run temp directory. File overviews precede imports, and the new Discord modules have overview headers. Validation
Policy/scope decisions before merge The contract is now explicit: Python 3 is required only on SSH hosts for remote history/file helpers. The SSH write feature is limited to an explicit incoming attachment in opted-in Full mode, saved under |
|
Updated the fork head branch to 1a697d7 to remove the automatic busy-session Send now / Queue next / Cancel chooser, per the user request. Ordinary messages now go directly through the existing input path even while the session is working. Explicit queue controls remain available. Pending questions/permissions still block unbound replies; multiline input, authorization, destination ownership, inbound deduplication and uncertain-write no-replay behavior remain covered. Existing queued/pending requests are not automatically submitted. Validation on the upstream-adapted branch: 187 targeted tests passed, plus typecheck, lint, formatting, lockfile, public-asset and complete pre-push checks. The fork production candidate also passed five tests against the compiled modules for direct busy Claude/Codex routing, dialog blocking and false/throw transport uncertainty. GitHub CI remains separate. No native prompts were submitted for testing. Tracking: johoja12#179; fork merge johoja12#180. |
|
Thanks @johoja12, and sorry for the wait. The 1.50.0 release (the macOS app) took the last two days. Thanks for the detailed follow-up on One file still needs work, 1. It starts 2. It runs git on Docker case workspaces. The scope is 3. On your two scope questions (the narrow SSH write for Discord uploads into |
|
Updated the existing fork head to e6e7f19 with the merged Discord features/fixes through fork cb7db6d. The PR description now describes the current implementation and links desktop/mobile screenshots. Included: paginated table cards with PNG/CSV, selectable Claude question cards, wrapped mobile question handling, inline response files and native generated-image galleries, exact oversized-record catch-up, updates that no longer stall behind a table, reserved case-based launch names, and repeated Codex model-settings verification. The integration retains earlier upstream ownership, cancellation, bounded Node history and no-replay protections. An uncertain gallery cannot swallow a later text answer. The three latest workspace-diff requests are addressed:
Validation:
Tracking: johoja12#97. The SSH-upload exception and combined PR scope remain maintainer policy decisions before merge. |
|
Thanks for the update, @johoja12. The workspace diff now goes through the gate, refuses Docker and adopted sessions and passes CI is red on 1.
The test header explains the two ways out: a capability on the 2. Please rebase on current master (1.50.0) while you're at it, so the branch is tested against what it will merge into. The two scope questions (the SSH write exception for uploads into |
|
@johoja12, here are the two scope answers I owed you. 1. Please split it. At 24k lines in 121 files I can't review this as one change with the care the bridge needs, and CONTRIBUTING asks for one change per PR. Your description already falls into parts, so roughly:
The exact cut is yours. What matters is that each PR stands on its own, builds on the one before, and is green in CI by itself. Stacked PRs are fine: open the next one against the previous branch, or as a draft, and say which one it sits on. This PR can stay open as the reference until the pieces land, then close. 2. Yes to the narrow ssh write. An incoming Discord attachment may be written into a remote session's
Thanks for sticking with this. The direction is right, and smaller pieces will get it merged faster. |
|
Updated the published branch to 342d217 against current master 86502b6 / 1.50.0, preserving history rather than force-pushing. The concrete CI requests are addressed: the four question/suggestion guards use the existing Validation: 908 broad Discord/native/policy tests passed on the integration; the final Python/file/cancellation subset passed all 12 cases. Typecheck, lint, format, lockfile and the normal pre-push static gate passed. GitHub CI for the new head is running separately. Split: #793 is the first focused Notifications-mode delivery PR, directly on master. It has 116 local bridge/delivery tests and an isolated API smoke; it remains draft while its own CI runs. I have converted this combined PR to a draft integration reference, as requested. Four subsequent scopes remain: Full-mode core, questions/controls, Activity/history/Results, and Files (including the approved narrow SSH write). They are not being represented as completed splits yet. Tracking is johoja12#97, with part 1 in johoja12#218. No production deployment or diagnostic Discord messages were sent. |
Reference PR — being split per maintainer review.
Updated against master 1.50.0. The five flagged CLI checks now use the existing
nativeSettingsProfilecapability (the session-name prefix has an explicit label-only allowance), and the workspace git caller is in the reviewed gate inventory. Both policy-test files pass. Missing remotepython3now produces an actionable attachment error without surfacing arbitrary SSH stderr. The approved remote-upload exception is recorded in the three requested rule documents; it belongs in the Files part.Review sequence:
The first focused delivery PR is open as #793 (Notifications delivery safety), based directly on master and draft while its independent CI runs. This PR remains the tested integration reference; it is not a request to merge the combined change. The remaining parts will link back here and depend on the earlier pieces.
Discord becomes an opt-in native conversation interface for Codeman. Full mode groups each case into a private channel and gives each session a durable thread; Notifications remains the default.
Conversations and response presentation
Questions, settings and session controls
Activity, history and workspace results
--no-optional-locks, refuses adopted/container sessions and paths inside registered Docker workspaces, and usesgitSpawnAllowed()/gitMissingError()before local git starts.Upstream integration and scope
This updates the shipped bridge features through fork
cb7db6d3while retaining the earlier upstream review adaptations:findExactCodexConversation, bounded local Node history reads, real quick-start, bare-Escape interruption, confirmed reconnect against an existing remote agent, shared SSH construction, Notifications HTTP 5xx retries, and cancellation before remote writes. It excludes unrelated fork history, OpenClaw removal, production configuration and the fork's saved Recovery Queue. No production deployment or live production-agent input is part of this update.The latest workspace-git review is addressed. Current upstream master is still
e9b2ecd5/ 1.49.0 and #779 is open, so itsgit-availability.tsgate is included unchanged as the narrow dependency for this adapter. When #779 lands, its scanner's reviewed caller inventory will also need the newdiscord-workspace-results.tscall site.Maintainer policy decisions remain open: incoming SSH uploads are limited to opted-in Full mode under
.codeman-discord/with workspace/component/symlink/size/cancellation guards, proposed as a narrow exception to the existing no-SSH-write policy. Python 3 is required only on SSH hosts. Acceptance of that exception and the combined PR scope remains for the maintainer before merge. Multi-user lifecycle/native controls remain disabled without explicit identity mapping; guild/user allowlists and destination ownership are checked before bridge operations.Validation
e6e7f195.COLOR_SELECTED_Bluein the native conversation, with no browser page errors. Temporary sessions were cleaned up.Screenshots: desktop question card, mobile question card, table card layout.
Development tracking: johoja12#53 and johoja12#97.