[Node] add support feature#3506
Draft
Herklos wants to merge 3 commits into
Draft
Conversation
Add an end-to-end-encrypted support chat to the node web interface: - Settings "Support" card (replacing the unused Logging card) + a /support ticket page: message history, compose, file attach, and one-click "Share debug state" (reuses the /app/debug export). - src/lib/octochat.ts wraps @drakkar.software/octochat-sdk: persistent requester identity, one-ticket-per-space (derived via getRequesterTicketForSpace), 2-phase create/claim, and E2EE message/ attachment read+write over the per-node invite-log stream (writes require the encryptor — never fall back to plaintext). - node API GET /config/octochat serves OCTOCHAT_* settings (packages/node). Remove the legacy Starfish log-upload: core error_sharing push, the node /logs/share route, and the Flask web_interface share-logs UI/route/model (local log export and Sentry are kept). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…icket Re-adds the Share logs button on the OctoBots selection toolbar. Instead of the removed Starfish log upload, it fetches the selected OctoBots' logs from the node (new POST /api/v1/logs/export returning a zip) and attaches them to the existing OctoChat support ticket via the SDK. The button never creates a ticket (creation stays in Settings): with no open ticket it shows a modal pointing to Settings; with a pending ticket it explains the DRAKKAR-SOFTWARE team hasn't accepted it yet (matching the Settings card). Adds the backend route with auth + functional tests and a testable frontend support-share lib with vitest coverage of all branches. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Derive the OctoChat support identity deterministically from the OctoBot wallet (deriveRootIdentityFromEvmSignature) instead of a random per-browser device key, so the same account resolves to the same OctoChat identity — and the same support ticket — on every device. New node endpoint GET /config/octochat-identity returns a deterministic (RFC 6979) EIP-191 signature over a fixed challenge, signed with the caller's wallet; the browser (new lib/octochat-identity.ts) pipes it through the SDK. The derived identity is cached encrypted-at-rest keyed by wallet address (re-derives on a wallet switch); the signature is consumed once and never persisted. Adds backend (config route auth + deterministic-signature) and frontend (derivation, caching, re-derive-on-wallet-change) tests. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.