Skip to content

feat: README how-to + 1.0 release pipeline preparation - #117

Merged
mvanhorn merged 4 commits into
mainfrom
cursor/feat-readme-howto-release-ca85
Aug 14, 2026
Merged

mvanhorn merged 4 commits into
mainfrom
cursor/feat-readme-howto-release-ca85

Conversation

@mvanhorn

Copy link
Copy Markdown
Owner

Summary

Prepares documentation and packaging for the v1.0.0 release. Features Mac → Grok Bot Linux cookie sync as the primary path. Does NOT cut the v1.0.0 tag or publish a GitHub Release (U6 is human-gated).

Changes

U1: README.md

  • Lead with Linux agent runtime (Grok Bot) as the featured sync target
  • Demote Mac mini / second Mac below the fold (still supported)
  • Add numbered CLI primitives for agent-executable setup
  • Document frozen YAML for Linux sink (live_cdp, blocklist)
  • Honest status: Linux SQLite write is 0, success is live CDP inject
  • Archive naming: agentcookie_1.0.0_{platform}_{arch}.tar.gz

U2: Satellite docs

  • docs/faq.md: Fix MIT license (was Apache 2.0), update Docker paragraph
  • docs/consumption.md: Clarify Linux verification (live CDP, not sidecar)
  • docs/architecture.md: Add policy override note for trusted boxes
  • docs/threat-model.md: v1.0 version bump, policy override documentation
  • examples/sink.yaml: Rewrite for live_cdp attach (not cdp.managed)
  • CHANGELOG.md: Add [1.0.0] - 2026-08-13 section

U3: Skill files

  • skill/SKILL.md: Remove v0.3 planned references, add Linux featured path
  • skill/prompts/install-on-both-machines.md: Two-machine Linux playbook

U4: Release notes template

  • .github/RELEASE_NOTES_TEMPLATE.md: Replace closed-beta with 1.0 content

U5: Packaging

  • .goreleaser.yaml: Add Linux builds (amd64, arm64 with cross-compiler)
  • .github/workflows/release.yml: Split darwin/linux jobs, use go-version-file: go.mod
  • scripts/release-tarball.sh: Use underscore naming scheme
  • scripts/install-beta.sh: Update pattern to *darwin_arm64.tar.gz

Plan document

  • docs/plans/2026-08-13-1720-feat-readme-howto-release-plan.md: Canonical plan

