- ChatBubble: useActionSheet replaces custom Modal (native iOS popup, Android bottom sheet) - DM mode (isDM prop): hides like-count, shows Insta-style heart badge under bubble when liked - Group chat unchanged - Cleanup: remove unused Modal/Platform imports, sheet styles, actionsOpen state - deploy.sh: auto-detect ANDROID_HOME + auto-create local.properties for local Gradle - NEXT_RELEASE.md: DM reactions release note - Includes other staged work across binder-mac, marketing, ops/mdm, ios/
1.2 KiB
1.2 KiB
Systematic Playbook (No Guessing)
Goal
Move from ad-hoc trials to controlled experiments where only one variable changes per run.
Rule Set
- One variable per run.
- Always execute via experiment runner (creates reproducible artifact bundle).
- Do not interpret UI without technical verdict + user observation in same run folder.
- Stop a branch after 2 consecutive regressions.
Command
Use this command for every run:
./tools/experiment-run.sh ReBreak
Optional timeout (seconds):
AB_SERVE_TIMEOUT_SEC=120 ./tools/experiment-run.sh ReBreak
Run Order
- current
- partial-lite
- partial-safe
- legacy
Decision Logic
- If verdict is BLOCKED_FMI: disable Find My iPhone, re-run same profile.
- If verdict is BLOCKED_PAIRING: re-pair with idevicepair, re-run same profile.
- If verdict is BLOCKED_SERVE_TIMEOUT: keep same profile, lower noise, retry once.
- If verdict is TECH_SUCCESS: evaluate UI from user-observation.md only.
Promotion Criteria
Promote profile to default only if all are true:
- TECH_SUCCESS in 2 consecutive runs.
- Sprache + Region preserved.
- Apple account preserved.
- No registration failure screen.
- Fewer or equal setup clicks compared to current.