refactor(server): extend ForgeIssueRef.sourceRepo; migrate deps.ts cross-repo filter off raw API #282
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!282
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "refactor/deps-sourcerepo-holdout"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Removes the last raw
forgejo-apiimport from production code (webhook.test.ts's remaining import is test-only).What
ForgeIssueRefgainssourceRepo?: string— populated when the dependency edge crosses repo boundaries.ForgejoAdapter.getBlockers/getBlockedstop filtering cross-repo entries out; they pass them through with attribution.deps.ts::findDependentsnow callsforge.getBlocked(...)and filtersentry.sourceRepo === undefinedfor the same-repo-only semantics issue #196 requires.Why
deps.ts was the last production module still importing from
forgejo-apidirectly. The port'sgetBlockedused to drop therepository.full_namefield, which the cross-repo filter infindDependentsneeded — so we kept a raw import. ExtendingForgeIssueRefwithsourceRepolets the port carry what the filter wants, and the raw import goes away.Checks
bunx tsc --noEmit -p apps/server/tsconfig.json— EXIT=0bun --cwd apps/server test— 1010 pass / 3 pre-existing fails (session JSONL pruning × 3)grep -rn "infrastructure/forge/forgejo-api" apps/server/src --include="*.ts" | grep -v "forgejo-adapter\|forgejo-api.test\|forgejo-api.ts:"→webhook.test.ts:88(test-only, documented) is the only remaining import.