- 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/
47 lines
1.2 KiB
Markdown
47 lines
1.2 KiB
Markdown
# Systematic Playbook (No Guessing)
|
|
|
|
## Goal
|
|
|
|
Move from ad-hoc trials to controlled experiments where only one variable changes per run.
|
|
|
|
## Rule Set
|
|
|
|
1. One variable per run.
|
|
2. Always execute via experiment runner (creates reproducible artifact bundle).
|
|
3. Do not interpret UI without technical verdict + user observation in same run folder.
|
|
4. Stop a branch after 2 consecutive regressions.
|
|
|
|
## Command
|
|
|
|
Use this command for every run:
|
|
|
|
./tools/experiment-run.sh <profile> <udid> ReBreak
|
|
|
|
Optional timeout (seconds):
|
|
|
|
AB_SERVE_TIMEOUT_SEC=120 ./tools/experiment-run.sh <profile> <udid> ReBreak
|
|
|
|
## Run Order
|
|
|
|
1. current
|
|
2. partial-lite
|
|
3. partial-safe
|
|
4. legacy
|
|
|
|
## Decision Logic
|
|
|
|
1. If verdict is BLOCKED_FMI: disable Find My iPhone, re-run same profile.
|
|
2. If verdict is BLOCKED_PAIRING: re-pair with idevicepair, re-run same profile.
|
|
3. If verdict is BLOCKED_SERVE_TIMEOUT: keep same profile, lower noise, retry once.
|
|
4. If verdict is TECH_SUCCESS: evaluate UI from user-observation.md only.
|
|
|
|
## Promotion Criteria
|
|
|
|
Promote profile to default only if all are true:
|
|
|
|
1. TECH_SUCCESS in 2 consecutive runs.
|
|
2. Sprache + Region preserved.
|
|
3. Apple account preserved.
|
|
4. No registration failure screen.
|
|
5. Fewer or equal setup clicks compared to current.
|