Back to Oh My Openagent

fix-5751 notepad

.omo/notepads/20260704-fix-5751.md

4.16.02.8 KB
Original Source

fix-5751 notepad

Tier: HEAVY - installer/config permission handling can cause user config data loss; user demanded failing-first, codex-qa, PR merge flow.

Skills:

  • ultrawork: requested explicitly; evidence-driven red/green + real-surface QA.
  • codex-qa: packages/omo-codex installer change requires isolated CODEX_HOME proof.
  • omo-programming: TypeScript source/test edit.
  • git-master + commit + github yeet: requested atomic commit, push, PR, auto-merge.

Success criteria:

  • Regression test: unreadable existing config.toml rejects and preserves original content.
  • Product fix: only ENOENT starts from empty config; EACCES/EPERM/other read errors rethrow before writes.
  • Verification: bun test packages/omo-codex red->green, bun run test:codex, bun run typecheck, codex-qa install-verify, isolated unreadable-config proof.

Concrete QA scenarios:

  • Unit RED/GREEN: PATH=$HOME/.bun/bin:$PATH bun test packages/omo-codex/src/install/<test-file>; PASS iff the new test fails before product edit and passes after.
  • Real installer surface: PATH=$HOME/.bun/bin:$PATH bash .agents/skills/codex-qa/scripts/install-verify.sh --self-test; PASS iff isolated CODEX_HOME install succeeds and real ~/.codex checksum is unchanged.
  • Unreadable isolated home: CODEX_HOME=<temp>/codex with chmod 200 config.toml, run local install/update path; PASS iff command fails and marker content is preserved after chmod restore.

Bootstrap:

  • First setup attempt without PATH failed: bun not found.
  • Reran with ~/.bun/bin on PATH; dependencies installed, build failed because strict submodule materialization tried local file transport from main checkout. Main checkout was not touched by this agent.

Results:

  • RED captured: .omo/evidence/20260704-fix-5751/red-regression-only.txt shows the unreadable-config regression failing before product code changed.
  • GREEN captured: .omo/evidence/20260704-fix-5751/green-regression-only.txt shows the regression passing after the ENOENT-only guard.
  • Package gate: .omo/evidence/20260704-fix-5751/green-bun-test-packages-omo-codex-after-materialize.txt passed with 255 tests.
  • Hermetic gate: .omo/evidence/20260704-fix-5751/test-codex.txt passed.
  • Typecheck: .omo/evidence/20260704-fix-5751/typecheck.txt passed.
  • codex-qa: common self-check and install-verify passed with real ~/.codex/config.toml unchanged.
  • Isolated unreadable installer proof: .omo/evidence/20260704-fix-5751/codex-qa-unreadable-isolated-install.txt shows installer_exit=1, marker preserved, real config unchanged.

Self-review:

  • Scope stayed mechanical: source read guard, generated installer parity, one focused regression test.
  • No as any, no ts-ignore/expect-error, no product behavior decision beyond ENOENT-only absent-file handling.
  • Changed source/test files are below 250 pure LOC: 79 and 31.
  • Existing oversized codex-config-toml.test.ts was not expanded; new regression lives in a focused file.