Verified

  • go build ./...
  • go vet ./...
  • go test ./... (all 26 packages pass)
  • goreleaser check
  • No forbidden phrases in key files
  • No changes to denylisted files (internal/config/allowlist.go, internal/protocol/allowlist.go, internal/cli/sink.go, internal/livecdp/*)

Notes

  • This PR prepares v1.0.0 but does NOT cut the tag or publish the release
  • U6 (tagging + publishing) is human-gated and not part of this PR
  • Linux sinks with omitted policy ship nothing (allowlist-empty); the featured how-to writes policy: blocklist for sync-all on trusted boxes
  • Does not change PolicyModeForSink or any sink inject code
  • Archive names changed from agentcookie-VERSION-darwin-arm64.tar.gz to agentcookie_VERSION_darwin_arm64.tar.gz
Open in Web Open in Cursor 

cursoragent and others added 4 commits August 14, 2026 00:43
U1: Rewrite README.md with Mac → Grok Bot Linux featured path
- Lead with Linux agent runtime (Grok Bot) as the featured sync target
- Demote Mac mini / second Mac below the fold (still supported)
- Add numbered CLI primitives for agent-executable setup
- Document frozen YAML for Linux sink (live_cdp, blocklist)
- Honest status: Linux SQLite write is 0, success is live CDP inject
- Archive naming: agentcookie_1.0.0_{platform}_{arch}.tar.gz

U2: Update satellite docs
- docs/faq.md: Fix MIT license (was Apache 2.0), update Docker paragraph
- docs/consumption.md: Clarify Linux verification (live CDP, not sidecar)
- docs/architecture.md: Add policy override note for trusted boxes
- docs/threat-model.md: v1.0 version bump, policy override documentation
- examples/sink.yaml: Rewrite for live_cdp attach (not cdp.managed)
- CHANGELOG.md: Add [1.0.0] - 2026-08-13 section

U3: Update skill files
- skill/SKILL.md: Remove v0.3 planned, add Linux featured path
- skill/prompts/install-on-both-machines.md: Two-machine Linux playbook

U4: Update release notes template
- .github/RELEASE_NOTES_TEMPLATE.md: Replace closed-beta with 1.0 content

U5: Update packaging
- .goreleaser.yaml: Add Linux builds (amd64, arm64 with cross-compiler)
- .github/workflows/release.yml: Split darwin/linux jobs, go-version-file
- scripts/release-tarball.sh: Use underscore naming scheme
- scripts/install-beta.sh: Update pattern to *darwin_arm64.tar.gz

Verification:
- go build ./... ✓
- go vet ./... ✓
- go test ./... ✓ (all 26 packages pass)
- goreleaser check ✓
- No forbidden phrases in key files ✓
- No changes to denylisted files ✓

Does NOT cut the v1.0.0 tag or publish a GitHub Release (U6 is human-gated).

Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
…aser configs

1. Featured how-to: ATTACH, not start Chrome
   - README and skill now probe existing debug ports (9222-9229) first
   - Only start Chrome as fallback when nothing is listening
   - Avoids KTD2 failure mode (second Chrome fighting existing one)

2. Soften README lede
   - 'wakes up logged in' -> 'Cookie-authenticated sites show logged-in UI'
   - Explicitly note Google/Workspace stay logged out (DBSC)

3. Isolate linux GoReleaser builds from darwin
   - .goreleaser.yaml: darwin-only with codesign hook
   - .goreleaser.linux.yaml: linux amd64/arm64 with cross-compiler
   - release.yml updated to use --config .goreleaser.linux.yaml

Verified:
- go test ./... passes
- goreleaser check on both configs passes
- README/skill no longer start Chrome as featured first step

Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
… adapters)

Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
Include #115 (auto-discover extra Chrome profiles) and #116 (paste
extra-profile cookies through adapters) in the 1.0 release:

CHANGELOG [1.0.0]:
- Mac extra Chrome profiles auto-discovered and decrypted
- Extra-profile cookies flow to sidecar, adapters, and live CDP
- Sink adapters union extra-profile cookies through same blocklist
- doctor/status report discovered profile stores

README Status / Working today:
- Extra Chrome profile discovery on Mac
- Sink adapters union extra-profile cookies

README Honest limits:
- Linux extra-profile Chrome SQLite stays unread (no libsecret)

RELEASE_NOTES_TEMPLATE.md:
- Extra Chrome profile discovery in Highlights
- Linux extra-profile limit in Honest limits

Verified:
- go test ./... passes
- goreleaser check on both configs passes

Co-authored-by: Matt Van Horn <mvanhorn@users.noreply.github.com>
@mvanhorn
mvanhorn marked this pull request as ready for review August 14, 2026 00:47
@cursor

cursor Bot commented Aug 14, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@mvanhorn
mvanhorn merged commit e498e93 into main Aug 14, 2026
5 of 6 checks passed
@greptile-apps

greptile-apps Bot commented Aug 14, 2026

Copy link
Copy Markdown

Greptile Summary

Prepares agentcookie v1.0 documentation and a split Linux/macOS release pipeline focused on live-CDP cookie synchronization.

  • Adds Linux amd64 and arm64 GoReleaser builds and combines their archives with the signed macOS artifact.
  • Reworks the README, examples, skills, and satellite documentation around the Mac-to-Linux setup.
  • Changes archive names to underscore-separated platform and architecture identifiers.
  • The publishing command currently bypasses the prepared release-notes template, and the template's Linux checksum example omits downloading the manifest.

Confidence Score: 3/5

The release preparation should not merge until the pipeline publishes the intended v1.0 notes and the Linux release-note verification instructions are made executable.

The tag workflow creates a release using generated notes rather than the newly authored template, while the template's Linux path fails when it attempts to verify against a checksum file it never downloaded.

Files Needing Attention: .github/workflows/release.yml and .github/RELEASE_NOTES_TEMPLATE.md

Security Review

The new release path adds mutable action-tag executions to a workflow with repository write permission. Pin the newly added actions to immutable commit SHAs to harden release provenance.

Important Files Changed

Filename Overview
.github/workflows/release.yml Splits platform builds and manually publishes combined assets, but does not pass the prepared release-notes template to the release command.
.github/RELEASE_NOTES_TEMPLATE.md Adds comprehensive v1.0 notes, but the Linux verification commands reference a checksum manifest they do not download.
.goreleaser.linux.yaml Adds distinct CGO-enabled Linux amd64 and arm64 builds with matching archive names.
README.md Reframes setup around live CDP injection on Linux and includes complete archive-verification commands.
scripts/release-tarball.sh Renames the signed macOS archive consistently and strips the leading v from the tag version.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  T[v1.0.0 tag] --> L[Build Linux amd64 and arm64]
  T --> D[Build, sign, and notarize macOS arm64]
  L --> LA[Upload Linux archives]
  D --> DA[Upload Darwin archive]
  LA --> P[Download combined artifacts]
  DA --> P
  P --> C[Generate checksums]
  C --> R[Create GitHub Release]
Loading

Fix all with Greploop

Fix All in Codex Fix All in Claude Code Fix All in Cursor Fix All in Conductor

Reviews (1): Last reviewed commit: "feat: add extra Chrome profile discovery..." | Re-trigger Greptile

Comment on lines +129 to 133
dist/checksums.txt \
--title "agentcookie ${{ github.ref_name }}" \
--generate-notes
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Release template is bypassed

When a release tag is published, gh release create --generate-notes generates notes from GitHub metadata and never consumes .github/RELEASE_NOTES_TEMPLATE.md, causing the v1.0 release to omit the installation, security, and operational guidance prepared by this PR.

Fix in Codex Fix in Claude Code Fix in Cursor Fix in Conductor

Comment on lines +31 to +34
# On Linux
curl -LO https://github.com/mvanhorn/agentcookie/releases/download/v1.0.0/agentcookie_1.0.0_linux_amd64.tar.gz
sha256sum -c checksums.txt --ignore-missing
tar -xzf agentcookie_1.0.0_linux_amd64.tar.gz

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Linux checksum manifest is missing

When a Linux user follows these commands in a clean directory, sha256sum references a checksums.txt file that was never downloaded, causing the documented verification step to fail.

Suggested change
# On Linux
curl -LO https://github.com/mvanhorn/agentcookie/releases/download/v1.0.0/agentcookie_1.0.0_linux_amd64.tar.gz
sha256sum -c checksums.txt --ignore-missing
tar -xzf agentcookie_1.0.0_linux_amd64.tar.gz
# On Linux
curl -LO https://github.com/mvanhorn/agentcookie/releases/download/v1.0.0/agentcookie_1.0.0_linux_amd64.tar.gz
curl -LO https://github.com/mvanhorn/agentcookie/releases/download/v1.0.0/checksums.txt
sha256sum -c checksums.txt --ignore-missing
tar -xzf agentcookie_1.0.0_linux_amd64.tar.gz

Fix in Codex Fix in Claude Code Fix in Cursor Fix in Conductor


# Use goreleaser with the linux-specific config
- name: goreleaser linux
uses: goreleaser/goreleaser-action@v6

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 security Release actions use mutable tags

The new Linux build and artifact-transfer steps execute actions through mutable major-version tags in a release workflow with contents: write; an upstream tag change can alter the release build or assets without a repository change, and the GoReleaser action receives the repository token. Pin these new action references to immutable commit SHAs. How this was verified: The added GoReleaser step uses @v6 with GITHUB_TOKEN, while the workflow grants contents: write.

Fix in Codex Fix in Claude Code Fix in Cursor Fix in Conductor

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.

2 participants