Follow-ups from the review of #472 (catalog journey and privacy scan)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- github, playwright, typescript
- Domain
- backend-api-design, testing
Research direction
The issue lists several independent follow-ups, including member-scan.ts, member-routes.ts, fakes/github, and TESTING.md; choose one before starting. Read the matching review note and inspect its named entry point or test first. Define done by satisfying that note's specific assertion or behavior, while avoiding the catalog redesign items marked as likely to be reworked.
Written by the indexing model from the issue text.
Description
Follow-ups from the review of #472 (the providers and catalog journey, #435). Nothing here blocks that PR; the one finding that did (P2-2, old runs still name the provider in their log) is fixed in #472 itself.
Heads-up: the catalog redesign will rework parts of this
A redesign is coming: the curated model list lives in code, per provider, and admins only restrict (allow or disallow) models instead of adding free-form ones. That reworks:
- T01 (the "Add model" dialog, "Check model", the free-form
Model id, draft/released entries,registerModels), - T04 (retire becomes restrict),
- the sentinel ids (
e2eproof/m-…:beta): with ids in code the forbidden set becomes the real ids of the registry, and a test-only model list needs a registration path that does not ship in the production build this lane runs, - the draft-lifecycle assertions and
adminCatalog(), which assume entries carry amodelId, SHORTEST_PART = 5inmember-scan.ts: with real ids a bare maker below five characters (xai,meta) would not be searched alone (the whole id still is).
What survives as is: the whole privacy scan (member-scan.ts, member-surfaces.ts, member-routes.ts, member-scan-proof.ts, the recorder, the planted leaks, the signed-in checks), the masks, T05, the tamper test (draft/retired/unknown become restricted/unknown), the own-key path, the usage and log checks. So do the items below with that in mind: prefer the ones that live in the scan and the lane, and do not invest in the T01 helpers.
From the round-2 review
- P2-1 More pull request surfaces in the scan.
allCommentsreads the issue comments only. Also read the check runs (GET /__fake/check-runs?repository=) and the review verdict (GET /__fake/reviews?repository=&number=) of every opened pull request, labelled "a check run of …" and "a review of …". They are built from error codes today (check-text.ts), so they are clean; the scan should catch a future change todescribeCheckorverdictBody. - P2-3 Say which number the smoke budget measures.
TESTING.md§1 says a smoke run over 5 minutes is a defect. The Playwright step of the smoke job was 4.2 min and the CI job "E2E: browser journeys" was 5m05 after #472 (4m23 before). Write down which one is the budget; if it is the job there is no headroom, so also win back time (see the per-installation setup address below). - Per-installation setup address in the fake GitHub.
fakes/githubhas one global setup address for the one registered app, soconnect,catalogandoperatormust never run at once (hencecatalogdepends onconnectandoperatoroncatalog; a redcatalogskipsoperator). Make the setup address per installation or per app. Then nodependencieschain is needed between them,connect's 4 non-smoke tests (about 26 s) stop being pulled into every smoke run, and an unrelated red journey no longer skips another. This changes a fake shared by all suites. - P3-1 The tamper test checks the status class, not the reason. Assert the error code of the refusals (
MODEL_MANAGED_BY_INSTANCE, the entry codes), and add one positive control with the same request envelope (a released entry is accepted). - P3-2 The admin canary passes on any needle. The provider label is on
/admin/llmin every way of reading it, so a collector that never sees the model-id table still passes. Require a finding labelled "the model …" for each way. - P3-3 The route enumeration has a regex blind spot.
member-routes.tslooks forexport (async )?function GETorconst GET; aroute.tsthat re-exports (export { GET } from …) is skipped silently. Count theroute.tsfiles in the roots and compare. - P3-4 A managed workspace loses the removal confirmation. After removing a key stored earlier,
router.refresh()drops the card and with it "The key is removed." (the component was designed to survive that, #178 M1). A toast or a status held in the parent would fix it. - P3-5 Over-masking and the ADR citation. The provider mask is a case-insensitive substring match, so a managed workspace that reviews a repository that mentions the provider reads
[provider]in its own log (same trade-off as[model]). The comments cite "ADR 0005, 2.17" while the ADR is still Proposed in #422: land #422 or cite the issue. - Notes for
TESTING.md.recordNetworkbuffers whole bodies, so the Owner's and the Member's UI in that lane sees no progressive streaming (notext/event-streamin the app, so nothing hangs). It also sends requests from Node, withoutSec-Fetch-*headers;isCrossSitefalls back toOrigin.
Also noted (no action decided)
- The 7 non-smoke catalog tests had no CI run before the merge of #472: watch the first full-lane run on
development. There is noworkflow_dispatchonci.yml. - PR-Agent posts its own comments before the app sees a result, so the app cannot mask them; the journey scans the comments of the two error shapes it triggers, which post none. Another PR-Agent error shape that posts a comment is not covered.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 1
- Avg merge
- 1h 20m
- Merged PRs (30d)
- 309
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ExpidetGames/code-reviewer
-
area: app type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ExpidetGames/code-reviewer#585 ·
Maintainers usually reply within 1 day
-
area: app type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
ExpidetGames/code-reviewer#584 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
ExpidetGames/code-reviewer#464 ·
Maintainers usually reply within 1 day
-
area: app type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
ExpidetGames/code-reviewer#308 ·
Maintainers usually reply within 1 day
-
type: docs
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ExpidetGames/code-reviewer#94 ·
Maintainers usually reply within 1 day
All issues in ExpidetGames/code-reviewer
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
kunchenguid/gh-axi#220 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
prerender: wait for env-runner worker readiness before crawlingPossibly taken @sarankumar1325 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day