Skip to content

feat(pr-review): normalize optional context payloads - #5684

Closed
iscekic wants to merge 1 commit into
mobile-pr-review-context-5458-s2from
mobile-pr-review-context-5458-s3
Closed

iscekic wants to merge 1 commit into
mobile-pr-review-context-5458-s2from
mobile-pr-review-context-5458-s3

Conversation

@iscekic

@iscekic iscekic commented Aug 29, 2026 •

Copy link
Copy Markdown
Collaborator

No new behavior — this change only handles review information internally.


Summary

Old payloads remain valid: GitHubPrReviewOverviewSchema/GitHubPrReviewOverview accept optional context; GitHubPrReviewInboxItemSchema/GitHubPrReviewInboxItem and GitHubPrReviewInboxResultSchema/GitHubPrReviewInboxResult accept optional, nullable authorDisplayName on items.
NormalizedGitHubPrReviewOverviewSchema and NormalizedGitHubPrReviewOverview require context in parsed output, preserving supplied context or deriving unavailable defaults from the overview revision.
NormalizedGitHubPrReviewInboxItemSchema, NormalizedGitHubPrReviewInboxItem, and NormalizedGitHubPrReviewInboxResultSchema require authorDisplayName in parsed output, defaulting omissions to null without changing pagination, shared authors, or legacy checks.

Files
  • apps/web/src/lib/github-pr-review/dtos.ts — modified (+37 lines, no deletions). Adds optional wire fields, normalized schemas, and inferred types. Builds fallback context from prNodeId, number, headSha, and baseRef, with baseRepoFullName and baseSha set to null. Reuses GitHubPrReviewContextSchema defaults: omitted sources remain unavailable, collection completeness stays unknown, and queue membership stays unknown rather than absent. Preserves supplied context and legacy fields; Inbox normalization retains names, null authors, pagination, and empty results. Keeps the wire additions optional until old clients, servers, and records retire.

Tests: 1 modified test file, apps/web/src/lib/github-pr-review/context-dtos.test.ts (+348 lines, no deletions). Adds legacy and full-context fixtures, checking fallback revisions, unavailable defaults, preserved evidence, distinct checks, and unchanged legacy fields. Covers confirmed empty data, queued membership despite position failures, null authors and names, mixed Inbox pages, empty results, and pagination. Confirms that shared comment-author and legacy aggregate checks contracts still reject extra fields.
Generated: 0 files changed.


Visual Changes

Visual Changes: N/A

Verification

  • Manual tests: not run. This level only adds wire normalization; live backend and iOS verification waits for the completed stack tip.

Reviewer Notes

Human steps

None. This change needs no human action before or after merge.

Notes

This level adds compatible wire normalization. Live backend and iOS verification will run on the completed stack tip.

  • The handoff reports all 20 scoped tests passed.
  • The handoff reports changed-file lint, format, and whitespace checks passed.

Stacked PRs — merge bottom to top. Each level shows only its own diff.

Runtime verification (E2E, user advocacy, simplify) runs on the tip PR over every level.
Every level keeps its own checks, its own bot review, and its own threads; each one is answered on its own PR.
Each level is its own deliverable: it builds and passes its own checks alone.
A finding on a level is repaired on that level, then carried upward with stack.sh forward.

  1. mobile-pr-review-context-5458-s1 — ci(pr-review): enable checks for context stack bases #5679
  2. mobile-pr-review-context-5458-s2 — feat(pr-review): define source-backed context contracts #5682
  3. mobile-pr-review-context-5458-s3 — feat(pr-review): normalize optional context payloads #5684 ← this PR
  4. mobile-pr-review-context-5458-s4 — feat(pr-review): map available REST context metadata #5687
  5. mobile-pr-review-context-5458-s5 — feat(pr-review): isolate optional context reads #5690
  6. mobile-pr-review-context-5458-s6 — feat(pr-review): complete labels and requested people #5691
  7. mobile-pr-review-context-5458-s7 — feat(pr-review): define review source documents and normalization #5695
  8. mobile-pr-review-context-5458-s8 — feat(pr-review): select source-backed review decisions #5696
  9. mobile-pr-review-context-5458-s9 — feat(pr-review): integrate independent review context reads #5699
  10. mobile-pr-review-context-5458-s10 — test(pr-review): preserve review source failure coverage #5703
  11. mobile-pr-review-context-5458-s11 — feat(pr-review): define linked issue source contracts #5706
  12. mobile-pr-review-context-5458-s12 — feat(pr-review): integrate typed linked issue context #5707
  13. mobile-pr-review-context-5458-s13 — test(pr-review): cover linked issue source failures #5708
  14. mobile-pr-review-context-5458-s14 — feat(pr-review): preserve structured policy evidence #5709
  15. mobile-pr-review-context-5458-s15 — feat(pr-review): normalize applicable merge policies #5712
  16. mobile-pr-review-context-5458-s16 — feat(pr-review): read applicable merge policies #5713
  17. mobile-pr-review-context-5458-s17 — feat(pr-review): define requirement observation contracts #5720
  18. mobile-pr-review-context-5458-s18 — feat(pr-review): expand named policy requirements #5723
  19. mobile-pr-review-context-5458-s19 — feat(pr-review): evaluate evidenced check requirements #5727
  20. mobile-pr-review-context-5458-s20 — feat(pr-review): evaluate evidenced merge policies #5728
  21. mobile-pr-review-context-5458-s21 — test(pr-review): preserve check evaluation coverage #5730
  22. mobile-pr-review-context-5458-s22 — test(pr-review): preserve policy evaluation coverage #5732
  23. mobile-pr-review-context-5458-s23 — feat(pr-review): integrate requirement observation reads #5735
  24. mobile-pr-review-context-5458-s24 — test(pr-review): preserve requirement source coverage #5736
  25. mobile-pr-review-context-5458-s25 — test(pr-review): complete requirement reader coverage #5739
  26. mobile-pr-review-context-5458-s26 — feat(pr-review): preserve queue membership and position #5741
  27. mobile-pr-review-context-5458-s27 — refactor(pr-review): share mobile-safe context contracts #5744 (tip)

@kilo-code-bot

kilo-code-bot Bot commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

Code Review Summary

Status: No Issues Found | Recommendation: Merge

Executive Summary

Optional context and authorDisplayName wire fields plus normalized schemas are backward-compatible, and the new tests match the fallback and preserve-full-payload contracts.

Files Reviewed (2 files)
  • apps/web/src/lib/github-pr-review/dtos.ts
  • apps/web/src/lib/github-pr-review/context-dtos.test.ts

Reviewed by grok-4.6 · Input: 136.6K · Output: 13.3K · Cached: 363.1K

Review guidance: REVIEW.md from base branch mobile-pr-review-context-5458-s2

This was referenced Aug 29, 2026
@iscekic

iscekic commented Aug 31, 2026

Copy link
Copy Markdown
Collaborator Author

Closing: the owner stopped this workflow section. The branch is retained.

@iscekic iscekic closed this Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant