chore(#488): ship status-in-dev automation to main - #492
Merged
Conversation
Close the gap between "PR merged to dev" and "released to main". - New GH Action `issue-status-on-merge.yml`: on PR merge to dev, parse Fixes/Closes/Resolves #N from PR body+title, add `status-in-dev`, remove `status-in-progress`. - `/release` skill: read `gh issue list --label status-in-dev` as the authoritative shipping list for release notes; include `Closes #N` in the release PR body so issues auto-close on merge to main. - `DEVELOPMENT_WORKFLOW.md`: SDLC is now Todo → In Progress → In Dev → Done, each stage mapped 1:1 to commit-graph location. Fixes #488 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
vybe
pushed a commit
that referenced
this pull request
Sep 6, 2026
…s its rail (#2540, ent#474) (#2543) Two operator rulings from the 2026-09-06 Workspace review, one PR because the second is built under the first. #2540 — the loading rule. Design-system principle 12 is amended: the scanline beam + wipe-in reveal is the CHART-loading motion only; every other first load — pages, panels, lists, message threads — is a skeleton placeholder keyed on "no data yet". The three Workspace zones #2163 wrapped in `ScanlineReveal` (the stage in Portal.vue, the thread in PortalConversation.vue, the hint zone in PortalBriefing.vue) render `PortalSkeleton` (stage / thread / briefing) instead, gated on `stage.state === 'loading'`, `!historyLoaded` and `zone.state === 'pending'` — never a bare `<x>.loading` path, which the #1927 ratchet counts as a bare gate. The `reveal` verdict the zones computed for the primitive is gone. The footprint (`min-h`, `max-w`) moves onto a wrapper both faces sit inside, so the swap never shifts. `tests/unit/portalLoadingTreatment.spec.js` pins the `ScanlineReveal` importer set as an allowlist: three chart consumers plus the two pre-ruling non-chart holdovers (LibrarySkillsSection, FinishSetupCard), recorded on #1921 — whose sweep is re-pointed by comment: bespoke spinners on non-chart surfaces become skeletons, not scanlines. The doc names the canonical forms (`SkeletonLoader.vue`, or content-shaped) and the recipe; `/audit-design-system` reads the amended doc without a skill change. ent#474 — the rail shell, to the approved design pass (48px collapsed / `w-96` open, `trinity-workspace-rail`, mobile strip + sheet, two signal shapes). Scope is the operator's own split: the three-column layout, the tab contract, the collapsed signal, Work docked EMPTY — its content is #457's and the re-homing of loops / canvas / files is #472's second child; the sidebar, thread tab strip, top band, Agent-details panel and drop target of the approved conversation page are later steps of the same build, and #492 lands the grid variables the rail's widths then follow. - `portalRail.js` is the contract: a tab declares door (platform / audience / agent), participant scope, empty state and signal shape; `visibleTabs` is the ONE gate for render AND mount, so a tab whose door the session fails has no icon, no label and no mounted body — nothing it would fetch is ever requested (the per-door test; an external client sees no rail until an audience tab docks). An unknown door fails closed. - `PortalRail.vue` is a sibling of <main>, outside `convKey`, so a chat switch remounts the conversation and never the rail; visibility keys on the route and the stage verdict, never on data still arriving. Collapsed by default; open/collapsed + active tab persist under one key, read before first paint. - The Work signal is DERIVED — from the conversation's in-flight `sending` (1:1) and the room's server-reported `working` list — reset on every chat switch and cleared on unmount, so it structurally cannot stick. - A room groups by participant over `portalLoopUtils.byAgent`, absence visible; `1 running` is a `BaseBadge`. `OverflowTabs` gains an optional per-tab `signal` dot, measured in its mirror row. - Mobile: `PortalRailStrip` above the composer through a `#rail-strip` slot on both conversations, opening the same component as a bottom sheet (Esc closes). Verified live on the Docker frontend: collapsed → open → persisted across reload; light and dark; mobile strip → sheet → Escape; the stage skeleton under a slowed roster; no console errors. Unit suite 1889/1889; both ratchets flat (no bare gate added, no touched file's raw-gray count grew). Fixes #2540 Part of Abilityai/trinity-enterprise#474 Claude-Session: https://claude.ai/code/session_01FgAncnTAbgjJS3EGwuEtd4 Co-authored-by: sim <sim@example.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ships the
status-in-devlabel + PR-merge workflow tomainahead of the next full release, so issue-state tracking is live everywhere immediately.Narrow cherry-pick of
ef6cfdb(from #489) — does not include the WEBHOOK-001 feature still staged ondev.Closes #488
Contents
.github/workflows/issue-status-on-merge.yml— on PR-merge-to-dev, parseFixes/Closes/Resolves #N→ addstatus-in-dev, removestatus-in-progress.claude/skills/release/SKILL.md—/releaseusesstatus-in-devas authoritative shipping list; emitsCloses #Nin release PRdocs/DEVELOPMENT_WORKFLOW.md— SDLC updated toTodo → In Progress → In Dev → DoneTest plan
status-in-devon Wire up status-in-dev label and PR-merge automation #488Closes #488auto-closes the issue🤖 Generated with Claude Code