Skip to content

fix: repair profile loading & timeline days; drop sourdough & homebrew - #20

Merged
marcocot merged 1 commit into
masterfrom
fix/profiles-timeline-cleanup
Jul 9, 2026
Merged

marcocot merged 1 commit into
masterfrom
fix/profiles-timeline-cleanup

Conversation

@marcocot

@marcocot marcocot commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Cosa

Review critica del progetto → fix dei bug confermati + pulizia.

Profili (pizza-cli)

  • --profile era completamente rotto: lo snapshot dei default via Args::parse_from falliva perché --w è obbligatorio, quindi caricare un profilo usciva sempre con errore. Ora i campi sono Option<T>, --w può arrivare dal profilo e la precedenza CLI > profilo > default è risolta con Option::or invece che confrontando col default (un valore esplicito uguale al default ora vince).
  • Override --yeast: la scelta esplicita ora batte il profilo in entrambe le direzioni (es. --yeast dry su un profilo fresh).
  • Salvataggio profilo una sola volta e dopo la validazione: niente più config invalide scritte su disco. Rivalidati i valori che arrivano dal profilo (bypassavano clap).

Timeline (pizza-cli)

  • Le fasi che superano la mezzanotte sono marcate con (+Nd), così i piani con frigo lunghi non si leggono male.

Core (pizza-core)

  • test_yeast_percent_bounds ora asserisce davvero (prima scartava il bool); aggiunto un test sui limiti del clamp.
  • Rimossi i resti mai implementati del sourdough (campo starter_total_g, doc fuorvianti, match a un solo braccio).

CI / docs

  • Cancellati il template della formula Homebrew e il job homebrew_tap (placeholder e nomi degli asset non combaciavano: era rotto).
  • README riscritto in tono umano; corretti versione Rust (1.85 per edition 2024), cartella di clone, esempi dei profili.

Verifica

  • cargo clippy --workspace --all-targets -- -D warnings pulito
  • cargo test --workspace → 6/6 verdi
  • Round-trip profilo e override CLI testati a mano

🤖 Generated with Claude Code

Profiles (pizza-cli):
- Fix --profile, which always crashed: the default snapshot via
  Args::parse_from failed because --w is required. Fields are now
  Option<T>, so --w can come from a profile and CLI/profile/default
  precedence is resolved with Option::or instead of comparing against
  defaults (an explicit value equal to the default now wins).
- Fix --yeast override: an explicit choice now beats the profile in
  both directions (e.g. --yeast dry over a fresh profile).
- Save the profile once, after validation, so invalid configs are no
  longer written to disk. Re-validate values that arrive via a profile.

Timeline (pizza-cli):
- Mark phase end times that cross midnight with (+Nd) so long fridge
  plans aren't misread.

Core (pizza-core):
- Make test_yeast_percent_bounds actually assert (it discarded the
  bool) and add a clamp-extremes test.
- Remove the never-implemented sourdough remnants (starter_total_g
  field, misleading docs, single-arm match).

CI/docs:
- Delete the Homebrew formula template and tap job (placeholders and
  asset names never matched, so it was broken).
- Rewrite the README in a human voice; fix the Rust version (1.85 for
  edition 2024), the clone directory, and the profile examples.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@marcocot
marcocot merged commit c9e3a16 into master Jul 9, 2026
1 check passed
@marcocot
marcocot deleted the fix/profiles-timeline-cleanup branch July 9, 2026 08:45
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