Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

P3: flow-runtime quality — held (omitted) outputs as state, fuzz generator gaps, README wording

Aperta
#67 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
35/100
Tipo di issue
Documentazione
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start with the evaluate "it holds" branch in packages/flow-runtime/src/run.ts, then the fuzz generator fuzz.mix in quality.property.test.ts, and the "Quality and the write gate" section of the README. Done when fuzz.mix sometimes omits its output, the generator covers variadic, multi-output, bool/string conversion and null-emitting blocks, and the README says held outputs count as block state and uses "derived from" wording for loop-delay taps. The issue is non-blocking and touches safety-relevant semantics, so confirm the intended wording with maintainers before editing.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Found in the #62 re-review at df8b26f. P3, non-blocking.

1. Omitted outputs act as implicit block state, but the docs and the fuzz test don't cover them.
When evaluate leaves an output out of its result, that output holds its old value (packages/flow-runtime/src/run.ts, the evaluate "it holds" branch). On the next scan where the inputs are good, the held value takes on that scan's quality.

Repro: a sample-and-hold block, y = en ? x : (omit).

  • Scan 1: x=999 (bad), en=true (good). Nothing is written.
  • Scan 2: x=1 (good), en=false. The block writes 999, and s.y reads {999, good}.

This matches the documented block-state exception, so it is not a new safety hole. The gaps are:

  • The README "Quality and the write gate" names only initialState/state. It should also say that held outputs count as block state.
  • fuzz.mix in quality.property.test.ts always returns its output. It should sometimes omit it. The oracle would then latch through S:<id>.

Related: #66 covers the stateful-block quality API.

2. Fuzz generator coverage gaps.
The generator never produces:

  • variadic inputs;
  • multi-output blocks;
  • bool/string typed conversions (it only uses number);
  • blocks that emit null from good inputs.

The unit tests cover each of these, but the taint oracle does not.

3. README wording.
The README says a reader outside the loop "never sees good while anything feeding the loop is not good". That overclaims for loop-delay taps. For one scan after an input turns bad, a tap still shows the health of the scan that stored the value. This is safe, because the value predates the bad reading. Reword it in terms of "derived from".

🤖 Generated with Claude Code

Lingua principale
TypeScript
Stelle
0
Fork
0
Merge medio
10h 39m
PR unite (30g)
38

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di hyperdrive-technology/holodeck

Tutte le issue di hyperdrive-technology/holodeck

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.