Public: anyone can read this; the crew can change it.
A row the owner ranked is marked as his and no planner or keeper re-ranks it #11909
Check · Review · Land · Live — Its check is queued.
A row a person ranks on `/next` is now stored as the owner's and shows an "Owner's pick" mark, and automatic ranking leaves it where it is. The ranking tests (32), `tsc`, `scripts/gate.ts` and `design-lint` pass. I did not run the full suite; the forge's check does that on push.
6 files · +135 −5
working queued to check deploy 0bc93ab
Check queued 35mCheck of 0bc93abfast tier: queued · full gate runs on land
Website spec: 23 findings (report only)
- / <a href="/admin-ada0/admin/app/production/open"> has no accessible name — names
- / <a href="/bad-name-12dd/bad-name/app/production/open"> has no accessible name — names
- /front <a href="/admin-ada0/admin/app/production/open"> has no accessible name — names
- /front <a href="/bad-name-12dd/bad-name/app/production/open"> has no accessible name — names
- /board http://127.0.0.1:44701/board answered 303 — https://specification.website/
- /notes http://127.0.0.1:44701/notes answered 303 — https://specification.website/
- /feed http://127.0.0.1:44701/feed answered 303 — https://specification.website/
- /review http://127.0.0.1:44701/review answered 303 — https://specification.website/
- /releases http://127.0.0.1:44701/releases answered 303 — https://specification.website/
- /repos http://127.0.0.1:44701/repos answered 303 — https://specification.website/
- /map http://127.0.0.1:44701/map answered 303 — https://specification.website/
- /system http://127.0.0.1:44701/system answered 303 — https://specification.website/
- /talk http://127.0.0.1:44701/talk answered 303 — https://specification.website/
- /flow http://127.0.0.1:44701/flow answered 303 — https://specification.website/
- /resilience http://127.0.0.1:44701/resilience answered 303 — https://specification.website/
- /boards?help http://127.0.0.1:44701/boards?help answered 303 — https://specification.website/
- /settings/crew http://127.0.0.1:44701/settings/crew answered 303 — https://specification.website/
- /settings/crew?help http://127.0.0.1:44701/settings/crew?help answered 303 — https://specification.website/
- /preview-admin/sample expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/next expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/bets expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/waves expected exactly one <h1>, found 2 — headings
- /preview-admin/sample/milestones expected exactly one <h1>, found 2 — headings
A row a person ranks on /next is now stored as the owner's and shows an "Owner's pick" mark, and automatic ranking leaves it where it is. The ranking tests (32), tsc, scripts/gate.ts and design-lint pass. I did not run the full suite; the forge's check does that on push.
- Storage: a new migration,
20261112200000-issue-rank-owner.ts, addsissue_rank.by_owner. Rows that already exist count as the owner's, since only a person's move could have written them.rankIssuewritesby_owner = 1when the actor is a person. A move by a person leaves the marks on other rows as they were, so it never turns a planner's row into the owner's. - Automatic paths:
writeOrdertakes{ owner: false }for planner and keeper writes. In that mode every owner-ranked row stays at its place and only the other rows are ordered around them. Planner-ranked rows are still re-ranked. - No caller to change: I grepped every writer of
issue_rank. The only one isrankIssue, and it already refuses agents. The week planner (takeProposal) only sends an issue to Not now on a person's tap. The only other path touching the table isclearRankon close. So nothing automatic writes ranks today. The{ owner: false }mode is there so one that appears later cannot move an owner's row. - Page:
/nextrenders the mark server-side fromownerRanked(). It adds one rule toNEXT_CSS. - Tests:
test/next-owner-rank.test.tscovers a person's move surviving a planner pass, a planner's rank still being re-ranked, and the mark appearing only on the owner's rows.scripts/gate.tspicks up everytest/*.test.tsby glob, so there was no list to edit.
I did not add a "planner ranked this" mark, and I did not add a way to un-pin a row other than a person moving it again.
To try it: open a repo's /next, press Top on a row, and "Owner's pick" appears on it.
A row a person ranks on
/nextis now stored as the owner's and shows an "Owner's pick" mark, and automatic ranking leaves it where it is. The ranking tests (32),tsc,scripts/gate.tsanddesign-lintpass. I did not run the full suite; the forge's check does that on push.20261112200000-issue-rank-owner.ts, addsissue_rank.by_owner. Rows that already exist count as the owner's, since only a person's move could have written them.rankIssuewritesby_owner = 1when the actor is a person. A move by a person leaves the marks on other rows as they were, so it never turns a planner's row into the owner's.writeOrdertakes{ owner: false }for planner and keeper writes. In that mode every owner-ranked row stays at its place and only the other rows are ordered around them. Planner-ranked rows are still re-ranked.issue_rank. The only one isrankIssue, and it already refuses agents. The week planner (takeProposal) only sends an issue to Not now on a person's tap. The only other path touching the table isclearRankon close. So nothing automatic writes ranks today. The{ owner: false }mode is there so one that appears later cannot move an owner's row./nextrenders the mark server-side fromownerRanked(). It adds one rule toNEXT_CSS.test/next-owner-rank.test.tscovers a person's move surviving a planner pass, a planner's rank still being re-ranked, and the mark appearing only on the owner's rows.scripts/gate.tspicks up everytest/*.test.tsby glob, so there was no list to edit.I did not add a "planner ranked this" mark, and I did not add a way to un-pin a row other than a person moving it again.
To try it: open a repo's
/next, press Top on a row, and "Owner's pick" appears on it.Closes #11753