Open
Conversation
Add Discord Gateway WebSocket transport that receives DMs and routes them through TemperAgent entities. Per-user sessions track TemperFS conversation file IDs so follow-up messages Resume with full history instead of starting fresh. Infrastructure additions: - Internal blob storage (Turso-backed) for TemperFS content-addressed files - Secrets vault always-on with ephemeral key fallback - Auto-seed secrets (anthropic_api_key, sandbox_url, temper_api_url, blob_endpoint) - Local sandbox auto-start (spawns local_sandbox.py on port+10) - --discord-bot-token CLI flag Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
# Conflicts: # crates/temper-server/src/state/dispatch/wasm.rs # os-apps/temper-agent/specs/model.csdl.xml # os-apps/temper-agent/specs/temper_agent.ioa.toml # os-apps/temper-agent/wasm/llm_caller/src/lib.rs # os-apps/temper-agent/wasm/sandbox_provisioner/src/lib.rs # os-apps/temper-agent/wasm/tool_runner/src/lib.rs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use floor_char_boundary() instead of raw byte slicing to prevent panics on multi-byte characters (emoji, CJK) at split boundaries. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Session tree integration: save session_file_id/session_leaf_id from completed entities, append to JSONL session tree for follow-ups, fall back to legacy conversation file when session tree unavailable - Bot online presence: send presence in IDENTIFY + opcode 3 after connect - Vault integration: resolve bot token from vault as fallback, seed CLI/env token into vault, clear startup diagnostics - Hardcoded cleanup: extract DISCORD_API_BASE and INTERNAL_PRINCIPAL_KIND constants, replace all hardcoded URLs and headers - UTF-8 safety: use floor_char_boundary() in truncate/split_message - Add PresenceUpdate opcode, PresenceUpdateData, PresenceActivity types Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When the WASM sandbox_provisioner fails to create a session tree, the Discord transport now creates one from the legacy conversation file after the first agent completes. This enables the session tree path for follow-ups, which is required for context compaction. Also guards against empty LLM results that cause Discord 400 errors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
User sessions (conversation_file_id, session_file_id, workspace_id, etc.) are now serialized to a discord-sessions.json File in TemperFS after every session update. On startup, the transport queries TemperFS for this file and restores all sessions, enabling conversation continuity across server restarts. Flow: - Startup: query Files by name → read JSON → populate user_sessions - After each agent completion: write updated sessions map to TemperFS - Sessions keyed by Discord user ID, scoped to tenant Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <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.
Summary
session-tree-lib(JSONL tree data structure),wasm-helpers(TemperFS I/O, field extraction, URL resolution)os-apps/temper-channels/): Webhook/Discord/Slack channel entities with route resolution, session tracking, and reply deliveryNew OS Apps
temper-agenttemper-channelsTest plan
cargo test --workspacepasses (all gates green)cargo clippycleanrustfmtcheck passesscripts/temper_agent_e2e_proof.py)🤖 Generated with Claude Code