Skip to content

Wire sync's -project flag to actually project onto the board - #165

Merged
androidand merged 2 commits into
mainfrom
feat/159-wire-sync-board-projection
Sep 17, 2026
Merged

androidand merged 2 commits into
mainfrom
feat/159-wire-sync-board-projection

Conversation

@androidand

@androidand androidand commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Sync's per-provider loop pushed the issue but never called ProjectOntoBoard, so sync -project (and openspec/specsync.yml's board target) reported BoardConfigured: true and silently did nothing to the board — a regression from the fan-out refactor (4177dc7).
  • Restores the call, mirroring pull.go's existing usage exactly, and threads the resulting plan through ItemResult.Board so -dry-run finally previews it (add/status/assignee lines) instead of printing a static, always-true "would ensure the issue is on the board" line.
  • A ProjectOntoBoard failure is now a non-fatal warning on stderr instead of being silently possible to swallow — matches the failure mode this proposal exists to remove.
  • Also fixes an unrelated, pre-existing test bug: TestPull_CannotResolveFromBranch relied on whatever branch the suite happened to be run from instead of overriding currentBranchFn like every other branch-resolution test — it failed whenever run from a feat/<n>-<slug>-named branch (i.e. this one).

Closes #159

Test plan

  • go build ./..., go vet ./...
  • go test ./...788 passed, 0 failed
  • New regression test (TestSyncProjectsOntoBoardWhenConfigured) verified to fail without the fix (0 calls) and pass with it
  • New tests for: unconfigured board (no calls), non-fatal error + stderr warning, -dry-run still previews
  • Empirical dry-run against a real GitHub Projects board (androidand/2): unpatched binary prints only the static bullet with Status/assignee always empty; patched binary prints the real plan (add/status/assignee) — matches the exact silent-no-op described in the proposal
  • specsync changelog -resolve-refs renders this commit under "Fixed" via the proposal's Release Notes section

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 17, 2026

Copy link
Copy Markdown

Deploying specsync with  Cloudflare Pages  Cloudflare Pages

Latest commit: 9325fa5
Status: ✅  Deploy successful!
Preview URL: https://8a658858.specsync.pages.dev
Branch Preview URL: https://feat-159-wire-sync-board-pro.specsync.pages.dev

View logs

Sync's per-provider loop pushed the issue but never called
ProjectOntoBoard, so -project (and openspec/specsync.yml's board
target) reported BoardConfigured: true while silently doing nothing to
the board. Restores the call, mirroring pull.go's existing usage, and
reports the plan through ItemResult.Board so -dry-run finally previews
it. A projection error is now a non-fatal stderr warning instead of
being swallowed.
)

Relied on whatever branch the test suite happened to run from instead
of overriding currentBranchFn like every other branch-resolution
test, so it failed whenever run from a feat/<n>-<slug>-named branch
(i.e. this branch).
@androidand
androidand force-pushed the feat/159-wire-sync-board-projection branch from 804b3d6 to 9325fa5 Compare September 17, 2026 14:29
@androidand
androidand merged commit 758603e into main Sep 17, 2026
2 checks passed
@androidand
androidand deleted the feat/159-wire-sync-board-projection branch September 17, 2026 14:31
androidand added a commit that referenced this pull request Sep 17, 2026
… agent-topology-command (#159, #166, #168)

All three shipped (PRs #165, #167, #169) with every task checked.
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.

Wire sync's -project flag to actually project onto the board

1 participant