Skip to content

Port channel windows to mobile#1518

Merged
wesbillman merged 1 commit into
mainfrom
pinky/mobile-channel-window
Jul 5, 2026
Merged

Port channel windows to mobile#1518
wesbillman merged 1 commit into
mainfrom
pinky/mobile-channel-window

Conversation

@wesbillman

@wesbillman wesbillman commented Jul 5, 2026

Copy link
Copy Markdown
Collaborator

Summary

Validation

  • flutter analyze
  • flutter test test/shared/relay/relay_session_test.dart test/shared/relay/nostr_models_test.dart test/features/channels/channel_window_test.dart test/features/channels/channel_messages_provider_test.dart
  • flutter test
  • iOS simulator smoke on iPhone 17 Pro (17D22AD8-E949-42DF-B85B-4E26B5558DBB) against staging relay via:
    • flutter run -d 17D22AD8-E949-42DF-B85B-4E26B5558DBB --dart-define=BUZZ_RELAY_URL=https://sprout-oss.stage.blox.sqprod.co
    • opened #general
    • scrolled back from Jul 5/Jul 3 to Jun 28/29, exercising real cursor paging
    • confirmed no ChannelMessagesNotifier window fallback/error logs during channel open/scroll/thread smoke
    • confirmed thread chips/reactions rendered while paged back
    • sent a live smoke message and saw it appear in simulator
    • opened a 3-reply thread and saw thread subtree content load

Smoke evidence

Scroll-back deep in #general:

Scroll-back deep in #general

Live message appeared after send:

Live smoke message appeared

Thread opened/loaded:

Thread opened and loaded

Notes

  • Live WS fallback/downgrade was not forced in the simulator; fallback behavior is covered in provider tests.
  • The simulator video recording attempt produced a 0-byte file, so screenshots + logs are attached as smoke evidence instead.

Bring the mobile channel timeline onto the server-assembled channel-window path used by desktop. Add the authed HTTP /query transport, NIP-CW parsing/store behavior, thread subtree fetches, relay-provided thread summaries, and retry-safe window pagination while preserving the websocket history fallback.

Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
@wesbillman

Copy link
Copy Markdown
Collaborator Author

Conformance review (Brain): reviewed against the NIP-CW porting contract (checklist A–H derived from #1500 + docs/nips/NIP-CW.md) — details in the Buzz mobile-relay-updates thread. Verified independently: parser/store semantics (39006 as sole exhaustion authority, d-tag request binding, composite-cursor interval asserts with the correct id-ascending tiebreak, immutable page chain, overlap rejection), NIP-98 /query transport incl. exact-body payload hash + nonce, thread-subtree fetch replacing soup-derived replies, WS downgrade fallback retained, retry-safe window pagination. flutter analyze clean + full suite (426 pass / 1 skip) re-run locally; head SHA matches the reviewed working tree exactly. LGTM — approval can't come from this account since it opened the PR.

@wesbillman wesbillman merged commit 6716cd3 into main Jul 5, 2026
25 checks passed
@wesbillman wesbillman deleted the pinky/mobile-channel-window branch July 5, 2026 16:04
tlongwell-block pushed a commit that referenced this pull request Jul 5, 2026
* origin/main:
  fix(zoom) desktop chrome clearance under text zoom (#1490)
  fix(activity panel): handle back navigation (#1487)
  Port channel windows to mobile (#1518)
  perf: GIN index for e-tag containment + delta profile fetch (scroll-back ~2.1s/page) (#1514)
  GUI read-model overhaul: server-assembled channel windows (Correct™ pagination + relay-signed bounds) (#1500)
  feat(desktop): show activity timestamps on demand (#1506)
  feat(reconnect): replace top banner with animated sidebar overlay (#1510)
  docs(nest-skill): explain agent-owned git repos and automatic auth (#1437)
  fix(agent): make stop-hook rejection budget per-prompt, fix stale hook docs (#1503)
  chore(release): release Buzz Desktop version 0.3.42 (#1479)
  fix(desktop): bound read-state localStorage growth and recover from quota errors (#1502)
  Customize macOS DMG installer (#1496)
  mobile: thread scroll-to-bottom and desktop-parity mention autocomplete (#1499)
  fix(agent): honor stop hook retry budget (#1501)
  feat(profile): embed live activity feed in profile aux panel (#1380)
  feat(desktop): contribution heatmap and graphical cards on projects overview (#1497)
  feat(desktop): repository-first projects with git workflows (#1471)
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