Skip to content

Add mixed templates and bounded native carousels - #51

Draft
purpshell wants to merge 5 commits into
mainfrom
codex/native-interactive-web
Draft

purpshell wants to merge 5 commits into
mainfrom
codex/native-interactive-web

Conversation

@purpshell

@purpshell purpshell commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

Linked Devices now build canonical native reply/CTA controls and hydrated templates for replies mixed with URL/call CTAs. Enforce ten total controls and at most three CTAs, preserve stable reply IDs/context, and reject unsupported reply/copy or reply/catalog mixtures. Add typed 2–10-card image/video carousel construction with homogeneous controls per card and unique reply IDs across cards.

Hydrated delivery uses empty root biz/hsm metadata without fabricated approval, category or verified attribution. Native flow retains its distinct category limits. Integrated Inspector evidence includes encrypted mixed direct/group controls and typed 2/10-card direct plus 2-card group carousels; the complete consumer matrix also passes all three media-header types and native campaign test-send/launch/reply attribution.

Current candidate and hosted source checks (2026-10-28)

  • Candidate: 7d5e4134a69027627df16cc8a0d2c501a412a1fb, a normal merge with ordered parents afbbf20ed76a7946430dc0a27cfdf18631c61f76 and current library main 7852ff1c171870a1fe43ce366799a00385572fd9.
  • Hosted-tested merge: 60044a1f09ee00e683d36e2aa04926452b027574. Its tree exactly equals the candidate tree, 4dff61f6f3756c99c63981d82a777857a1e2e5b0.
  • Go 1.26.10 job and Go 1.27.3 job passed. Actual job logs confirm generated MEX checks, build, go test -v ./... and pre-commit checks, including vet/staticcheck.
  • CodeRabbit is skipped for the draft. No submitted reviews or inline review threads were present at inspection; green build checks are not review approval.

The consumer revision and Inspector evidence below describe earlier, pinned work. They do not establish current backend tulir#562 qualification, a new accepted dependency pin, package publication, current provider/mobile acceptance or whole-client shutdown completion. No local tests or native/provider flows were run for this CI-event receipt.

Draft and release gates remain in place. Release coordinates the merge slot; no main merge, tag, publication, consumer repin or feature activation is included. Staging deployment is deferred.

Historical consumer revision (2026-10-24)

  • Head afbbf20ed76a7946430dc0a27cfdf18631c61f76, Go pseudo-version v0.0.0-20261021083235-afbbf20ed76a (confirmed with go list -m).
  • It already contains 29a42459a4d12ffc9553f6279610106d31c8a148 (v0.0.0-20261010065153-29a42459a4d1, PR Defer server AB props acknowledgements until sync completion #49), the revision polymorfa dev pins. That commit reaches this branch through main's Fix data race on the socket disconnect handler #46 merge (9f40228a, first parent 29a42459) and the main merge afbbf20. No further merge was needed.
  • At afbbf20: go vet ./... and go test -count=1 ./... pass locally (Go 1.27.1).

Merge gate (2026-10-28)

  • Ruleset 20614462 "push protection" (active, ~DEFAULT_BRANCH): deletion, non-fast-forward and pull request rules. The pull request rule requires 1 approving review, approval of the last push, resolved review threads, and extra approval for unattributed changes; stale approvals are dismissed on push.
  • Current head 7d5e4134a69027627df16cc8a0d2c501a412a1fb: 0 reviews, so the required approval is missing. This is a real source merge gate, not a pending product decision.
  • Bypass actor: user purpshell (id 52720753, always). No admin bypass will be used for this PR, and no automated review is requested. It stays draft and unmerged until an independent approval of the current head.
  • polymorfa#562 pins this unmerged head for integration only; that pin is not acceptance.

Six-part accounting

Part Status
API Unaffected here. This is a library. The customer API contract for interactive messages lives in the backend consumer polymorfa/polymorfa#562.
SDKs (all six languages) Unaffected here. SDKs talk to the Polymorfa API, not HyperMeow. Any SDK change follows from tulir#562's API contract.
CLI Unaffected here. The CLI uses the SDK and has no HyperMeow dependency; assessed through tulir#562.
Docs Unaffected here. HyperMeow is not documented on the customer docs site; customer docs for interactive messages belong to tulir#562.
Feature release / flags Unaffected here. The library has no flags; release gating and availability are owned by tulir#562. No tag or publication.
Admin Unaffected here. The library adds no staff-visible state; any Admin coverage is assessed in tulir#562.

Backend consumer: https://github.com/polymorfa/polymorfa/pull/562. Draft only: no tag, publication or Meta/mobile availability claim. Repin consumers to the reviewed main revision before release.

Rebased 2026-10-28 onto the live base with identical patches and tree; old head 4c50f81 kept at backup/interactive-rebase-20261028.

@coderabbitai

coderabbitai Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@purpshell purpshell changed the title Fix canonical native interactive button messages Add mixed templates and bounded native carousels Oct 14, 2026
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