perf(mobile): compositor 'render-then-arm' chat-open slide + robust load-older anchor; remove diagnostics
Slide (workflow-verified): the jump was the main thread building the message DOM + scroll writes DURING the 300ms animation. Now: render off-screen first, then arm a transform-only slide on a promoted GPU layer (translate3d/contain:layout paint) with all innerHTML/scrollTop work deferred to transitionend (afterOpenSlide queue). armOpenSlide runs after the sync render; appendBubble defers live writes mid-slide. Load-older jump: anchor on the specific oldest-loaded message element (not scrollHeight math, which broke when prepended images loaded and shifted content) and re-anchor as those images load. Removed all /api/dbg diagnostics (client reporter + server route + spike/diag probes). Build marker -> 2026-07-18-batch121. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1004,13 +1004,6 @@ try {
|
||||
} catch (_) {}
|
||||
route('GET', '/api/build', (req, res) => json(res, 200, { build: APP_BUILD }));
|
||||
|
||||
// TEMP mobile debug sink: the app POSTs its real runtime state here so we can diagnose device-only issues
|
||||
// from the server log (docker logs bizgaze-support) without screenshots. Remove once mobile bugs settle.
|
||||
route('POST', '/api/dbg', async (req, res) => {
|
||||
try { const b = await readBody(req); console.log('[MDBG]', JSON.stringify(b)); } catch (_) {}
|
||||
json(res, 200, { ok: true });
|
||||
});
|
||||
|
||||
// Mint a LiveKit join token for the signed-in user + a specific room (the 6-digit meeting code).
|
||||
// The room-membership/host authorization already happens over the meeting WebSocket; this only
|
||||
// hands the client a media-plane credential scoped to that room and its own identity.
|
||||
|
||||
Reference in New Issue
Block a user