Skip to content

Latest commit

 

History

History
192 lines (179 loc) · 14.3 KB

File metadata and controls

192 lines (179 loc) · 14.3 KB

Changelog

All notable changes to this project are documented in this file.

This file is generated — its source of truth is the pipeline's closed-issue and merged-PR metadata (the type:* taxonomy), derived by packages/changelog-derive per ADR 0069. Regenerate it; do not hand-edit it. The format follows Keep a Changelog.

[Unreleased] — 2026-06-15

Added

  • write-code repair mode ignores GitHub-native inline PR review comments (only reads the verdict marker) (#383)
  • review-plan cutover: replace the §3 degradation guard with the distributed epic-ledger gate (#367)
  • Implement the chosen epic-ledger distribution + declare it in the plugin manifests (#366)
  • Repo-as-config mechanism + de-pin triage as the repo-agnostic tracer (#348)
  • pre-commit hook: run @phoenix/leak-guard scan on staged files (#315)
  • CI: run @phoenix/leak-guard scan on PRs (the authoritative leak gate) (#312)
  • Dashboard worker: GitHub REST 403 on /issues at runtime (token perms?) (#292)
  • Plan layer has no epic-level lock — review-plan child flips race plan-epic re-plans (drops/implements superseded stories) (#264)
  • Dashboard: surface review-code/review-doc gate verdicts for open PRs (#257)
  • Dashboard UI: epic detail — children, dependency topology, pickable/blocked, phase progress (#256)
  • Dashboard UI: queue board grouped by status with type/priority badges (#255)
  • Dashboard: cache GitHub fetch with TTL + stale-on-error freshness flag (#254)
  • Dashboard worker: pipeline-state API parsing kamp-us/phoenix issues (#252)
  • review-code: cite structured results from the run-evidence bundle (#247)
  • ship-it: assert the run-evidence bundle (commit==head SHA + all checks pass) (#246)
  • CI: run crabbox + adapter on every PR and publish the run-evidence bundle (#245)
  • Build crabbox→ADR-0054 manifest adapter (map run output to a SHA-bound bundle) (#244)
  • Plugin README + usage doc for the issue-pipeline suite (#234)
  • Author plugin.json + marketplace.json and validate the repo-agnostic install-and-use path (#233)
  • write-code: consume a review FAIL marker to fix-and-resubmit (#221)
  • Implement ADR 0051 — author-bind ship-it's review PASS marker (#210)
  • Implement ADR 0052 — review-code pins agent config to base ref (#209)
  • Build heal-ci — self-heal CI classifier that fills ship-it's red-CI dead-end (#207)
  • review-plan: make the gate operable + fix two floor false positives from first real-epic run (#200)
  • [scratch e2e] review-plan child C (zero-AC, FAIL path) — safe to delete (#195)
  • [scratch e2e] review-plan child B — safe to delete (#193)
  • [scratch e2e] review-plan child A — safe to delete (#192)
  • Pipeline has no reviewer for doc/ADR PRs (need a review-doc stage) (#189)
  • @phoenix/leak-guard package: pure findLeaks core + scan CLI (no-local-paths) (#173)
  • Re-plan convergence loop with stall-based circuit breaker (#166)
  • review-plan skill: deterministic floor + non-blocking LLM soft-advisor (#165)
  • review-plan gate action: validate ledger, flip planned to triaged, post verdict (#164)
  • Story-aware ledger: validator MISSING_STORY/UNCOVERED_STORY + Github capability (#163)
  • Land the @phoenix/epic-ledger package (commit + open PR) (#160)
  • Report capture: Report service + content_report table (the bildir backend foundation) (#151)
  • CI runs lint/typecheck/unit on docs- and skills-only changes (no path gate) (#104)
  • Footer "rss" link is dead — /rss.xml has no worker handler (no feed generated) (#99)
  • Triage sweeps have no concurrency guard: last-write-wins rewrites, duplicate splits (#91)
  • add expires_at column migration to short_links (#54)
  • implement expiry-aware ENVIRONMENT-gated admin create-mapping path (#53)
  • implement ENVIRONMENT-gated admin create-mapping path (#52)
  • define short_links D1 table + Drizzle schema + migration (#49)

Changed

  • epic-ledger README still names @phoenix/epic-ledger after the @kampus rename (#376)
  • De-pin remaining skills: gh api literals + trigger frontmatter (#351)
  • Resolve external phoenix-doc references for installed-skill context (#350)
  • Resolve the @phoenix/epic-ledger dependency for plugin distribution (#349)
  • Stale stacks/github.ts path in .github/workflows/deploy.yml comment (#302)
  • deploy.yml dashboard leg fails: alchemy ConfigError SchemaError on DASHBOARD_GITHUB_TOKEN (red on main) (#296)
  • Relocate CI-credential stack out of apps/web → standalone @phoenix/infra (#290)
  • manifest schemaVersion type drift: code emits number, ADR prose says string (#288)
  • Extend CI deploy to fan out over apps/dashboard (#253)
  • Scaffold apps/dashboard (@phoenix/dashboard) mirroring apps/web skeleton (#251)
  • Pipeline dashboard app under apps/, mirroring apps/web worker+deploy patterns (#249)
  • Document the crabbox run-evidence pattern (.patterns/crabbox-run-evidence.md) (#248)
  • Add a CI guard that validates .claude/skills/*/SKILL.md frontmatter (#239)
  • Build crabbox→ADR-0054 manifest adapter + wire bundle into review-code/ship-it (#238)
  • write-code/review-code lint step still no-ops from inside a worktree (biome check .) (#236)
  • Spike crabbox as the run-evidence producer (gates ADR 0054) (#235)
  • Establish the plugin-root skills/ layout without breaking local discovery (#231)
  • Package the .claude/skills issue-pipeline suite as a distributable Claude Code plugin (#228)
  • write-code SKILL.md: broken relative link to ADR 0047 (../../ should be ../../../) (#224)
  • README has no section documenting the skill pipeline (#222)
  • Orphaned @swc/core in onlyBuiltDependencies after react-swc removal (#217)
  • Switch Vite from @vitejs/plugin-react-swc to @vitejs/plugin-react (#215)
  • Neutralize personal umut/ prefix in skill command blocks repo-wide (#201)
  • ship-it reshape: control-plane scope + review-doc routing (#197)
  • [scratch e2e] review-plan gate epic — safe to delete (#194)
  • Stale comment in epic-ledger validate.ts misstates planned-child label flow (#171)
  • Adopt status:planned — plan-epic mints children unpickable until review-plan flips them (#162)
  • No deterministic verification gates plan-epic's output before write-code (#159)
  • Local vault path leaked in .decisions/0007 (line 20) on main (#158)
  • Stale PanoPost DO references in pano e2e comments — no such DO exists (only LiveDO) (#79)
  • Remove "fate - me" (FateMeCard) from the profile page (#71)
  • [SEED wc] investigation: example diagnosis (#64)
  • [SEED wc] child BLOCKED (requires DEP) (#62)
  • [SEED wc] child DEP (blocker, phase 1) (#61)
  • [SEED wc] p2 standalone chore D (#58)
  • [SEED wc] p0 standalone chore C (newer p0, assigned -> skip) (#57)
  • [SEED wc] p0 standalone chore B (oldest p0, should be picked) (#56)
  • [SEED wc] p1 standalone chore A (#55)
  • [SCRATCH] plan-epic dry-run: link shortener (#48)
  • pasaport: align listContributions "after" signature with the keyset shape (#39)
  • investigate: T3 deployed-workerd startup hang (alchemy sidecar readiness race) (#33)

Fixed

  • Published @kampus/epic-ledger@0.1.0 is unrunnable — ships src/*.ts bin, no build (ERR_UNSUPPORTED_NODE_MODULES_TYPE_STRIPPING) (#405)
  • Remove publishConfig.provenance:true from @kampus/epic-ledger — breaks non-CI publish, redundant under OIDC (#398)
  • review-code/review-doc document the stale .claude+.github-only blocking set (drifts from ADR 0065) (#375)
  • Epic-lock acquire guard always backs off — gh --jq prints empty (not 'null') for a missing label (#347)
  • ship-it refuses on ANY red check — can't tell non-gating from gating CI (#324)
  • ADR 0058: rebase-then-ship orphans the review-code verdict (split review/ship is broken on rebase) (#310)
  • review gates verify ground-truth against a stale local main (no fetch) → false verdicts (#308)
  • deploy.yml: dashboard/web deploy job skips for cansirin same-repo PRs (author_association gate) (#293)
  • fetchedAt type mismatch: worker encodes number, board types string (#291)
  • Dashboard deploy fails: GITHUB_TOKEN required but never provisioned in CI (#289)
  • deploy.yml preview-comment create-create race: first deploy can post two sticky comments (#273)
  • heal-ci can file a defect for a red PR that write-code repair-mode is already fixing (duplicate work) (#265)
  • Hardcoded worktree/ref/tmp-file names collide across concurrent skill runs (deslop, write-code, review-code, report, review-doc) (#263)
  • plan-epic rewrites the epic body via blind PATCH — concurrent runs lose-update the ## Dependencies topology (#261)
  • write-code issue claim is a TOCTOU on assignees, not a lock — two machines can implement the same issue (#260)
  • Gate verdicts are appended latest-wins, not SHA-bound — a stale PASS can mask a FAIL and ship-it merges broken code (#258)
  • ship-it verdict regex doesn't match review-code's bolded PASS marker (handoff stalls) (#219)
  • review-doc/review-code verdict temp file uses a fixed path — back-to-back runs collide (#206)
  • review-doc APPROVE→comment fallback (||) silently misfires when wrapped in a shell pipe (#205)
  • write-code Step 4 git checkout main breaks under worktree isolation (#188)
  • pnpm lint is a silent no-op in agent worktrees (biome excludes **/.claude) (#119)
  • Sözlük letter filter cannot be untoggled — no way back to the mixed view (#101)
  • Footer "tüzük" link is dead — /tuzuk has no route (falls to 404) (#98)
  • Long unbroken text overflows layout — no overflow-wrap on user content (post/comment/definition/title) (#96)
  • Pano post-edit form renders unstyled (white boxes) — kp-pano-edit-post* CSS missing (#95)
  • ⌘+Enter does not submit composers — advertised shortcut has no keydown handler (#94)
  • Pano "tartışma" filter: client-side tag filter over hot feed → empty/under-filled + wrong count (#90)
  • User profile "katkılar" rows look identical — kind badge color tokens are undefined (#87)
  • User profile "katkılar" rows render markdown as raw text (not rendered) (#86)
  • User profile (/u/:handle) avatar invisible — initials tile uses --surface-2, not accent (#85)
  • Profile "tüm cihazlardan çık" (sign out all devices) button is inert — no onClick (#84)
  • e2e: waitForURL(//pano/[id]/) matches /pano/yeni, masking pano submit-navigation failures (#78)
  • Profile "tüm cihazlardan çık" (sign out all devices) button is inert — no onClick (#76)
  • Profile "görünüm > tema" toggle changes nothing (only local state) (#72)
  • Profile "görünen ad" save (kaydet) button is inert — no onClick (#70)
  • Integration suite exits non-zero (✗) despite all 116 tests passing (#20)

Decisions

  • Control-plane boundary (ADR 0053/0065) is honor-system — main ruleset requires 0 approvals + 0 checks (#382)
  • ADR: choose the @phoenix/epic-ledger distribution mechanism (npm publish vs bundle vs dependency-free) (#365)
  • skills/*.md PRs deadlock: review-code PASS but ship-it demands review-doc namespace (#359)
  • In-worktree (sparse) typecheck bootstrap can't run: biome plugins, patches/ hashing, fate generate (#336)
  • Adopt a git-hook manager (lefthook) when a 2nd hook appears (#333)
  • ADR: multi-app / multi-worker deploy model for phoenix (#250)
  • Decide crabbox bundle storage/transport + manifest schema versioning (ADR) (#243)
  • ADR: repo-as-config mechanism + dispositions for the distributable plugin (#232)
  • ship-it AUTHORIZED_REVIEWERS allowlist is spoofable — not real authz (#229)
  • Investigate crabbox-style run-evidence bundle to make auto-merge gate trustworthy (#226)
  • Concurrent non-blocking doc PRs collide on .decisions/index.md — ship-it has no auto-rebase (#204)
  • ADR: control-plane boundary (supersede 0049) — only .claude + .github block (#196)
  • Decide how review-code isolates itself from branch-controlled instructions/config (#186)
  • Decide how ship-it makes the review-code PASS signal unforgeable (author-bind the marker) (#185)
  • No mechanism to derive a changelog after shipping code (#181)
  • ADR: the review-plan gate (deterministic plan-epic verification) (#161)
  • künye: decide the v1 karma write path (DO-backed vs D1-direct) + KarmaBump contract redesign (#139)
  • write-code: no path for an investigation that resolved into a trivial known fix (#118)
  • [SEED wc] decision: example settled choice (#63)
  • DECISION: admin create path — fate view or /api route? (#51)

Uncategorized

  • epic-lock acquire guard backs off on a FREE lock (gh index() prints empty, not 'null') (#369)
  • leak-guard DOC_SELF_EXEMPT still names .claude/skills/ paths after PR #353 move — CI red (#354)
  • leak-guard pre-commit errors instead of warn+allow when scan can't run (#332)
  • prepare script git config fails in non-git installs (run-evidence crabbox), exit 128 (#330)
  • Dashboard /api/pipeline returns CF 1101 (uncaught exception) in prod — board down (#323)
  • leak-guard: bin.ts needs a scan <files...> subcommand (CI gate #312 contract) (#314)
  • Dashboard prod deploy fails: PipelineCacheDO DO namespace undefined (getByName) in alchemy deploy (#299)
  • deploy job skipped on all cansirin PRs (author_association gate over-rejects) (#294)
  • scratch: probe conditional-write v2 (auto-deleting) (#281)
  • scratch: probe GitHub conditional-write semantics (auto-deleting) (#280)
  • Dashboard deploy fails on every PR — alchemy deploy missing GITHUB_TOKEN (SchemaError), blocks green CI (#279)
  • Pipeline skills use 'gh api --argjson' which gh api doesn't support (author gate never runs) (#241)
  • write-code SKILL.md: pre-existing broken .decisions link uses ../../ (resolves to .claude/.decisions) (#227)
  • Harden pipeline trust boundary: forgeable review-code PASS signal + branch-controlled reviewer config (#183)
  • plan-epic + write-code Conventions footers omit ship-it from the pipeline chain (#180)
  • Edited pano comment jumps position — ordering is createdAt (correct); suspect live-update merge (#92)
  • [SEED] review-code validation scratch (task 7, throwaway) (#65)
  • [SEED wc] epic: dependency-edge demo (#60)
  • implement GET /s/:slug 302-redirect route (#50)
  • [triage self-test] effect-testing.md references removed support layout (#47)
  • [triage self-test] pano post-list keyset drops last item of each page (#46)
  • [triage self-test] pano keyset off-by-one + stale effect-testing doc (#45)
  • [triage self-test] sozluk search is weird sometimes?? (#44)
  • [triage self-test] duplicate workerd-startup-hang agent report (#43)
  • [report skill self-test] verify type-blind filing + needs-triage label + footer (#42)
  • lint: clean up biome errors so CI can enforce pnpm lint (#7)
  • skill: dissolve — generate best practices for a package or file (#6)
  • ci: run test suite on GitHub Actions (#4)