Skip to content

feat(native): add community extras and media preparation - #450

Merged
kalvinnchau merged 6 commits into
mainfrom
am/native-community-extras
Sep 30, 2026
Merged

kalvinnchau merged 6 commits into
mainfrom
am/native-community-extras

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Route invite minting and relay-advertised GIF search through the native relay adapter.
  • Prepare HEIC and supported video/voice-note input in the native host before authenticated upload. Keep fixed demuxers, private temporary storage, two-slot admission, bounded subprocesses and shared upload response policy.
  • Preserve full HEIC tile grids in both conversion hosts; hide Windows ffmpeg consoles.
  • Let the frontend own container recognition; native code accepts only fixed mode/demuxer pairs. Remove the unused native HostedCommunities identity read.
  • Pin modern ffmpeg/ffprobe through Hermit so Linux hosted conversion tests execute and fail if tools are missing.

Validation at 2ab800d1ec4cdf89dbb599b2113cb33287b9fd17

  • Rebased onto main 329fe2a1; remote head verified.
  • Full buzz-foundation package: 192 unit tests and 1 integration test passed; 4 pre-existing ignores. Doctests passed.
  • Mandatory pre-push: TypeScript, all selected Vitest (455 files / 5582 tests), design-system checks, workspace all-target Clippy with -D warnings passed.
  • Synthetic six-tile HEIC fixture: both actual preparation paths produce 1536×1024 JPEGs. Restoring -map 0:v:0 made both regression tests fail with 512×512, then restoring fixes passed. Mutation evidence was before the rebase; unchanged conversion code also passes afterward.
  • Native tests cover pre-spawn cancellation, active-child cancellation/deadline/output-size kill, two-slot admission/release, missing-tool 503, and private temp permissions.
  • One earlier full Rust run hit the existing terminal Ctrl+C failure; subsequent full runs passed without modifying terminal code. One interim Vitest run exposed the obsolete native-identity test; that test was removed together with its inert implementation, restoring HostedCommunities to the base.
  • Windows conversion tests are explicitly ignored without ffmpeg; no silent early-return passes. Windows native validation dispatched: https://github.com/block/buzz-app/actions/runs/36669037004
  • Older/unknown host ffmpeg versions now fail closed before HEIC conversion; release n prefixes are accepted. Native probe is bounded to 4096 bytes and 5 seconds, cancellable, and hides Windows consoles.
  • Native old-version coverage calls the real preparation path with a host-owned executable; broker tests prove old versions never convert/deliver and n9.0.2 can deliver.
  • Explicit ffmpeg/ffprobe CI provisioning now occurs before timed tests. Earlier hosted JavaScript timed out on the conversion test at 2798882c; earlier Windows Clippy failed on Unix-only builder mutability. Both are fixed; hosted JavaScript and Windows validation now pass.
  • All automatic hosted checks pass at this head: JavaScript, Rust/tool integration, browser measurements, all 12 browser shards, CI required, Semgrep, zizmor and DCO. Windows dispatch 36669037004 also passed; real Windows conversions are explicitly ignored there. Peon independently approved the fixes at this head in the originating Buzz thread (agent review only; correctness/minimalness/elegance 9/10 each).

Pending before readiness

  • Packaged-app/live-relay exercise and human validation per AGENTS.md. This PR remains draft. No merge/release claim.
  • Windows console behavior still needs a real GUI-host exercise. Windows CI does not run real conversion tests.
  • Optional invite-error wording and repeated GIF discovery suggestions are deferred; no related redesign in this correction.

Manual check

Run the desktop app against a test community with modern ffmpeg installed. Mint an invite, search/select a GIF, and upload tests/fixtures/media/tiled.heic and a supported video. The HEIC must render as the full 1536×1024 picture, not a 512×512 corner; reopen the conversation and verify attachments. Cancel a running conversion and verify no attachment uploads. On Windows, verify no ffmpeg console appears. A human must explicitly confirm these checks before readiness.

@kalvinnchau
kalvinnchau marked this pull request as ready for review September 30, 2026 03:10
@kalvinnchau
kalvinnchau requested review from a team, comp615 and wesbillman as code owners September 30, 2026 03:10

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One change needed: restore the broker’s warning-free Vite config boundary (inline finding).

