Repository navigation
Conversation
Composer/quote/reply cards, debounce, resilient shared polling and fallback rendering. Codex-Thread: 01a15b08-d4ad-7e72-8725-b3ea1fde71ce
Keep each layer based on the updated predecessor without rewriting history. Codex-Thread: 01a15b08-d4ad-7e72-8725-b3ea1fde71ce
Keep the layer based on its updated predecessor without rewriting history. Codex-Thread: 01a15b08-d4ad-7e72-8725-b3ea1fde71ce
This was referenced Oct 26, 2026
Codex-Thread: 01a15b08-d4ad-7e72-8725-b3ea1fde71ce
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Shows the selected link card while writing commits, replies, and quotes. Keeps the card mounted across writing/Preview and handles loading, cancellation, unavailable previews, and bounded polling.
Stack 5/6, split from closed #891. Depends on
feat/draft-link-preview-api. This PR is in the fork to keep the review diff limited to this layer; open it upstream after its dependency lands.Changes
Diff against this PR's base: 17 files, +1,238/-133. 64% of changed lines are tests, fixtures, or test support.
Visual explanation
flowchart TD U["Selected composer URL"] --> D["400ms debounce; cancel stale request"] D --> C["Request shared draft preview"] C --> P{"Pending?"} P -- Yes --> Q["Bounded polling with Retry-After handling"] Q -- Completed --> P Q -- Exhausted --> R P -- No --> R["Render card or unavailable fallback"] R --> V["Same mounted card in writing and Preview"]Stack and merge order
Layers 2–6 target their immediate predecessor in the fork. Submit them upstream in order after their dependency lands; each review diff contains only its layer.
Validation
PreviewLinknow lives underApp\Contracts\Services(namespace-only follow-up, headdd4bf7522a00dbbfcf2e0a56f10ef93b848096ed). Focused fetching/verification suites and the final stack’s required checks passed after the move; the earlier per-layer results and implementation review below remain the baseline.Container checks passed on PHP 8.5.12: 4,650 PHP tests / 25,764 assertions, 100% PHP coverage and type coverage, 223 Node tests, and 662 component tests across 53 files. PHPStan, TypeScript, lint, and production build pass (19 lint warnings, no errors).
Lint: Pint, Rector
--dry-run --debug(same rules, serial execution), and Bun lint. Other commands:composer test:types,composer test:type-coverage, full parallel Pest CI coverage at exactly 100%,bun run test:unit, andbun run build.Visual evidence
Desktop Chrome, dark theme, cropped to the relevant card/composer. Captured from the reassembled stack; no post was published and the existing draft was preserved.
The screenshot shows the selected card before Commit. Earlier desktop smoke also verified Giphy loading in quotes and retention when switching to Preview; no renewed before/after recording is attached.
Device verification
Desktop Chrome smoke only. No hardware/simulator mobile verification or renewed full viewport/theme/CLS matrix is claimed.
Independent review
Independent code review: PASS, base
5277cd0fc4549392fb4899e830f7505df7664d52, headb541a6cb256d955ff6e93d891e6188fc70d317c7. Full visual/device review remains incomplete.Limitations
Hosted CI has not been verified for this new PR. The existing visual/device evidence gaps remain disclosed above.
Codex-Thread: 01a15b08-d4ad-7e72-8725-b3ea1fde71ce