Skip to content

1.2.1 · Le rifiniture: salvataggio sicuro, taglio col movimento, audio dell'export senza cuciture, niente lampi neri - #17

Merged
cammo22 merged 2 commits into
mainfrom
claude/stoic-babbage-wh2u9v
Oct 7, 2026
Merged

cammo22 merged 2 commits into
mainfrom
claude/stoic-babbage-wh2u9v

Conversation

@cammo22

@cammo22 cammo22 commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Una versione di pulizia (1.2.1): nessuno strumento nuovo, solo difetti trovati rileggendo il codice e sistemati, ognuno con la sua prova.

Cosa cambia

Salvare senza paura

  • progetto_scrivi (Rust) scrive <file>.salvo.tmp, fa sync_all e poi rinomina: un'interruzione non lascia più un .dpv rovinato (prima troncava e riscriveva). Se scrivere accanto non si può, resta il modo di prima.
  • Se il salvataggio non riesce compare un errore (prima non succedeva niente e sembrava salvato).
  • ricollega salva il percorso nuovo con store.aggiornaMedia (prima m.path cambiava senza segnare il progetto da salvare).
  • store.edit rimette il progetto com'era se la modifica lancia un errore; store.revisione fa scrivere l'autosalvataggio solo quando qualcosa è cambiato.
  • Browser: potaDeposito tiene i file in IndexedDB per il montaggio aperto e per i progetti recenti (prima "Nuovo progetto" buttava i file dei recenti, e le copie rec: restavano lì per sempre); togliere un file e poi Ctrl+Z lo ritrova.

Montaggio

  • splitClip divide anche il movimento (splitMovimento: tf, tappe e tfFine divisi fra i due pezzi): tagliare un Ken Burns non lo fa più ripartire da capo.
  • Copia/incolla porta i blocchetti FX della clip (seguono la clip anche su un'altra traccia).
  • Abbina fotogramma usa srcTimeAt (giusto con la velocità); il tasto 1 non sceglie mai un blocchetto FX come "pezzo più corto".
  • Il loop senza attacco/stacco ricomincia tutto il montaggio.

Riproduzione ed export

  • fotogrammi.ts: quando un flusso riparte a metà play il suo ultimo fotogramma resta come ponte (ponti) → niente lampo nero. Era anche la causa della prova "GOP lungo" che sulla main della 1.2.0 era fallita.
  • mixaggio: ogni pezzo da 10 s parte 1,5 s prima (tratto poi scartato), così filtri, eco e limitatore non ripartono da zero a ogni cucitura.
  • Esporta: "Fatto" chiude la finestra (prima faceva ripartire l'export); mentre lavora la finestra non si chiude con Esc o con un clic fuori (dialogo({chiudibile: fn})).

Tasti e interfaccia

  • Ctrl+Alt+A era preso sia da "traccia audio" sia da "animazione": l'animazione va su Ctrl+Alt+N (una prova controlla che nessun tasto abbia due comandi).
  • Con la pagina iniziale aperta i tasti del montaggio non passano (valgono Esc, Ctrl+O, F11).
  • Copia leggera in pausa fermabile col ✕; avvisi più in alto sul telefono; panorama del mixer annullabile anche da tastiera; perdite di Input chiuse in libreria.ts.

Prove

  • npm run build && node test/prove.mjs: 406 superate, 0 fallite (in locale).
  • Nuove in test/prove-rifiniture.mjs (11): sul codice 1.2.0 ne falliscono 8, qui passano tutte.
  • Il lato Rust qui non si compila del tutto (mancano le librerie GTK nel container): il pezzo nuovo è provato da solo con rustc e lo compila la CI.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TqgA6T2ncfxMbmoaKeJWS4


Generated by Claude Code

claude added 2 commits October 7, 2026 04:18
… dell'export senza cuciture, niente lampi neri nel play, tasti)

- progetto salvato scrivendo accanto e rinominando (Rust); errore di salvataggio mostrato; ricollega salva il percorso
- store.edit torna com'era se la modifica si rompe; revisione per l'autosalvataggio (scrive solo se è cambiato qualcosa)
- browser: "Nuovo progetto" non butta i file dei recenti (potaDeposito), Ctrl+Z dopo "togli dal contenitore" ritrova il file
- splitClip divide anche il movimento (tf, tappe, tfFine): niente ripartenza da capo sul taglio
- copia/incolla porta gli effetti e le transizioni della clip; abbina fotogramma giusto con la velocità; il tasto 1 non sceglie un blocchetto FX
- mixaggio: ogni pezzo da 10 s parte 1,5 s prima (filtri, eco e limitatore non ripartono a ogni cucitura)
- fotogrammi: l'ultimo fotogramma resta come ponte quando un flusso riparte a metà play (niente nero)
- Esporta: "Fatto" chiude (non riparte), la finestra non si chiude mentre lavora
- Ctrl+Alt+A di nuovo traccia audio (animazione su Ctrl+Alt+N); tasti fermi sotto la pagina iniziale; loop senza attacco/stacco
- proxy in pausa fermabile col ✕; avvisi più in alto sul telefono; panorama del mixer annullabile anche da tastiera
- prove nuove: test/prove-rifiniture.mjs; CHANGELOG, CLAUDE.md, versione 1.2.1

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqgA6T2ncfxMbmoaKeJWS4
…tor del Montage si guarda dove non c'è un blocchetto FX

- prove-attivita: dopo azzeraAttivita la barra si aggiorna con 150 ms di ritardo; sul runner veloce si leggeva quella di
  prima ("Copie"). avvisaOra prima di leggere.
- prove-montage: la variante è a caso e a volte un lampo cadeva proprio a 8 s (fotogramma tutto bianco): si guarda
  subito dopo il blocchetto.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqgA6T2ncfxMbmoaKeJWS4
@cammo22
cammo22 marked this pull request as ready for review October 7, 2026 04:38
@cammo22
cammo22 merged commit b0d0cee into main Oct 7, 2026
4 of 5 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.

2 participants