Skip to content

Commit 204f65a

Browse files
authored
feat: release native transparent session filesystem preview
Ships the v0.3.0-beta.1 FSKit preview implementation, validation evidence, canonical module migration, and release automation.
1 parent 02d5b10 commit 204f65a

286 files changed

Lines changed: 49332 additions & 225 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/CODEOWNERS‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
* @jstar0
2+
3+
/docs/superpowers/specs/ @jstar0
4+
/internal/fold/ @jstar0
5+
/internal/pack/ @jstar0
6+
/internal/storage/ @jstar0
7+
/internal/vfs/ @jstar0
8+
/platform/darwin/fskit/ @jstar0
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Bug report
2+
description: Report a reproducible CodexFold defect using synthetic or redacted data.
3+
title: "bug: "
4+
labels: [bug]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: Do not attach real Codex rollouts, databases, credentials, private prompts, or unredacted logs. Use GitHub Security Advisories for vulnerabilities.
9+
- type: input
10+
id: version
11+
attributes:
12+
label: Version or commit
13+
placeholder: v0.2.1 or commit SHA
14+
validations:
15+
required: true
16+
- type: dropdown
17+
id: platform
18+
attributes:
19+
label: Platform
20+
options:
21+
- macOS
22+
- Linux
23+
- Windows
24+
- Other
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: behavior
29+
attributes:
30+
label: Observed behavior
31+
description: Include the command, sanitized error, and whether storage-only or filesystem-preview behavior was involved.
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: expected
36+
attributes:
37+
label: Expected behavior
38+
validations:
39+
required: true
40+
- type: textarea
41+
id: reproduce
42+
attributes:
43+
label: Synthetic reproduction
44+
description: Provide minimal steps using generated or redacted fixtures.
45+
validations:
46+
required: true
47+
- type: textarea
48+
id: verification
49+
attributes:
50+
label: Verification already attempted
51+
description: List doctor, tests, hashes, restart checks, or rollback attempts without private data.
52+
- type: checkboxes
53+
id: hygiene
54+
attributes:
55+
label: Data hygiene
56+
options:
57+
- label: I removed real session content, credentials, private prompts, local paths, and unredacted logs.
58+
required: true

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security vulnerability
4+
url: https://github.com/samekind/codexfold/security/advisories/new
5+
about: Report vulnerabilities and sensitive findings privately.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Feature request
2+
description: Propose a product behavior or engineering improvement.
3+
title: "feat: "
4+
labels: [enhancement]
5+
body:
6+
- type: textarea
7+
id: problem
8+
attributes:
9+
label: Problem
10+
description: Describe the concrete workflow or limitation, not only the proposed implementation.
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: outcome
15+
attributes:
16+
label: Required outcome
17+
description: State observable acceptance criteria.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: constraints
22+
attributes:
23+
label: Safety and compatibility constraints
24+
description: Note byte identity, rollback, privacy, platform, performance, or release-gate implications.
25+
- type: textarea
26+
id: alternatives
27+
attributes:
28+
label: Alternatives considered
29+
description: Include simpler options and why they are insufficient.

‎.github/pull_request_template.md‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## Outcome
2+
3+
Describe the user-visible or maintainer-visible result.
4+
5+
## Safety Impact
6+
7+
Describe effects on session bytes, routing, storage, filesystem behavior, service lifecycle, compatibility, and rollback. Write `None` only when none apply.
8+
9+
## Verification
10+
11+
List the exact commands and real environments used. Distinguish unit, synthetic, mounted-adapter, real-client, restart, and production evidence.
12+
13+
## Checklist
14+
15+
- [ ] The change matches the product contract and does not weaken a release gate.
16+
- [ ] Tests cover the behavior or regression.
17+
- [ ] `go test ./...`, race tests, vet, formatting, and required cross-builds pass.
18+
- [ ] Platform-specific validation was run when platform code changed.
19+
- [ ] Documentation and readiness language match the available evidence.
20+
- [ ] No real rollout, credential, private prompt, local path, database, log, build artifact, or Xcode user state is included.
21+
- [ ] Production Codex data and production service definitions were not used for development validation.

‎.github/workflows/ci.yml‎

Lines changed: 91 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,108 @@ on:
44
push:
55
branches: [main]
66
pull_request:
7+
workflow_dispatch:
78

89
permissions:
910
contents: read
1011

