[2026-05-14] gha-ci-executor: fix Peekaboo/TCC assessment, add task tagging contract, scope guardrails, orchestrator link
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
- **Asana task: MM Bots**: https://app.asana.com/1/137249556945/project/908478224964033/task/1214799615211686
|
- **Asana task: MM Bots**: https://app.asana.com/1/137249556945/project/908478224964033/task/1214799615211686
|
||||||
- **Mattermost Migration Plan**: [[mattermost-migration]]
|
- **Mattermost Migration Plan**: [[mattermost-migration]]
|
||||||
- **Executor Orchestrator Redesign**: [[executor-orchestrator-redesign]]
|
- **Executor Orchestrator Redesign**: [[executor-orchestrator-redesign]]
|
||||||
|
- **Executor Orchestrator Redesign**: [[executor-orchestrator-redesign]]
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -272,9 +273,21 @@ Sentry webhook
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Peekaboo on GHA — Constraint
|
## Peekaboo on GHA — Revised Assessment
|
||||||
|
|
||||||
GHA hosted runners run with **SIP enabled** — `tccutil insert` for Screen Recording / Accessibility doesn't work.
|
Earlier assessment ("SIP blocks TCC") was incorrect. Actual situation:
|
||||||
|
|
||||||
|
- GHA runner user has `sudo` access
|
||||||
|
- SIP protects system files (`/System`, `/usr`) — NOT user-level `TCC.db`
|
||||||
|
- `TCC.db` is at `~/Library/Application Support/com.apple.TCC/TCC.db`
|
||||||
|
- Can be modified via `sqlite3` with sudo → grants Screen Recording + Accessibility
|
||||||
|
- This is a standard CI pattern for screenshot testing
|
||||||
|
|
||||||
|
Xcode automation already works on GHA (AppleScript/XCUITest) — same TCC layer.
|
||||||
|
|
||||||
|
**Revised conclusion: Peekaboo on GHA hosted runner is likely viable.** Needs validation in Phase 1.
|
||||||
|
|
||||||
|
Fallback if sqlite3 approach fails: ddg-vm via SSH from GHA job (existing infra, confirmed working).
|
||||||
|
|
||||||
**Solution for visual reproduction:**
|
**Solution for visual reproduction:**
|
||||||
|
|
||||||
@@ -360,7 +373,45 @@ No Prefect needed — this path is synchronous and triggered by humans.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phased Implementation
|
## Task Intake & Scope Control
|
||||||
|
|
||||||
|
### Asana Tagging Contract
|
||||||
|
|
||||||
|
Only tasks explicitly tagged for automation enter the pipeline. The agent never self-selects tasks.
|
||||||
|
|
||||||
|
| Tag | Meaning |
|
||||||
|
|---|---|
|
||||||
|
| `executor:ready` | Task approved for autonomous execution — analyst reviews and tags this |
|
||||||
|
| `executor:analyze` | Analysis Agent runs, generates prompt, but does NOT dispatch GHA — output goes to Asana comment for human review |
|
||||||
|
| `executor:hold` | Task in queue, blocked (dependency, unclear scope) |
|
||||||
|
|
||||||
|
Workflow:
|
||||||
|
1. Alex (or designated reviewer) tags task `executor:ready` in Asana
|
||||||
|
2. Prefect polls Asana for tasks with this tag (every N min, or webhook)
|
||||||
|
3. Tag is removed / replaced with `executor:in-progress` once dispatched
|
||||||
|
4. No tag = not touched, ever
|
||||||
|
|
||||||
|
### Scope Guardrails (Eagle auto-approval layer)
|
||||||
|
|
||||||
|
From [[executor-orchestrator-redesign]]: Eagle monitors `#executor` channel using message protocol.
|
||||||
|
GHA workers use same `[REQUEST:]` / `[ESCALATE:]` protocol — Eagle is the gatekeeper regardless of where the worker runs.
|
||||||
|
|
||||||
|
```
|
||||||
|
Asana task tagged executor:ready
|
||||||
|
→ Prefect: run_analysis_agent()
|
||||||
|
→ Prefect: dispatch_gha()
|
||||||
|
→ GHA worker posts [STATUS:] / [REQUEST:] to MM #executor-queue
|
||||||
|
→ Eagle monitoring cron (2 min) reads channel
|
||||||
|
→ Auto-approve safe actions, escalate ambiguous to Alex
|
||||||
|
→ Worker proceeds only after approval
|
||||||
|
```
|
||||||
|
|
||||||
|
Auto-approval rules (same as orchestrator redesign):
|
||||||
|
- `create_worktree`, `run_build`, `run_tests`, `open_draft_pr`, `push_branch` → ✅ silent approve
|
||||||
|
- `post_asana_comment`, any scope expansion → ⚠️ escalate to Alex
|
||||||
|
- `merge_pr` → ❌ always escalate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Phase 1: GHA Validation (1-2 days)
|
### Phase 1: GHA Validation (1-2 days)
|
||||||
- [ ] Create `executor-worker.yml` in apple-browsers repo
|
- [ ] Create `executor-worker.yml` in apple-browsers repo
|
||||||
|
|||||||
Reference in New Issue
Block a user