Star Lord’s automated source review via Wes’s account (wesbillman). Head 49472fcca71700a3f564e43ffbed6d78be865b1a; base 9cdb328319a837d306cccf73070e192d4ccee8b8. Source-only, including an independent Rust lifecycle/IPC review; we executed no code or tests. Hosted JavaScript/required CI fails as cited inline. Packaged-app, live-relay and human acceptance remain unverified; this is not approval or merge authorization.

Comment thread src/features/relay/gifs.ts
@kalvinnchau
kalvinnchau force-pushed the am/native-community-extras branch from 49472fc to 8b71ab5 Compare September 30, 2026 03:22

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No further changes requested: the dependency-free GIF capability module and direct broker import address the previous finding, with the warning assertion preserved.

Star Lord’s automated source review via Wes’s account (wesbillman), head 8b71ab5da52d30fc4f2aaf478d959830d4d69249, base 4e1cf4b8fc93088fad7110e63e6681cc3aa4e322. This source-only follow-up checked the repair and rebase integration; no code or tests were executed locally. Hosted required CI passes, but Windows was skipped and packaged-app, live-relay, cross-account and human acceptance remain unverified—not approval or merge authorization.

@kalvinnchau
kalvinnchau marked this pull request as draft September 30, 2026 03:52
@kalvinnchau
kalvinnchau force-pushed the am/native-community-extras branch from 8b71ab5 to 2798882 Compare September 30, 2026 04:06
@kalvinnchau
kalvinnchau marked this pull request as ready for review September 30, 2026 04:47

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No new changes requested in this conversion follow-up: the HEIC grid fix, bounded version probe and tool provisioning preserve the reviewed upload contract.

Star Lord’s automated source review via Wes’s account (wesbillman), with independent native-lifecycle review; head 2ab800d1ec4cdf89dbb599b2113cb33287b9fd17, base 329fe2a1de0ad7f9aa8eebbc02e1a957bcafa25d.

Hosted required CI and Windows validation pass, but real Windows conversions are explicitly ignored. We ran no code or tests; packaged-app/live-relay behavior, Windows GUI-console behavior and human acceptance remain unverified—this is not approval or merge authorization.

am added 5 commits September 30, 2026 07:58
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau force-pushed the am/native-community-extras branch from 2ab800d to e76994c Compare September 30, 2026 14:59
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau merged commit 9ab4a17 into main Sep 30, 2026
34 of 37 checks passed
@kalvinnchau
kalvinnchau deleted the am/native-community-extras branch September 30, 2026 16:05
TheSentinel454 pushed a commit that referenced this pull request Sep 30, 2026
* origin/main: (27 commits)
  Let plugin pages publish NIP-AR artifacts and embed the host thread view (#434)
  test(app): migrate entity-navigation test off removed buzz://open locator API (#463)
  Show agent activity in navigation (#423)
  test(browser): hold motion when it commits, not on its start event (#459)
  fix(navigation): ignore unknown query parameters on Buzz links and remove the buzz://open locator (#457)
  feat(design-system): distinguish controls on floating surfaces (#429)
  feat(native): add community extras and media preparation (#450)
  Clone inventory identities through reviewed text and fresh identity creation (#289)
  feat(communities): add right-click actions to the community rail (#400)
  fix(messages): keep a send reveal pending until its scroll runs (#454)
  fix(messages): reserve a stable scrollbar gutter on the channel feed (#451)
  fix(sidebar): list plugin pages as sidebar rows via an opt-in primary flag (#401)
  feat(channels): surface canvas content in channel settings (#426)
  fix(profiles): remove redundant presence status row (#394)
  test(browser): count live retries once the page handles startup controls (#443)
  feat(composer): host-owned resource links for the Projects picker (#445)
  feat: support native read state and recent channel activity (#444)
  feat(native): serve relay media and uploads in packaged builds (#433)
  feat(channels): suggest joined channels in the composer (#446)
  feat: support native agent activity, library, memories, and community resolution (#441)
  ...

Signed-off-by: Codex <noreply@openai.com>
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.

3 participants