Skip to content

Harden Windows/Linux parity and gate packages on Windows CI - #52

Merged
DannyBaanks merged 29 commits into
mainfrom
codex/windows-platform-parity-pr
Oct 16, 2026
Merged

DannyBaanks merged 29 commits into
mainfrom
codex/windows-platform-parity-pr

Conversation

@DannyBaanks

@DannyBaanks DannyBaanks commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

Cambios

  • Refuerza el estado privado de Windows, las ACL del scratch, el propietario del registro LPAC y la recuperación; conserva controles fail-closed para Git, VHD y recursos fijados por hash.
  • Corrige el entorno mínimo del updater en Windows: conserva SYSTEMROOT para que Git use el proxy configurado durante la prueba, sin heredar el PATH completo ni variables arbitrarias.
  • Hace deterministas nueve pruebas Textual que dependían de pausas fijas durante el startup, la creación de sesiones o el recálculo del layout.
  • Mantiene la prueba Winsock AF_UNIX host→LPAC, el instalador de checkout con -Uninstall y los checks de instalación limpia/EXE portable en CI.
  • El manifiesto contiene 491 archivos y cuatro registros de evidencia comprimida; los hashes actuales coinciden y el fallo inicial con clone shallow se conserva lossless como gzip.

Verificación

  • Windows: tests/test_updater.py, 37 passed, 1 skipped.
  • Proxy Ubuntu/Tailscale: SelfUpdater ejecutó git ls-remote contra el ref oficial; un EXE PyInstaller 6.22.3 en ruta con espacios y ñ pasó isycode.exe update --check sin clonar ni instalar.
  • Ubuntu físico 24.04.5, historial completo (471 commits), head fe88ac0: 2,025 passed, 153 skipped, 11 deselected. La primera corrida shallow falló porque faltaban commits históricos; al completar el historial, la misma suite pasó.
  • La configuración temporal del proxy se restauró al SHA-256 original; Tinyproxy se retiró, el servicio quedó inactivo y el puerto 8888 cerrado. Se retiraron las dos copias de la llave SSH temporal.
  • CI completo del head df3e91f pasó en los eventos PR y push: suites Linux 3.10, Linux con Textual 8 y Windows (seis suites en total).
  • Contratos nativos de Ubuntu y Windows y los gates de evidencia pasaron en ambos eventos.
  • Los paquetes linux-x86_64, macos-arm64 y windows-x86_64 pasaron en ambos eventos; el paso de borrador de release se omitió.
  • Workflows: CI del PR, CI push, contratos nativos PR, contratos nativos push.

Aceptación pendiente

La matriz de cinco usuarios se excluye por solicitud del usuario. NATIVE_ACCEPTED=False sigue vigente. Continúan NOT_DEMONSTRATED: ACL con otra cuenta iniciada separadamente, casos IPC/dispositivo restantes, staging de runtimes/dependencias, recuperación ante pérdida eléctrica y paridad interactiva física Linux/Windows. La consulta del updater empaquetado sí quedó demostrada; reemplazar en sitio un EXE/AppImage congelado no forma parte de ese comportamiento compartido.

…m-parity-pr

# Conflicts:
#	src/isycode/action_audit.py
#	src/isycode/iteration.py
#	src/isycode/tui.py
#	tests/test_grok_auth_tui.py
#	tests/test_quick_start.py
DannyBaanks added a commit that referenced this pull request Oct 16, 2026
…ariant

Merges codex/windows-platform-parity-pr (21 commits, CrossPlatform-Parity
method) into post-remediation main. 5 conflicts resolved:

- action_audit.py: the two branches fixed F-03 (verify-under-write race)
  independently — main with POSIX flock on the data file, parity with a
  cross-platform SIDECAR lock (held in _append, survives os.replace).
  Unified on the sidecar: writer keeps held() in _append (fchmod inside),
  reader now holds the same sidecar during its two fstats; POSIX LOCK_SH
  kept as defense in depth; storage.ensure_directory/private adopted for
  cross-platform dir creation and ACL checks; StateIndex stays the path
  authority (M7). Race x200 + tamper tests green (19 passed).
- iteration.py: storage import restored next to get_state_index.
- tui.py: dropped parity branch's stale in-body copies (pre-M8 layout);
  ported its three real deltas: asyncio.to_thread for the two blocking
  choose_recurrent writes, await push_screen (modal mount race, Windows),
  and the authority_settings sizing in _size_action_menu (now in
  MenuMixin per M8).
- test_grok_auth_tui.py: wait_for_ready (M2) replaces the hand-rolled
  worker-group wait — the convergence the briefing predicted.
- test_quick_start.py: kept the readiness-park design; removed the
  incompatible stub/restore block; restored _clear_saved_recurrence + json.

m15-authority-coverage.json regenerated via the canon generator (post-
merge constructor lines). Suite: 2054 passed, 127 skipped (Windows
platform matrix, reasons declared per the CrossPlatform-Parity method),
11 deselected; 1 known pre-existing flake (file_preview_tui under full
load; passes standalone).

validate_gates --require-approved: 9 release-blocked (unchanged, human
approval pending on the classic-security-ux roadmap) + 3 new sha256
mismatches created by this merge itself (test_gate_validator,
test_workspace_trust in two M4 evidence gates) — evidence rot (global
vice #3) reproduced during the merge; those gates need regeneration,
not manual patching.
@DannyBaanks
DannyBaanks merged commit 7038d0d into main Oct 16, 2026
17 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant