Skip to content

Releases: EricTechPro/super-board

v1.2.0 — initial public release

Choose a tag to compare

@EricTechPro EricTechPro released this 24 May 20:45

Release notes

v1.2.0 — 2026-05-24

First public release.

Worker-storm fixes (post-incident #381, originally landed in EricTechPro/BookKeepingApp 2026-05-22)

  • PID tracking + per-lane lockfile. The dispatcher tracks BUILD_PID/QA_PID/REVIEW_PID and refuses to dispatch into a lane whose worker is still alive. Closes the 10–30s claude -p cold-start race that produced 7 racing workers on the very first run.
  • In-flight lockfiles at .claude/super-board/inflight/<issue-N> containing the worker PID. top_card_in_column skips any issue with a live lock even before the assignee write propagates. Reaped each tick via PID liveness check.
  • Atomic assignee claim BEFORE worker spawn. try_claim_assignee runs in the dispatcher and only proceeds to nohup claude -p if it wins the assignee write.
  • Orphan scan on startup. Refuses to start if any claude -p .*super-board run worker is already alive from a prior crashed dispatcher run.

Rate-limit fixes

  • Tick interval bumped 30s → 120s. ProjectsV2 GraphQL query is ~103 points regardless of board size; 120s keeps usage at ~3.1k/hr, comfortably under the 5k/hr GraphQL budget.
  • Rate-limit guard sleeps until reset when GraphQL remaining drops below 200.
  • Per-tick project-items cache — one gh project item-list per tick, not per column lookup. ~7× quota cut.
  • Worker rate-limit etiquette — sub-agent gh-call budgets, local git blame preference, gh-quota-on-exit: line required on every PR handoff comment.

QA evidence

  • Mandatory inline screenshot embeds on every QA exit (pass and fail) at standard viewports (1920×1080, 1024×768, 375×667). Screenshots committed to the issue branch BEFORE the GitHub comment is posted, so they render in-page.
  • docs/super-board/runs/**/*.{png,jpg,webp,html,log,patch,diff,zip,trace} gitignored by default. Keep .md and .json summaries tracked for audit trail; drop the heavy artifacts. Users adopting on existing repos: git rm --cached docs/super-board/runs/**/*.png etc. to untrack what's already in.

Documentation fixes

  • Card-locking semantics corrected. The original spec said the GitHub assignee write was the lock. In practice it doesn't hold up — assigning yourself something you already have is a no-op on a solo account, and GH issues accept multiple assignees, so it never blocked a second worker. The real lock is the local .claude/super-board/inflight/<N> lockfile + per-lane PID tracking. Docs updated throughout.

Other

  • Multi-attempt card-move guard. Workers must call sb_gh_guard_check (or equivalent retry-with-backoff) around the column-move mutation and write a move-mutation-result: ok|err|skipped line in the PR handoff comment. Lets the dispatcher log retries and budget for them instead of silently re-dispatching every 10 min.
  • CI-budget bypass (💳). If remote CI jobs failed_to_start due to Actions budget AND local-evidence is strong (truth gate passed, Tester clean, all threads clean), the Reviewer can squash-merge on local evidence with a 🛡 → ✅ CI-budget bypass comment citing the failed run ID, Tester pass-count, and truth-gate score. Only for 💳 — never for 🛡 truth-fail, 🔐 missing creds, or 🧑 human-only decisions.