# Land project-color settings drift

audience: AI coding agents first.

status: ACTIVE
owner: main session
task IDs: session task #3
source request: owner, 2026-08-12 — "merge the settings drift to main"

## Outcome

Reconcile committed `wt/factory-settings` project-color collector changes onto current `origin/main`; verify, land, deploy, and prove installed behavior. Remove live service links to abandoned worktree source only when deployment repoints them through canonical deploy paths.

## Acceptance criteria

1. Preserve `wt/factory-settings` unchanged until landed commit and installed receipt exist.
2. Cherry-pick only its six non-merge project-color commits; NEVER copy files across bases.
3. Resolve current-main conflicts semantically; keep current collector behavior outside project-color persistence unchanged.
4. Run collector tests, including project-color persistence regressions; address every warning.
5. Review final delta for atomic-write, path-validation, TOML-preservation, and API correctness.
6. Land on current `origin/main` through project ship path, deploy locally, and prove installed collector endpoint behavior.
7. Verify `agent-reaper.service` no longer resolves through `wt/factory-settings`; repoint through canonical deploy source without changing its policy.

## Preserved WIP

- Source: `/home/user/Projects/overdeck/.worktrees/factory-settings`
- Branch: `wt/factory-settings`
- Tip: `21ec7ba80503d6397ee32edee6635def33fdd27e`
- Integration: `/home/user/Projects/overdeck/.worktrees/settings-drift-integration`

## Constraints

- Source branch is 287 commits behind and seven commits ahead of current `origin/main`.
- Source worktree is clean; do not mutate or retire it before final receipt.
- Install/deploy only from clean landed source for collector product changes.
- Never weaken resource guards or reaper policy while correcting service provenance.

## Execution steps

1. Inspect seven-commit delta and current collector contracts.
2. Apply delta onto integration branch; resolve conflicts against current main.
3. Run focused and full collector verification.
4. Review final diff and fix verified defects only.
5. Commit integration, refresh current `origin/main`, and use guarded ship flow.
6. Deploy locally; prove endpoint persistence and service-link provenance.
7. Record commit/deployment receipts; mark DONE.

## Current receipt

- Source worktree remains clean at `21ec7ba80503d6397ee32edee6635def33fdd27e`.
- Six non-merge feature commits are cherry-picked onto current-main integration; `collector/src/server.ts` conflict retains both current incident routes and project-color routes.
- Independent review confirmed quoted root-key and final-empty-table defects; both now have fixes and regression tests.
- Concurrent-call ordering defect found by the collector suite is fixed by queueing before asynchronous path canonicalization.
- Earlier remote typecheck passed before the final fixes. Earlier suite exposed the ordering defect plus two environment failures because child `bun` was absent from remote `PATH`.
- Remote `tsc --noEmit` passed.
- Exact remote collector suite passed: 691 passed, 2 live-Kanboard tests skipped by design, 0 failed, 2,323 assertions across 60 files.
- The prior two failures were environment-only: child `bun` absent from remote `PATH`; rerun with Bun on `PATH` proved both tests pass.
- `origin/main` advanced by 34 commits; integration is six commits ahead and must be reconciled before commit/landing.
- Handoff receipt: `/tmp/overdeck-settings-drift-handoff.md`.
- Buildbox transport is intermittent: rsync/tool parity pass on all three hosts, but later SSH probes and Git pushes time out. No local fallback was used.
- Live `agent-reaper.service` still resolves through `wt/factory-settings`; bytes match canonical source, so only provenance must change after deployment.

## Next executable action

Commit the tested integration, merge the 34 newer `origin/main` commits, rerun verification if conflict resolution changes tested files, then land/deploy.
