Skip to content

Automate upstream sync: notturno sentinel (weekly + dispatch) — keep fork, pull mothership - #160

Draft
aarontrowbridge wants to merge 3 commits into
local/amicodefrom
159-upstream-sync-automation
Draft

Automate upstream sync: notturno sentinel (weekly + dispatch) — keep fork, pull mothership#160
aarontrowbridge wants to merge 3 commits into
local/amicodefrom
159-upstream-sync-automation

Conversation

@aarontrowbridge

Copy link
Copy Markdown
Member

Closes #159

Problem: harmoniqs/opencode is 5 days / 77 commits / 3 releases behind anomalyco/opencode (v1.18.12 @ 7fe99387v1.18.15 @ d7b115f + HEAD 0bff28de, 493 files). Cutting the next v*-amicode.* release without syncing bakes stale fixes in and raises next sync's cost (27 conflict files already overlap).

Approach: keep the fork, automate the pull:

  • This PR: adds .github/workflows/upstream-sync.yml — the notturno-style sentinel (weekly Mondays 09:00 UTC + workflow_dispatch). Fetches anomalyco/opencode dev (handles sst → anomalyco rename), creates notturno/merge-upstream-YYYY-MM-DD from origin/local/amicode, attempts merge:
    • clean → commit + push + open PR (ready for CI + AMICODE-PATCHES.md + version bump)
    • conflicts → abort markers, commit .upstream-sync/report.md with file list + policy (AMICODE-PATCHES.md adopt/keep/re-delete debug-bar.tsx/bun.lock theirs/i18n), push + open PR hitl for hand-merge
  • Sets git identity (fixes harmoniqs/amico#322), writes parity stats, never drops amicode surfaces, never pushes to upstream.

Follow-up: trigger the workflow (dispatch) to open the actual notturno/merge-upstream-2026-08-09 PR that lands the one-off 7fe99387 → 0bff28de merge (27 files). That PR must then:

  • resolve conflicts per patch-stack policy
  • update AMICODE-PATCHES.md + bump workspace versions to 1.18.15
  • pass env -u OPENCODE_CONFIG_CONTENT bun test + typecheck + OPENCODE_CHANNEL=dev gate
  • tag v1.18.15-amicode.1 via amicode-release.yml

Verification this PR: workflow file lint + dry-run via workflow_dispatch with dry_run: true (reports overlap/conflicts without pushing). No runtime merge in this PR.

Slack: pinged #amico (ts 1786296735.200299) — blocking next release on #159.

Fixes #159

Removes AmicoMark from ThinkingLine (keeps prop as deprecated no-op),
collapses 3-col grid to 2-col with meta flush left, and shuffles verbs
per reload + random per-mount start. Stories/comments updated.
…patch)

Adds .github/workflows/upstream-sync.yml — scheduled Mondays 09:00 UTC
+ workflow_dispatch, fetches anomalyco/opencode dev, opens
notturno/merge-upstream-YYYY-MM-DD against local/amicode.

- Zero-conflict merges: commit + push + open PR (hitl) ready for CI
- Conflicted merges: abort markers, commit .upstream-sync/report.md
  with file list + policy, push + open PR for hand-merge

Keeps the fork (never drops amicode surfaces) — just pulls
mothership improvements automatically. Handles sst → anomalyco
rename, sets git identity (fixes harmoniqs/amico#322).

Related to #159
…n for current view parity

Keeps PR current with latest viewed UI fixes (context ring, starter chips, etc. are already on local/amicode) plus thinker-line clean (5f8afb4). No rebase — preserves merge trace per fork policy.
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.

Automate upstream sync: merge anomalyco/opencode v1.18.12 → v1.18.15+ before next amicode release

1 participant