Repository navigation
Sync current anomalyco/opencode dev into opencode-skein #51
Description
Proposal
Context
opencode-skein is a permanent downstream fork of anomalyco/opencode. Current baseline is upstream commit 8716c43 synced 2026-06-18. Fork is 215 commits ahead, upstream is 1208 commits ahead.
Goal is to bring fork onto current upstream dev without losing Skein capabilities, while preserving fork history and making future syncs easier.
Requirements
- Preserve fork history; do not rewrite dev
- Integrate upstream via merge into sync worktree, then merge back to dev
- Preserve all Skein capabilities: loop, auto-reply, pattern detection, hooks, scheduler, llama-skein discovery, local provider UI, context sidebar, themed loading
- Update fork/manifest.json baseline atomically with sync
- Verify fork:verify passes and behavioral tests remain green
- Do not discard 215 fork commits
- Keep patch surface minimal
Non-goals
- Rebase dev history
- Merge fork features upstream
- Major refactor of Skein before sync is stable
Success criteria
- dev contains upstream dev SHA d041eee or later
- fork/manifest.json baseline updated
- fork:verify passes
- All Skein capabilities verified behaviorally
Disposition (2026-09-18)
Shipped. Merged (baseline 4643e65, 2026-08-14). Upstream is ~316 commits ahead again — the next sync is a new change.
Design notes
Design
Merge strategy
Use existing fork sync tooling: bun run sync:check --apply creates worktree sync/upstream-YYYYMMDD. Merge upstream/dev into worktree, resolve conflicts, verify, then merge back to dev via PR.
Conflict resolution policy
- Fork-owned files: keep fork implementation, verify imports
- Patched upstream files: start from upstream structure, reapply minimal Skein behavior
- Moved subsystems: port capability to new location
- Upstream equivalent exists: remove fork code
- Lockfiles/generated: regenerate
Verification
bun run fork:verify- Typecheck packages/opencode
- Behavioral smoke tests for loop, auto-reply, local provider discovery, themed loading
Manifest update
Update baseline.upstreamRef to merged upstream SHA, baseline.syncedAt to today, baseline.forkTag to new tag. Commit atomically with sync merge.
Safety
Rerere enabled, merge.conflictstyle zdiff3, pre-sync tag pre-sync/2026-08-11, backup branch backup-dev-2026-08-11.
Tasks
- Phase 0 safety: record SHAs, create pre-sync tag, verify working tree clean
- Add upstream remote and fetch upstream/dev
- Create sync worktree via bun run sync-upstream:apply
- Merge upstream/dev into sync worktree
- Classify conflicts: owned, patched, moved, deleted
- Resolve conflicts preserving Skein behavior, port to upstream architecture
- Verify fork:verify passes
- Run typecheck and behavioral smoke tests
- Update fork/manifest.json baseline.upstreamRef, syncedAt, forkTag
- Commit sync changes, push sync branch, open PR to dev
- Merge PR, tag dev, clean worktree
- Update FORK_WORKFLOW.md with lessons
Unchecked items above: see Disposition in proposal.md (2026-09-18).
Activity
androidand commentedon Sep 17, 2026
Archived 2026-09-18 — see the change's Disposition section.