ReviewOS

also looking at this

craft-native/craft

fix(mobile): preserve native editing, navigation, and durable media requests

#369
Merged chris wants to merge codex/native-vertical-scroll-tab-swipes into main
36 files +864 -185

Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.

packages/typescript/src/__tests__/bridge-request-id.test.tsmodified+5-2
Changes to packages/typescript/src/__tests__/bridge-request-id.test.ts
@@ -315,14 +315,17 @@ describe('bridge reply correlation', () => {
315315
316316 it('puts a distinct id on every message, fire-and-forget included', async () => {
317317 const h = loadBridge()
318 h.craft.tags.get('/a')
318 const tags = h.craft.tags.get('/a')
319319 h.craft.keychain.set('svc', 'acct', 'pw') // _send, no reply expected
320320 h.craft.window.show?.()
321 h.craft.autoLaunch.isEnabled()
321 const autoLaunch = h.craft.autoLaunch.isEnabled()
322322
323323 const ids = h.sent.map(m => m.i)
324324 expect(ids.every(i => typeof i === 'number' && i > 0)).toBe(true)
325325 expect(new Set(ids).size).toBe(ids.length)
326 h.reply('get', { tags: [] }, h.sent[0].i!)
327 h.reply('isEnabled', { value: true }, h.sent.at(-1)!.i!)
328 await Promise.all([tags, autoLaunch])
326329 })
327330
328331 it('reports a fire-and-forget failure rather than rejecting a live call', async () => {