summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-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,
})