Skip to content

feat(conformance): wave 14 — VM sweep of ten more boot-tier adapters - #90

Merged
deblasis merged 1 commit into
mainfrom
feat/conformance-wave14
Aug 23, 2026
Merged

feat(conformance): wave 14 — VM sweep of ten more boot-tier adapters#90
deblasis merged 1 commit into
mainfrom
feat/conformance-wave14

Conversation

@deblasis

Copy link
Copy Markdown
Contributor

Ten engine-level VM suites (printful, photos, braze, apple-searchads, helius, netsuite, x-articles, workday, whatsapp, threads) — 264 new behavior markers, 844 VM behaviors total. VM tier 28 → 38, boot 44 → 24.

~21 adapter fidelity fixes, the standouts:

  • photos: any authenticated user could read and delete another user's album; upload tokens were infinitely reusable; refresh-issued access tokens never expired despite the advertised expires_in
  • netsuite: the TBA gate probed the substring oauth_signature (matching oauth_signature_method) — a signature-less header passed; the SuiteQL envelope lacked the hasMore/offset/totalResults fields clients page off
  • threads: float timestamps rendered as "2025.0-06.0-15.0T…"; inbox listed oldest-first; ?metric= projection ignored
  • whatsapp: sends without a usable recipient were silently accepted (real API 400s with code 131026)
  • printful: v1 creates stored an internal wrapper doc that leaked into the v2 list, defeated the status filter, and served stale reads
  • apple-searchads: money formatted two different ways in one response; braze: invalid cursor bypassed the fatal envelope; x-articles: publish lacked concurrency_key
  • helius + workday: zero fixes — already faithful (helius with real Solana shapes: pre/post lamports, base58, InstructionError custom codes)

OAuth standardization: authorization codes now survive a failed client-mismatch exchange across all OAuth adapters (instagram, photos, threads, x-articles) — an attacker's failed attempt can no longer deny the legitimate client its code. Found as a recurring pattern (instagram wave 13, photos wave 14), swept via cross-adapter grep, both remaining instances fixed, all four suites assert the safer semantics.

Reviewed by code-reviewer agent: no functional defects; three hygiene findings (stale docstring, stale engine-test comment, duplicate sidecar bullet) fixed pre-merge.

Engine-level suites for printful, photos, braze, apple-searchads,
helius, netsuite, x-articles, workday, whatsapp, threads: 264 behavior
markers (844 VM behaviors total). VM tier 28 -> 38, boot 44 -> 24.

~21 fidelity fixes plus an OAuth standardization. The standouts:
- photos: any authenticated user could read AND delete another user's
  album; upload tokens were infinitely reusable; refresh-issued access
  tokens never expired despite the advertised expires_in
- netsuite: the TBA gate probed the substring oauth_signature (matching
  oauth_signature_method) — a signature-less header passed; SuiteQL
  envelope lacked the hasMore/offset/totalResults clients page off
- threads: float timestamps rendered "2025.0-06.0-15.0T..."; inbox
  oldest-first; ?metric= projection ignored
- whatsapp: sends without a usable recipient were silently accepted
  (real API 400s with code 131026)
- printful: v1 creates stored an internal wrapper doc that leaked into
  the v2 list, defeated the status filter, and served stale reads
- apple-searchads: money formatted two ways in one response
- braze: invalid cursor bypassed the fatal envelope
- x-articles: publish lacked concurrency_key
- helius + workday: zero fixes needed

OAuth standardization: authorization codes now survive a failed
client-mismatch exchange across ALL adapters (instagram, photos,
threads, x-articles) — an attacker's failed attempt can no longer deny
the legitimate client its code. Both updated suites assert survival.

~26 new sidecar bullets (reviewer-verified); one duplicate threads
bullet and two stale burn-semantics comments removed.
@deblasis
deblasis merged commit 6a2a70c into main Aug 23, 2026
1 check passed
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