Repository navigation
Conversation
There was a problem hiding this comment.
Reviewed the new Effect service modules under apps/server/src/issue/ (CLI/API wrappers, providers, registry, IssueService), the touched pull-request services, and the contracts/client-runtime additions against the Effect service conventions.
Service shape, layer composition, dependency acquisition (yield* Foo.Foo), namespace imports, Foo["Service"] references, and the runtime boundaries in server.ts/ws.ts all follow the conventions. Two error-modelling findings in the new Azure DevOps issue modules are noted inline.
Posted via Macroscope — Effect Service Conventions
A host reports a link only where somebody used a closing keyword or cross-referenced the issue, so a pull request whose body says "part of #12" showed no linked issue at all — which is what our own pingdotgg#6315 does. The title and body are now read for references too, outside code spans and fences, and each one is resolved against the host before it is shown: a number in a body is not proof an issue exists. What resolves is listed as cited, never as closing — only the host can say what merging will close — and the host's own links always win. Bounded at ten, and a failed resolve leaves the host's own links standing rather than failing the read.
|
ApprovabilityVerdict: Not approved Macroscope's review found this PR not approvable — This is a substantial multi-provider issue-tracking feature spanning server integrations, persistence, RPC contracts, UI workflows, agent tooling, and background synchronization. It also changes authorization code and product defaults, so the scope and runtime impact require human review. Not approved because:
Review your spending limits in Billing settings, or comment |
|
@macroscope-app Please resynchronize this repository and rerun Macroscope - Effect Service Conventions against current head The latest check still says it reviewed head
All related review threads are resolved. Please refresh the indexed Git state before rerunning the custom check. |
|
Sorry, I'm unable to act on this request because you do not have permissions within this repository. |
There was a problem hiding this comment.
Reviewed the changed web UI for shared-primitive use, Tailwind ownership and visual/interaction preservation. Five concrete findings, all introduced by this patch:
- The issues page's scroll fade names a utility that does not exist, so the page has no fade at all.
- Three controls were reconstructed by hand in the new shared source-control components instead of using
Input/InputGroup/Button, which drops the primitives' focus-visible ring, disabled/dark treatment and coarse-pointer hit target. Two of these are on the existing pull request surfaces too, becausePullRequestSearchInputand the reviewer picker's field were replaced by them. - The new issue filter trigger duplicates the shared
ListFilterMenutrigger's geometry verbatim.
Details inline.
Posted via Macroscope — UI Consistency
There was a problem hiding this comment.
One finding: the new GitHub GraphQL rate-limit budget is a process-wide mutable singleton that two Effect services depend on without declaring it in their environment. The Azure DevOps error findings from the previous run (stacked detail/message in AzureDevOpsIssueProvider, manufactured Error for cause in AzureDevOpsIssueCli) are both resolved at this head.
Posted via Macroscope — Effect Service Conventions
…l0000#112) into the Issues stack # Conflicts: # apps/server/src/auth/RpcAuthorization.test.ts # apps/server/src/auth/RpcAuthorization.ts # apps/server/src/issue/LinearIssueProvider.test.ts # apps/web/src/components/pullRequest/PullRequestMarkdownEditor.test.tsx # apps/web/src/components/pullRequest/PullRequestReactions.tsx
|
@coderabbitai full review Please review the current head |
|
Problem
Issue tracking should work across supported hosts. A full issue URL should remain readable and linkable when no project owns its repository. Provider gaps and project-only routing prevent those flows.
Change
Adds the Issues page and thread issue links for GitHub, GitLab, Azure DevOps, Forgejo/Gitea, and Linear. External issue URLs stay read-only; project-owned issues keep native permission checks.
Verification
The latest local follow-up passed 745 focused tests across contracts, authorization, services, provider adapters, agent tools, and UI, including existing GitHub/GitLab and Forgejo source-control regression tests. Scoped server, web, contracts, client-runtime, and Forgejo typechecks passed. All 24 Linear GraphQL documents validated against the official schema. Focused formatting and lint passed with existing warnings.
Forgejo tests walk all 800 PR refs, cover native overflow, repeat reads, concurrent walks, expiry, eviction, credential changes, and signed cursor rejection before host calls.
The app check used fake local tracker data. It proved no page read before a click, one request for two fast clicks, page append, retry with retained rows, read-only paging, and the exact Linear form link. A mocked HTTP check through the real Forgejo CLI and adapter proved two overflow pages per click and no full-timeline retry. No live tracker write was made.
All eight required CI checks passed on
4acfcf830e. The requested review round completed with all 155 review threads resolved and no new actionable code findings. Maintainer approval remains pending.Screenshots are local. The official GitHub attachment command previously rejected upload because it requires upstream write access. No PR-only assets are committed.
Limits and approval
Linear form submission runs in Linear because its public API does not define the native form-answer protocol. Forgejo oversized timelines remain marked partial: native private filtering cannot prove completion, and an empty physical page stops continuation. Expired or evicted continuation state and adapter restarts require refresh. Dense issue timestamp groups can require complete native paging; missing repository dates or reverse-page metadata can require a full scan with bounded ranking memory.
Live authenticated trackers and native mobile were not tested. Mobile has no issue detail screen. No deployment is claimed. Rate limits can still occur; the change reduces request bursts and honors host pauses.
Human approval remains pending. The prior CodeRabbit full review exceeded its 300-file limit, and Macroscope's review estimate exceeded the workspace cost limit. No bot or maintainer approval is claimed.
Implemented with GPT-6.1 Sol and Claude Opus 5.5 in T3 Code, using the Codex and Claude Agent harnesses.