Repository navigation
fix: simplify automatic log updates - #1099
Merged
Merged
Conversation
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
Following and Latest now load new commits quietly and show one New commits control only when ready content is waiting above a scrolled reader. The next 30-second check also removes arrivals that were deleted or are no longer visible, so a four-commit announcement becomes three and disappears if none remain.
Changes
99+.Validation
composer test:lint: PASS; existing unrelatedno-floating-promisestest warnings remain.composer test:type-coverage: PASS, 100%.composer test:types(PHPStan and TypeScript),bun run build: PASS.bun run test:unit: 153 PASS.bunx vp test run --config tests/draft-images.config.ts: 463 PASS across 44 files, including 35 feed tests.php -d memory_limit=-1 vendor/bin/pest --parallel --processes=8 --ci --coverage --exactly=100.0 --passthru-php="'-d' 'memory_limit=-1'": 4,115 tests, 23,067 assertions, 100% coverage — PASS. An intermediate run overlapped an asset rebuild and hit missing-font/invalid-response failures; the final run after builds settled passed completely.590a4de3: awaiting completion after publication.Visual evidence
Fresh deletion comparison uses the same synthetic content at prior head
0ca6267fand current head590a4de3. Browser polling intervals are advanced by 30 seconds between states to keep the clips short; database deletions and HTTP responses are real. Mobile browser clips use 390 × 844 viewport emulation. The old version retains four stale arrivals; the new version changes to three, then fades away when all are deleted.Deletion comparison — all viewports and themes
Still captures are at 2× resolution.
1440x900, light
1440x900, dark
1366x650, light
1366x650, dark
390x844, light
390x844, dark
Current fixed-slot count boundaries: 1 authors · 3 authors · 4 authors · 102 authors · 103 authors. Exact counts remain accessible; only the overflow display is capped.
Device verification
Fresh iPhone 18 Pro simulator, iOS 27.0, native Safari: client-side Latest → Following transition, scrolling beyond the first screen, and real, unaccelerated 30-second checks showed four → three → none after database deletions. The visible reading position remained still and the control cleared navigation and browser chrome.
Earlier feature evidence: production versus 0ca6267
The following captures document the original silent-loading feature before deletion reconciliation. They remain labeled as the earlier revision; current slot alignment, deletion behavior, and native reconciliation are shown above. Earlier keyboard-open draft preservation, primary-action visibility, fresh reload, and native touch-to-scroll were checked on that revision and were not rerun as part of the deletion-specific device pass.
Original production comparison
Local synthetic fixture compared against production
3617849e, with identical arrivals and scroll positions. Desktop screenshots are viewport emulation at 2×; mobile browser recordings are 390 × 844 emulation with cursor overlay. The actual 30-second polling wait is trimmed from recordings.At the top, insertion stays quiet: MP4.
Before/after screenshots — all viewport sizes and themes
1440x900, light, scrolled
1440x900, dark, scrolled
1366x650, light, scrolled
1366x650, dark, scrolled
390x844, light, scrolled
390x844, dark, scrolled
Keyboard focus, count boundaries, and simulated failure
Count fixtures use actual local database responses, with the poll clock advanced for static capture. The entrance animation is finished before each still. Exact counts remain accessible; the overflow caps at
99+.1 author · 3 authors · 4 authors · 102 authors · 103 authors ·
Simulated HTTP 503: the existing announcement remains intact; no false successful arrival is announced.
Earlier native verification
Native iPhone 18 Pro simulator, iOS 27.0, Safari (not physical hardware): real polling preserves the composer draft with the keyboard open and keeps Commit visible. Client-side Following → Latest transition, fresh reload, scrolling beyond the first screen, navigation/toolbars, and touch-to-scroll/dismiss were checked. The prompt clears navigation and browser controls.
Native Safari MP4
Independent review
Independent Sol 6.1 review (high reasoning, fast service): CODE PASS · VISUAL PASS, no actionable findings or unresolved blockers. Reviewed the full production diff and final eight-file follow-up at base
3617849edfd2f6684d3ddf2da6098a080521cc1a, head590a4de3477159264883a6f2c7c2119c16cca45d, tree958a89708f50fcc0a5846f97aa6649a2976db90a. Current media manifest SHA256:9aa41f8a051e2f4786973e7696b42de3d7b6fa48d6cbd17742478aef71b0e3f4; historical production-comparison manifest:d63df562a14489a0277e583767d4a16f6cd3fa697fd7044653d342385832015f. Independently reran 35 React tests, checked whitespace and all 94 media hashes across both manifests, inspected galleries, count edges, contact sheets and native captures, and fully decoded all ten MP4s. Fresh guest Latest returned 200 without overflow/errors or a prompt, including after scrolling. Broad local validation was reviewed as supplied evidence. Recordings were sampled; native and historical keyboard/draft/touch evidence was inspected rather than independently rerun.Limitations