Skip to content

fix(workspace): do not hardcode the workspace cookie domain - #589

Merged
zomux merged 3 commits into
openagents-org:developfrom
thereisnotime:fix/workspace-cookie-domain
Sep 29, 2026
Merged

zomux merged 3 commits into
openagents-org:developfrom
thereisnotime:fix/workspace-cookie-domain

Conversation

@thereisnotime

@thereisnotime thereisnotime commented Aug 3, 2026 •

Copy link
Copy Markdown
Contributor

`setWorkspaceCookie` always sets the domain attribute to `.openagents.org`:

```ts
const shared = `path=/;max-age=${maxAge};secure;samesite=lax;domain=.openagents.org`;
```

A browser drops a cookie whose `Domain` attribute the current host is not a member of, so on any self-hosted deployment neither `oa_workspace` nor `oa_has_workspace` is ever stored. It fails silently: assigning to `document.cookie` reports nothing back.

The change keeps the shared cookie on `openagents.org` and its subdomains, and omits the attribute elsewhere so the browser scopes it to the current host.

Low impact today, since nothing in the repo reads either cookie yet, but it is wrong wherever the value is eventually consumed.

Also folded in a CI fix: the `agent-smoke` job was fataling on fork PRs because `E2E_WS_TOKEN` is not passed to fork workflows by GitHub Actions. Added an `if` condition so the job skips cleanly instead of failing.

setWorkspaceCookie always set domain=.openagents.org. A browser drops a cookie
whose Domain attribute the current host is not a member of, so on any
self-hosted deployment neither oa_workspace nor oa_has_workspace was ever
stored. It failed silently, since setting document.cookie reports nothing.

Keeps the shared cookie on openagents.org and its subdomains, and omits the
attribute elsewhere so the browser scopes it to the current host.
@vercel

vercel Bot commented Aug 3, 2026

Copy link
Copy Markdown

@thereisnotime is attempting to deploy a commit to the Raphael's projects Team on Vercel.

A member of the Team first needs to authorize it.

thereisnotime and others added 2 commits September 1, 2026 21:37
Fork PRs don't receive org secrets from GitHub Actions, so E2E_WS_TOKEN
is always empty for external contributors. The test was fataling
immediately rather than skipping, blocking PRs that touch workspace/.

Adding an if condition on the job so fork PRs get a clean skip instead.
A job-level `if` has no access to the env or secrets contexts, so
`env.E2E_WS_TOKEN != ''` would have failed the workflow at parse time on
every run. Decide on the event instead: skip only pull_request events whose
head repository is not this one.

@zomux zomux left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve. The cookie change is right: browsers drop a cookie whose Domain attribute the host isn't a member of, so the hardcoded .openagents.org meant no cookie at all on any other host; scoping the attribute to openagents.org and its subdomains and going host-only elsewhere is the correct behavior. I pushed one commit on top: a job-level if cannot read the env or secrets contexts, so env.E2E_WS_TOKEN != '' would have failed the workflow at parse time on every run; the guard now skips pull_request events whose head repo isn't this one, which is the same intent. Type-checked against a merge with current develop (the one tsc error there is a pre-existing develop test file, untouched here).

@zomux
zomux merged commit 68ac9d7 into openagents-org:develop Sep 29, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants