Epic Notes · equal-start model comparison

Keep the finished core lab. Prepare two fresh kits in separate model-a and
model-b parent folders. Both pin the same upstream. Apply only 01 and 02;
leave 03 closed. Expect the same three focused failures and five passes.
This controlled comparison fixes starting files, evaluator tests, available
tools and budget. Within those boundaries, each agent chooses its approach.
It is narrower than the main lab. Do not mistake the reference patch for an
agent result. Preparation commands (inside each epic-stack):

git apply --check ../solutions/01-filter.patch
git apply ../solutions/01-filter.patch
git apply --check ../solutions/02-regression-tests.patch
git apply ../solutions/02-regression-tests.patch
npm test -- --run --maxWorkers=2 'app/routes/users/$username/notes/+shared/note-editor.test.tsx' 'app/routes/users/$username/notes/+shared/note-editor.server.test.tsx'

Use the same OpenCode version, permission settings, supported reasoning
setting and fresh context. Change only the model. Ten minutes and at most
two corrective prompts includes implementation, checks, fresh review and
evaluation. Record blocked quota/network errors separately. Don’t buy a plan.

Objective: fix the reproduced whitespace-title defect in this Epic
Notes comparison checkout and demonstrate the accepted behavior.

Success: reject empty/whitespace-only titles; normalize outer spaces;
retain the 100-character limit after normalization; preserve valid
content, owner edits and other-user denial.

Constraints: this is a controlled comparison with supplied evaluator
tests. Do not edit them or inspect solution 03. Change only
+shared/note-editor.tsx. Keep the same VS Code/OpenCode setup,
available tools, permissions and budget for both candidates.
No dependencies, schema, lockfile or authentication changes,
.env reads, installs, commits, publishing or delegation.

Read AGENTS.md and inspect the failing evidence and available tools.
Choose your repair and verification approach, justify the choices
and stop after the plan. After approval, implement and execute your
checks and the documented project gates. Report actual commands,
exit codes, totals and gaps. Hand off for the same fresh-review prompt.

After implementation: /new > Plan > the REVIEW prompt in PROMPTS.txt.
Review its proposed approach before approving verification. Let the reviewer
execute checks; evaluate the app in VS Code preview. Run one app server on
port 3000 at a time. Include review/rework time. One attempt is provisional.
Repeat from fresh copies when time permits. Different coding tools measure
the entire setup, not just the model. Keep the same acceptance cases.

Task: whitespace-title fix | Date:
Upstream: 893610d | OpenCode: 2.2.5
                         Model A       Model B
Exact provider/model ID:
Checkpoint (or unknown):
Reasoning setting:
Focused checks:          __ / 8        __ / 8
Full suite:              __ / 55       __ / 55
Types / lint:
Browser acceptance cases:
Unrelated changes:
Total minutes incl review:
Corrective prompts:
Reported cost or unknown:
Verdict and remaining gaps:
Never fill a result you did not observe.
