Skip to content

Commit 4e67cd8

Browse files
chore: prepare for public release
- Fix module path to github.com/DeliciousBuding/codex-browser-bridge - Add version injection via ldflags - Add README.md with install instructions and MCP config - Add MIT LICENSE - Add Makefile (build, test, install-local, clean) - Add CHANGELOG.md - Add .gitignore - Add GitHub CI workflow (go vet, test, build) - Add GitHub Release workflow (6-platform builds, checksums, auto-release) - Remove HANDOFF.md (internal doc) - Remove cmd/test (test binary)
1 parent 19ab474 commit 4e67cd8

14 files changed

Lines changed: 378 additions & 268 deletions

File tree

.github/workflows/ci.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
runs-on: windows-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- uses: actions/setup-go@v5
15+
with:
16+
go-version-file: go.mod
17+
- run: go vet ./...
18+
- run: go test ./...
19+
- run: go build -trimpath -ldflags "-s -w" -o bin/codex-browser-bridge.exe ./cmd/bridge

.github/workflows/release.yml

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags: ["v*"]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
runs-on: windows-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
19+
- uses: actions/setup-go@v5
20+
with:
21+
go-version-file: go.mod
22+
23+
- name: Get version
24+
id: version
25+
run: echo "tag=${{ github.ref_name }}" >> $env:GITHUB_OUTPUT
26+
27+
- name: Build Windows binaries
28+
shell: bash
29+
run: |
30+
VERSION="${{ steps.version.outputs.tag }}"
31+
for arch in amd64 arm64; do
32+
suffix=""
33+
if [ "$arch" = "arm64" ]; then suffix="-arm64"; fi
34+
GOOS=windows GOARCH=$arch go build -trimpath \
35+
-ldflags "-s -w -X main.version=$VERSION" \
36+
-o "codex-browser-bridge-windows${suffix}.exe" ./cmd/bridge
37+
done
38+
39+
- name: Build Linux binaries
40+
shell: bash
41+
run: |
42+
VERSION="${{ steps.version.outputs.tag }}"
43+
for arch in amd64 arm64; do
44+
suffix=""
45+
if [ "$arch" = "arm64" ]; then suffix="-arm64"; fi
46+
GOOS=linux GOARCH=$arch go build -trimpath \
47+
-ldflags "-s -w -X main.version=$VERSION" \
48+
-o "codex-browser-bridge-linux${suffix}" ./cmd/bridge
49+
tar czf "codex-browser-bridge-linux${suffix}.tar.gz" "codex-browser-bridge-linux${suffix}"
50+
rm "codex-browser-bridge-linux${suffix}"
51+
done
52+
53+
- name: Build macOS binaries
54+
shell: bash
55+
run: |
56+
VERSION="${{ steps.version.outputs.tag }}"
57+
for arch in amd64 arm64; do
58+
suffix=""
59+
if [ "$arch" = "arm64" ]; then suffix="-arm64"; fi
60+
GOOS=darwin GOARCH=$arch go build -trimpath \
61+
-ldflags "-s -w -X main.version=$VERSION" \
62+
-o "codex-browser-bridge-darwin${suffix}" ./cmd/bridge
63+
tar czf "codex-browser-bridge-darwin${suffix}.tar.gz" "codex-browser-bridge-darwin${suffix}"
64+
rm "codex-browser-bridge-darwin${suffix}"
65+
done
66+
67+
- name: Generate checksums
68+
shell: bash
69+
run: sha256sum codex-browser-bridge-*.{exe,tar.gz} > checksums.txt
70+
71+
- name: Generate release notes
72+
id: notes
73+
shell: bash
74+
run: |
75+
if [ -f CHANGELOG.md ]; then
76+
notes=$(awk '/^## \[/{if(found) exit; found=1; next} found{print}' CHANGELOG.md)
77+
fi
78+
if [ -z "$notes" ]; then
79+
notes=$(git log --oneline --no-merges $(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || git rev-list --max-parents=0 HEAD)..HEAD)
80+
fi
81+
echo "notes<<EOF" >> $GITHUB_OUTPUT
82+
echo "$notes" >> $GITHUB_OUTPUT
83+
echo "EOF" >> $GITHUB_OUTPUT
84+
85+
- name: Create GitHub Release
86+
env:
87+
GH_TOKEN: ${{ github.token }}
88+
run: |
89+
gh release create "${{ steps.version.outputs.tag }}" `
90+
--title "${{ steps.version.outputs.tag }}" `
91+
--notes "${{ steps.notes.outputs.notes }}" `
92+
codex-browser-bridge-*.exe `
93+
codex-browser-bridge-*.tar.gz `
94+
checksums.txt

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Binaries
2+
*.exe
3+
bin/
4+
bridge
5+
codex-browser-bridge
6+
7+
# Test artifacts
8+
test_*.txt
9+
10+
# IDE
11+
.idea/
12+
.vscode/
13+
*.swp
14+
*.swo
15+
16+
# OS
17+
.DS_Store
18+
Thumbs.db
19+
20+
# Go
21+
vendor/

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
## [0.1.0] - 2026-05-16
6+
7+
### Added
8+
- Named pipe discovery (`codex-browser-use-*` pipes)
9+
- Pipe connection via go-winio
10+
- Session management: `createTab`, `getTabs`, `getUserTabs`, `claimUserTab`, `closeTab`
11+
- Navigation via CDP: `Page.navigate`, `Page.reload`, `Page.getNavigationHistory`
12+
- Screenshot via CDP: `Page.captureScreenshot` (base64 PNG)
13+
- DOM snapshot via CDP: `Accessibility.getFullAXTree`
14+
- JavaScript evaluation via CDP: `Runtime.evaluate`
15+
- Click/fill via CDP: `Runtime.evaluate` with `querySelector`
16+
- CUA input via CDP: `Input.dispatchMouseEvent`, `Input.dispatchKeyEvent`
17+
- MCP server (stdio JSON-RPC) with 20 tools
18+
- CLI mode for interactive debugging
19+
- Discover mode for listing active pipes
20+
21+
### Key findings
22+
- Wire protocol uses camelCase method names (`getInfo`, not `get_info`)
23+
- `executeCdp` requires `{target: {tabId}}` nested format
24+
- Must call `attach` before any CDP command
25+
- Each pipe connection creates a new browser session

HANDOFF.md

Lines changed: 0 additions & 166 deletions
This file was deleted.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 DeliciousBuding
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Makefile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
.PHONY: build test install-local clean
2+
3+
VERSION ?= dev
4+
5+
build:
6+
go build -trimpath -ldflags "-s -w -X main.version=$(VERSION)" -o bin/codex-browser-bridge ./cmd/bridge
7+
8+
test:
9+
go vet ./...
10+
go test ./...
11+
12+
install-local: build
13+
cp bin/codex-browser-bridge ~/.local/bin/codex-browser-bridge
14+
15+
clean:
16+
rm -rf bin/

0 commit comments

Comments
 (0)