Skip to content

Use per-job brain collections instead of shared job-state - #601

Merged
selfcontained merged 1 commit into
mainfrom
agt_d1bf76ef863a/agent-ef863a
May 23, 2026
Merged

Use per-job brain collections instead of shared job-state#601
selfcontained merged 1 commit into
mainfrom
agt_d1bf76ef863a/agent-ef863a

Conversation

@selfcontained

Copy link
Copy Markdown
Owner

Summary

  • Updates all 5 job prompt files to use per-job brain collections instead of the shared job-state collection
  • Each job now stores brain data in its own collection (tech-debt, docs-audit, componentizer, persona-review, test-enforcer)
  • Object names simplified from prefixed (tech-debt-backlog) to generic (backlog) since the collection provides the namespace
  • DB job prompts were also updated via MCP, and existing brain data was migrated to the new collections

Changes

JobCollectionObjects
Debt Collectortech-debtstate, backlog, patterns
Doc-terdocs-auditstate, backlog, patterns
Componentizercomponentizerstate, backlog, patterns
Persona Reviewpersona-reviewstate, backlog, patterns
Test Enforcertest-enforcerstate, backlog, flakes

🤖 Generated with Claude Code

Each job now stores brain data in its own collection (e.g. `tech-debt`,
`docs-audit`) with simplified object names (`state`, `backlog`, `patterns`).
This makes it possible to filter by job in the Brain UI.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@selfcontained
selfcontained merged commit fad3b6d into mainMay 23, 2026
1 check passed
@selfcontained
selfcontained deleted the agt_d1bf76ef863a/agent-ef863a branch May 23, 2026 06:19
selfcontained added a commit that referenced this pull request Aug 8, 2026
Backend (backend-security-review #601):
- Coalesce authoring-checkout git fetches: new createAuthoringRemoteRefresher
gives /release/info single-flight per checkout plus a 15s freshness TTL,
so concurrent admin refreshes share one fetch instead of contending for
git ref locks or spawning unbounded 30s subprocesses; failures are also
cached for the TTL. Concurrency regression tests included.
- Sanitize unreleasedFetchError: the client now gets a fixed message; the
raw git error (stderr, paths) goes to the server log only.
Frontend (frontend-ux-review #600):
- bumpVersion only predicts a tag from an exact stable semver base; a
prerelease-suffixed tag shows no preview rather than a wrong promise.
- Refresh control is the shared icon Button with an aria-label (32px hit
area) instead of a bare 14px SVG.
- Release rows wrap so the inline Promote confirmation fits at 320px.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
selfcontained added a commit that referenced this pull request Aug 8, 2026
…ls (#897)
* Fix Releases page unreleased-commit count on stale or git-free installs
The admin enrichment on /release/info ran git against serverDir and never
fetched, so a runtime install pinned to a release tag (or with stale
origin/main) reported 'No unreleased commits' while the dispatched
release workflow would happily release current main.
- Resolve the same authoring checkout the release job uses
(DISPATCH_RELEASE_AUTHORING_REPO_DIR, serverDir fallback) via a shared
resolveAuthoringRepoDir helper
- Fetch origin/main + tags in that checkout before comparing
- Surface fetch failures as unreleasedFetchError in the API and a
warning banner in the UI instead of silently reporting zero; Create
release stays available in that state
- Non-authoring installs are unchanged: the isAdmin gate already
short-circuits before any git runs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Improve Releases page UX: non-blocking progress, confirm step, freshness
- In-flight release no longer takes over the page: a status banner keeps
the page usable, with View progress / Back to releases to jump in and
out of the full log view
- Create buttons preview the resulting tag (Patch → v0.32.3) and require
an inline confirm before triggering the workflow; Promote gets the
same confirm treatment
- Refresh button + 'checked Ns ago' indicator on Unreleased changes;
info requests now pass the release stream client id so slow loads show
the server's info-progress steps instead of a bare spinner
- When a watched release completes, the page auto-refreshes so
just-released commits leave the unreleased list; a stale done job from
the stream snapshot no longer resurrects UI on revisit
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Address persona review feedback on release admin changes
Backend (backend-security-review #601):
- Coalesce authoring-checkout git fetches: new createAuthoringRemoteRefresher
gives /release/info single-flight per checkout plus a 15s freshness TTL,
so concurrent admin refreshes share one fetch instead of contending for
git ref locks or spawning unbounded 30s subprocesses; failures are also
cached for the TTL. Concurrency regression tests included.
- Sanitize unreleasedFetchError: the client now gets a fixed message; the
raw git error (stderr, paths) goes to the server log only.
Frontend (frontend-ux-review #600):
- bumpVersion only predicts a tag from an exact stable semver base; a
prerelease-suffixed tag shows no preview rather than a wrong promise.
- Refresh control is the shared icon Button with an aria-label (32px hit
area) instead of a bare 14px SVG.
- Release rows wrap so the inline Promote confirmation fits at 320px.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Lighten release-start flow: compact buttons + modal confirm
The three full-width release-type cards and the inline confirm panel
were heavy, shifted layout when confirming, and left the type buttons
clickable behind the open confirmation. Replace with a standard row of
compact buttons (version tag inline) and a shadcn Dialog confirm — no
layout shift, backdrop blocks interaction while open.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for freeto 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.

1 participant

@selfcontained