fix(workspace): do not hardcode the workspace cookie domain - #589
Conversation
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.
|
@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. |
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
left a comment
There was a problem hiding this comment.
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).
`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.