Skip to content

docs: one answer on Windows support — macOS and Linux only (BEA-77) - #126

Open
ssowonny wants to merge 1 commit into
mainfrom
bea-77-ph-scan-bug-windows-support-is-stated-three-different-ways
Open

docs: one answer on Windows support — macOS and Linux only (BEA-77)#126
ssowonny wants to merge 1 commit into
mainfrom
bea-77-ph-scan-bug-windows-support-is-stated-three-different-ways

Conversation

@ssowonny

@ssowonny ssowonny commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

TL;DR

  • "Can my Windows teammate join?" got three different answers from three official surfaces. Now it gets one: macOS and Linux.
  • The Installation page named no OS at all — it now says so in one line, above both install paths.
  • Docs only. No Go behavior changes, nothing deleted; the dormant Windows autostart code stays put.
  • Known gap: GOOS=windows go build ./... still fails on internal/store and internal/daemon, exactly as before. This PR does not move the port an inch — it stops the docs from promising it.

The fork this closes

flowchart TD
    Q["can my Windows teammate join?"]
    Q --> A["README:115<br/>'macOS &amp; Linux.'<br/><b>no</b>"]
    Q --> B["README:234 + docs cli.md<br/>'an HKCU Run entry on Windows'<br/><b>yes</b>"]
    Q --> C["hub Installation page<br/>names no OS at all<br/><b>???</b>"]
    A --> R["after: macOS and Linux.<br/>Windows is not supported yet."]
    B --> R
    C --> R
    style R fill:#2d6a4f,color:#fff
Loading

Two personas hit this independently on the persona tour. Ken read the Installation page to decide whether his second machine was supported, found no operating system named anywhere on it, then grepped the README and got two more answers.

The underlying fact was verified by cross-compiling rather than by trusting either doc: GOOS=windows GOARCH=amd64 go build ./... fails on exactly two files — internal/store/store.go (syscall.Flock) and eleven sites in internal/daemon/daemon.go. Everything else in the module cross-compiles clean, which is precisely why the docs read as contradictory rather than merely incomplete: the Windows autostart support is real code that genuinely cannot run. The fix is the docs, not the port (the port was scored XL and gated no).

The eight edits

# Surface Change
1 README.md:234 autostart row drop the , an HKCU Run entry on Windows clause
2 web/docs/…/reference/cli.md:16 same row, same edit
3 web/docs/…/manual/hooks.md remove the Windows table row
4 web/docs/…/manual/hooks.md remove the console-flicker paragraph
5 cmd/bdrive/resume.go Long drop the Windows clause from bdrive autostart --help
6-7 cmd/bdrive/resume.go ×2 (needs macOS, Windows, or Linux with systemd)(needs macOS, or Linux with systemd)
8 ConnectGuide.tsx add one gd-desc line naming the supported systems

README.md:115, INSTALL_FOR_AGENTS.md and manual/install.md already said macOS and Linux — untouched.

The new line lands on two surfaces, deliberately

ConnectGuide is rendered by both /<project-id>/install (HubApp.tsx:257) and the project home (Browser.tsx:445). One edit, two places — same question, same answer, so this is the right outcome rather than a stray edit. Both are shown below.

Installation page — before Installation page — after
before after

The same line on the project home, sitting above Knowledge insights:

project home after

What was run

  • go build ./..., go vet ./..., go test ./... — all pass.
  • New cmd/bdrive/autostart_help_test.go walks the autostart command tree and fails if any Short/Long mentions Windows. The two fmt.Println lines fire only on autostart.ErrUnsupported, which macOS/Linux CI never reaches — they ride the same edit and are covered by grep -n Windows cmd/bdrive/resume.go returning nothing.
  • npm run build in internal/webapp/frontend + committed static/; check-dist.sh says fresh; the new sentence greps out of static/assets/.
  • npm run e2e — 153 passed, 1 pre-existing skip.
  • npm run build in web/docs — 26 pages, clean with the removed rows.
  • Acceptance greps: grep -rni windows README.md web/docs/src/content/docs/ and grep -n Windows cmd/bdrive/resume.go both return nothing.

Two things to carry, no action

  • The acceptance grep is scoped, not repo-wide. CLAUDE.md and .claude/security-goal.md both discuss the Windows autostart path at length. Both are developer documentation and stay — a repo-wide grep -rni windows will never come back clean, by design.
  • internal/webapp/static conflicts with any other frontend branch (BEA-78/79/80 all rebuild it). Resolve by re-running npm run build on the merge result — never by picking a side.

Still open

The spec read "the landing page" as the hub's own Installation page — the page Ken actually read. If beardrive.ai was meant instead, that lives in the separate private cloud repo and needs its own ticket; the same sentence should be mirrored there either way. Nothing in this PR depends on the answer.

Build session

cd $(git worktree list | grep bea-77 | awk '{print $1}') && claude --resume 97e055ea-d9bc-484b-a578-0323e2597360

(only works on this machine)

Closes BEA-77.

"Can my Windows teammate join?" got three answers from three official
surfaces: README's feature list said macOS & Linux, its CLI table
documented an HKCU Run entry on Windows, and the hub's Installation page
named no OS at all.

Windows autostart is real code that cannot run — internal/store's flock
and internal/daemon's Kill/Setsid are unix-only, so GOOS=windows does
not build. The fix is the docs, not the port: every Windows claim comes
out of README, web/docs and `bdrive autostart`'s own help, and the
Installation page gains one line naming the supported systems.

No Go source is deleted; internal/autostart/autostart_windows.go stays
compiled-but-dormant for whenever the port happens.
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.

1 participant