Skip to content

chore(release): promote develop to main — credit-gated app provisioning + money-surface cleanup - #11694

Merged
NubsCarson merged 6 commits into
mainfrom
develop
Jul 2, 2026
Merged

chore(release): promote develop to main — credit-gated app provisioning + money-surface cleanup#11694
NubsCarson merged 6 commits into
mainfrom
develop

Conversation

@NubsCarson

Copy link
Copy Markdown
Member

Promote develop → main (5 commits over 56c2443)

Follows the 23:23Z promote (#11673). This slice ships the next money/security batch:

Verification

Merge with a merge commit (not squash) to keep main a superset of develop.

[cloud-frontdoor]

lalalune and others added 6 commits July 2, 2026 19:30
* fix(app): keep plugin audit density within ratchet

* chore: refresh type safety ratchet baseline

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
) — no live callers (#11672)

* chore(cloud): delete dead/false-safety redemption + vesting code (#11416) — no live callers

* style(cloud): format redeemable earnings cleanup

---------

Co-authored-by: lalalune <shawmakesmagic@gmail.com>
* test(ios): real WKWebView gesture-semantics XCUITest suite + sr-only AX state probes

- GestureSemanticsUITests: sheet detent flick cycle, launcher pager 50%
  threshold, tap-to-reveal Edit affordance, long-press system-callout
  suppression (with positive control) — all asserted by semantic outcome
  through the web app's AX-visible state probes (#11353).
- ContinuousChatOverlay/HomeLauncherSurface: mirror data-detent/data-page
  into sr-only static texts (data attributes never reach the native AX
  tree); aria-label the inline message editor.
- ios-device-capture.mjs: default -only-testing widened to the whole
  AppUITests target so the lane runs both suites.

Refs #11353

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(ios): aim rail/long-press gestures at the empty home band (y 0.55)

The chip row (welcome strip / calendar-connect) sits at ~0.35 of the
viewport on the home screen; drags there could start on interactive
chips. The 0.55 band is bare wallpaper on every home layout.

Refs #11353

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(ios): document wkwebview gesture driver evidence

* test(ios): submit via the send control + decisive flick velocity

Run-1 findings on the real sim: the iOS keyboard's Return lands in the
web textarea as a literal newline (no Enter keydown → no submit), and
XCUIGestureVelocity.fast is only 750pt/s — right AT the web flick
threshold. Tap the composer's send control instead (and verify the
draft cleared, so the composer's own AX-visible text can't be mistaken
for the sent bubble), and drive flicks at an explicit 2000pt/s.

Refs #11353

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(ios): match the send control across AX types (aria-pressed → Switch)

iOS AX exposes the composer's send SoftButton as a Switch (aria-pressed
maps role button+pressed to a toggle), so a buttons-only query never
found it — verified in the run-2 AX hierarchy dump.

Refs #11353

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(ios): dual-semantic detent cycle + warm-up eviction resilience

The collapsed→half UP-FLICK is thread-gated in the web engine (onPullUp
deliberately refuses when there is nothing to reveal), and sends made
during local-model warm-up can be evicted by the post-turn history
reload — so the old cycle asserted a semantic the app never promises on
a model-less boot. Diagnosed on-sim with an injected pointer-event
recorder: XCUITest touches were delivered cleanly (pd/pm/pu on
chat-sheet-grabber, zero cancels); the refusal was the app's own
thread gate, not the touch pipeline.

- detent cycle: slow-drag free-settle open (ungated distance rule) →
  flick to full → flick down to half → flick down to collapsed, then
  the thread-gated flick-up asserted against AX-observed thread state
  (reveal at half with a thread, refusal on an empty one — both real
  spec'd semantics, never a silent skip).
- new slowDragGrabber driver (hold-before-release kills velocity).
- ensurePersistentUserMessage: bubble must survive the eviction
  window (retry once, then skip honestly naming the warm-up eviction)
  for the edit-affordance and callout positive-control tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test(ios): sim-verified gesture lane — agent-ready knob + PR_EVIDENCE bundle

- ios-device-capture.mjs: --agent-ready-timeout / ELIZA_AGENT_READY_TIMEOUT_SECONDS
  (default 240, 0 = don't wait) so the gesture suite waits for the local model
  before sending chat turns on lanes that can reach readiness.
- GestureSemanticsUITests: waitForAgentReady before every composer send.
- Evidence: full run green on iPhone 16 / iOS 18.1 sim (boot 2/2 + detent +
  pager pass; edit + callout skip with named #11670 precondition), per-step
  screenshots for every assertion, test-summary.json, updated README with the
  pointer-event-recorder diagnosis trail and exact repro commands.

Refs #11353. Surfaced #11669 (registry absolute container paths strand the
local model) and #11670 (warm-up sends evicted by the post-turn reload).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(evidence): frame-capture video of the green detent + pager sim runs

XCTest only auto-attaches native recordings for FAILED tests and simctl
recordVideo was held by an orphaned host recording session, so the motion
record is a ~2.8fps simctl-screenshot loop assembled with ffmpeg (47s,
both tests green — their 5th consecutive pass on this sim).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Shaw <shawgotbags@gmail.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: lalalune <shaw.nicola.walters@gmail.com>
…op swarm-synthesis double-posts and suppressed-error leaks (#11634) (#11689)

Reviewed by [sol-orch]: full diff read; ownership predicate mirrors readOrigin exactly (incl. non-short-circuit UUID fallthrough + optional source); stopped/custom-validator/no-router paths verified to still synthesize; per-session terminal serialization closes the double-synthesis and stopped-swallow races. Locally re-ran touched suites (46/46) + full plugin suite (1291 pass / 15 fail = exact pre-existing env baseline, zero new).

Co-authored-by: wakesync <shadow@shad0w.xyz>

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Your trial has ended. Reactivate Greptile to resume code reviews.

@NubsCarson
NubsCarson merged commit c5ceede into main Jul 2, 2026
11 of 81 checks passed
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0403b0f5-ddf4-4d03-93ec-a31344f4bd8d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

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