Skip to content

fix(forge): alinear la cara de escritorio y el diálogo nativo - #178

Open
Alexendros wants to merge 1 commit into
mainfrom
fix/forge-gui-desktop-tip
Open

Alexendros wants to merge 1 commit into
mainfrom
fix/forge-gui-desktop-tip

Conversation

@Alexendros

@Alexendros Alexendros commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

Objetivo

Dejar la cara Forge de escritorio alineada con la ventana de producción y con un diálogo de guardado que no aborta, sin publicar ni mover v0.1.0.

IDs trazados

FR-EXPORT-001, FR-DRAFT-001, NFR-SEC-001, NFR-ACC-001, NFR-OFF-001, NFR-DET-001. Validadores F5, F6, P6. Amenaza THR-IMP-001: el diálogo no ejecuta contenido ni abre shell.

Cambios

  • Ventana Tauri 1440×900, mínimo 960×640. El inspector sigue lateral hasta 960px; el rail cede al stepper bajo 720px.
  • El estado de disco usa labelStorageUiState en el paso, el inspector y la revisión.
  • save_export_bytes abre AsyncFileDialog dentro del reactor de Tauri. ARCHMAKER_SAVE_DIR solo elige la carpeta inicial de la sonda.
  • Sonda tools/run_p6_portal_e2e.py para cancelar, guardar, rechazar/aceptar sobrescritura y destino sin permisos.
  • rustfmt del hook pasa --edition 2021, la edición del crate.
  • El esquema del dock de vista previa no cambia: no había un fallo de contraste medido.

Fuera de alcance

Publicar, firmar, tagear o mover v0.1.0. ISO, runner, root, discos y shell. H07 Multilib. Aceptar el alcance declarativo. DPI 125/150/200 y P95 desktop no se midieron: siguen pending / blocked.

Contratos/migraciones

Sin contrato nuevo. Capabilities intactas: solo allow-save-export-bytes.

Seguridad/privilegios

Deny-by-default. Sin dialog:*, fs:* ni shell. El gancho de directorio no escribe solo.

Accesibilidad/visual

Axe en claro, oscuro, alto contraste, teclado y viewports 360/768/1440. Baselines regenerados porque a 1280px la cara mantiene tres columnas (antes el inspector bajaba en el límite de 1280px).

Pruebas y evidencias

  • cargo test -p archmaker --lib --locked save_ — 12 passed.
  • Playwright: layout, mock-flow, export-delivery, axe y visual — passed.
  • check_product_naming.py, check_negative_capabilities.py, check_desktop_offline_gate.py — OK. El gate sigue blocked (sourceSha de la evidencia versionada ≠ este commit).
  • Sonda portal 2026-10-18 sobre target/debug/archmaker, no sobre un AppImage del tip: gui-cancel y gui-dialog-real passed; gui-overwrite y gui-destination-noperms failed. No cierra P6 ni F9.

Documentación

Notas en F5, P6 y el cierre desktop. Sin technicalResult de aprobación y sin RC_SHA_FUNCIONAL.

Checklist DoD

  • Seis pasos y nombre Forge intactos
  • Rust sigue siendo la autoridad semántica
  • P6 desktop/offline passed en el AppImage del tip
  • Publicación (excluida de este PR)

Note

Medium Risk
Changes desktop export dialog integration (async portal path) and responsive breakpoints that affect layout at common widths; P6 gate remains blocked pending full portal E2E on the tip AppImage.

Overview
Aligns Forge desktop with a 1440×900 default window (min 960×640) and retunes responsive CSS so the inspector stays lateral until 960px and the rail yields to the stepper below 720px, with Playwright coverage for column counts and Spanish disk-state copy via labelStorageUiState in the disk step and review.

Native export no longer uses synchronous rfd::FileDialog; save_export_bytes runs AsyncFileDialog on Tauri’s async runtime (avoids portal/Tokio panics), honors ARCHMAKER_SAVE_DIR only as the dialog’s initial folder, and adds unit coverage for the reactor bridge. A new tools/run_p6_portal_e2e.py AT-SPI probe exercises cancel/save/overwrite/no-perms; closure docs record debug results (cancel/save passed; overwrite and no-perms still failing). rustfmt --edition 2021 is wired in lint-staged.

Reviewed by Cursor Bugbot for commit afe9c99. Configure here.

La ventana abre a 1440×900 y el inspector sigue lateral hasta 960px.
El guardado usa el reactor de Tauri para no abortar, y el estado de
disco se lee en español. La sonda de portal no cierra P6.

FR-EXPORT-001 FR-DRAFT-001 NFR-SEC-001 NFR-ACC-001 NFR-OFF-001 NFR-DET-001
@cursor

cursor Bot commented Oct 18, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: b5acdbe1-9150-4807-8a80-072b406105dd)

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