summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-14 01:50:30 -0400
committerDax Raad <[email protected]>2025-06-14 01:51:04 -0400
commit0f9c2c5c2703b3f68ee63ba2e01e70e469ff2b6e (patch)
treeb6193c81360f88720eee13f1e8e1536501497a0f
parent6a261dedb4f4166f25d0a5e9825988ce8028930d (diff)
downloadopencode-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.ts8
-rw-r--r--packages/opencode/src/session/index.ts7
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,
})