12+
concurrency:
13+
group: ci-${{ github.workflow }}-${{ github.ref }}
14+
cancel-in-progress: true
15+
1116
jobs:
17+
quality:
18+
name: quality
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v7.0.1
22+
- uses: actions/setup-go@v7.0.0
23+
with:
24+
go-version-file: go.mod
25+
cache: true
26+
- name: Check formatting
27+
shell: bash
28+
run: |
29+
files="$(gofmt -l .)"
30+
if [ -n "$files" ]; then
31+
printf '%s\n' "$files"
32+
exit 1
33+
fi
34+
- name: Check module files
35+
run: |
36+
go mod tidy
37+
git diff --exit-code -- go.mod go.sum
38+
- name: Check release metadata
39+
run: ./scripts/check-release.sh
40+
- run: go vet ./...
41+
1242
test:
43+
name: test (${{ matrix.os }})
1344
strategy:
45+
fail-fast: false
1446
matrix:
15-
os: [ubuntu-latest, macos-latest, windows-latest]
47+
os: [ubuntu-latest, macos-latest]
1648
runs-on: ${{ matrix.os }}
1749
steps:
18-
- uses: actions/checkout@v4
19-
- uses: actions/setup-go@v5
50+
- uses: actions/checkout@v7.0.1
51+
- uses: actions/setup-go@v7.0.0
2052
with:
21-
go-version: "1.26.x"
53+
go-version-file: go.mod
2254
cache: true
2355
- run: go test ./... -count=1
2456
- run: go build ./cmd/codexfold
57+
- name: Test native FSKit cache implementation
58+
if: runner.os == 'macOS'
59+
run: ./scripts/test-native-fskit-cache.sh
60+
61+
release-config:
62+
name: release-config
63+
runs-on: ubuntu-latest
64+
steps:
65+
- uses: actions/checkout@v7.0.1
66+
- uses: goreleaser/goreleaser-action@v7.2.3
67+
with:
68+
distribution: goreleaser
69+
version: "~> v2"
70+
args: check
71+
72+
windows-compile:
73+
name: windows-compile
74+
runs-on: windows-latest
75+
steps:
76+
- uses: actions/checkout@v7.0.1
77+
- uses: actions/setup-go@v7.0.0
78+
with:
79+
go-version-file: go.mod
80+
cache: true
81+
- name: Compile all test packages without claiming runtime validation
82+
run: go test ./... -run '^$' -count=1
83+
- run: go build ./cmd/codexfold
84+
85+
race:
86+
name: race
87+
runs-on: ubuntu-latest
88+
steps:
89+
- uses: actions/checkout@v7.0.1
90+
- uses: actions/setup-go@v7.0.0
91+
with:
92+
go-version-file: go.mod
93+
cache: true
94+
- run: go test -race ./... -count=1
95+
96+
cross-build:
97+
name: cross-build
98+
runs-on: ubuntu-latest
99+
steps:
100+
- uses: actions/checkout@v7.0.1
101+
- uses: actions/setup-go@v7.0.0
102+
with:
103+
go-version-file: go.mod
104+
cache: true
105+
- name: Build Linux and Windows artifacts
106+
shell: bash
107+
run: |
108+
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o "$RUNNER_TEMP/codexfold-linux-amd64" ./cmd/codexfold
109+
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o "$RUNNER_TEMP/codexfold-windows-amd64.exe" ./cmd/codexfold
110+
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go test -c -o "$RUNNER_TEMP/codexfold-testfs-linux.test" ./internal/testfs
111+
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go test -c -o "$RUNNER_TEMP/codexfold-testfs-windows.test.exe" ./internal/testfs

‎.github/workflows/release.yml‎

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
release:
13+
name: release
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v7.0.1
17+
with:
18+
fetch-depth: 0
19+
- uses: actions/setup-go@v7.0.0
20+
with:
21+
go-version-file: go.mod
22+
cache: true
23+
- name: Require a versioned main-branch commit
24+
shell: bash
25+
run: |
26+
git fetch origin main:refs/remotes/origin/main
27+
release_commit=$(git rev-list -n 1 "$GITHUB_REF_NAME")
28+
git merge-base --is-ancestor "$release_commit" origin/main
29+
./scripts/check-release.sh "$GITHUB_REF_NAME"
30+
- name: Verify release source
31+
run: |
32+
go test ./... -count=1
33+
go vet ./...
34+
- name: Publish archives and checksums
35+
uses: goreleaser/goreleaser-action@v7.2.3
36+
with:
37+
distribution: goreleaser
38+
version: "~> v2"
39+
args: >-
40+
release --clean
41+
--release-notes=docs/releases/${{ github.ref_name }}.md
42+
env:
43+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

‎.gitignore‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
/codexfold
2+
/codexfold.exe
3+
/dist/
24
/*.sqlite
35
/*.sqlite-shm
46
/*.sqlite-wal
57
*.prof
68
*.test
79
.DS_Store
810
.worktrees/
11+
xcuserdata/
12+
*.xcuserstate

‎.goreleaser.yaml‎

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
version: 2
2+
3+
project_name: codexfold
4+
5+
builds:
6+
- id: codexfold
7+
main: ./cmd/codexfold
8+
binary: codexfold
9+
env:
10+
- CGO_ENABLED=0
11+
goos:
12+
- darwin
13+
- linux
14+
- windows
15+
goarch:
16+
- amd64
17+
- arm64
18+
flags:
19+
- -trimpath
20+
ldflags:
21+
- -s -w -X github.com/samekind/codexfold/internal/cli.Version={{ .Version }}
22+
23+
archives:
24+
- id: codexfold
25+
formats:
26+
- tar.gz
27+
format_overrides:
28+
- goos: windows
29+
formats:
30+
- zip
31+
name_template: >-
32+
{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_
33+
{{- if eq .Arch "amd64" }}x86_64
34+
{{- else }}{{ .Arch }}{{ end }}
35+
files:
36+
- LICENSE
37+
- NOTICE
38+
- README.md
39+
- CHANGELOG.md
40+
41+
checksum:
42+
name_template: checksums.txt
43+
44+
snapshot:
45+
version_template: "{{ incpatch .Version }}-next"
46+
47+
changelog:
48+
disable: true
49+
50+
release:
51+
prerelease: auto
52+
53+
report_sizes: true

0 commit comments

Comments
 (0)