# Session notes — 27 Aug 2026

## Done — Phase 3b

### Live GitHub
- `HttpGitHubClient` uses Git Data API (blobs → tree → commit → branch ref → draft PR).
- `GIT_PROVIDER=github` with `GIT_REPO_URL`, `GIT_DEFAULT_BRANCH`, `GITHUB_TOKEN`.
- Commits only `force-app/**` (and optional `sfdx-project.json`); local summaries stay in artifacts.

### Salesforce deploy validate
- `MockSalesforceDeployer` / `CliSalesforceDeployer` in `packages/integrations/salesforce.py`.
- Orchestrator: stubs → `deploy.json` → PR; deploy failure → `FAILED`.
- Production-like org aliases refused; default `SALESFORCE_DEPLOY_CHECK_ONLY=true` (`--dry-run`).

### Expanded stubs
- ApexClass, ApexTrigger, Flow, LightningComponentBundle generated (no longer deferred).
- Allowlist enforcement unchanged.

### Tests / docs
- `pytest -q` — 34 passed (GitHub mocked HTTP, new stubs, deploy fail path).
- README, `.env.example`, Phase 3 handoff updated.

## Blockers / next
- Live smoke: client `GITHUB_TOKEN` + sandbox `sf` auth.
- Non-dry-run lower-org apply (optional).
- Phase 4: Code Reviewer / QA.
