diff options
| author | Dax Raad <[email protected]> | 2025-06-14 01:50:30 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-06-14 01:51:04 -0400 |
| commit | 0f9c2c5c2703b3f68ee63ba2e01e70e469ff2b6e (patch) | |
| tree | b6193c81360f88720eee13f1e8e1536501497a0f | |
| parent | 6a261dedb4f4166f25d0a5e9825988ce8028930d (diff) | |
| download | opencode-0f9c2c5c2703b3f68ee63ba2e01e70e469ff2b6e.tar.gz opencode-0f9c2c5c2703b3f68ee63ba2e01e70e469ff2b6e.zip | |
Add flag system and auto-share functionality
- Add Flag module for environment variable configuration
- Implement OPENCODE_AUTO_SHARE flag to automatically share new sessions
- Update session creation to conditionally auto-share based on flag
🤖 Generated with [OpenCode](https://opencode.ai)
Co-Authored-By: OpenCode <[email protected]>
| -rw-r--r-- | packages/opencode/src/flag/flag.ts | 8 | ||||
| -rw-r--r-- | packages/opencode/src/session/index.ts | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/packages/opencode/src/flag/flag.ts b/packages/opencode/src/flag/flag.ts new file mode 100644 index 000000000..9c01d13c4 --- /dev/null +++ b/packages/opencode/src/flag/flag.ts @@ -0,0 +1,8 @@ +export namespace Flag { + export const OPENCODE_AUTO_SHARE = truthy("OPENCODE_AUTO_SHARE") + + function truthy(key: string) { + const value = process.env[key]?.toLowerCase() + return value === "true" || value === "1" + } +} diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts index e08cd6042..3cf2a383e 100644 --- a/packages/opencode/src/session/index.ts +++ b/packages/opencode/src/session/index.ts @@ -27,6 +27,7 @@ import { MCP } from "../mcp" import { NamedError } from "../util/error" import type { Tool } from "../tool/tool" import { SystemPrompt } from "./system" +import { Flag } from "../flag/flag" export namespace Session { const log = Log.create({ service: "session" }) @@ -92,6 +93,12 @@ export namespace Session { log.info("created", result) state().sessions.set(result.id, result) await Storage.writeJSON("session/info/" + result.id, result) + if (!result.parentID && Flag.OPENCODE_AUTO_SHARE) + share(result.id).then((share) => { + update(result.id, (draft) => { + draft.share = share + }) + }) Bus.publish(Event.Updated, { info: result, }) |
