tf: widen the load gate to all .f.ts/.f.js plus vanilla proof.{ts,js,mts,mjs}; v.proof !== undefined is the sole gate, enabling co-located white-box proofs #893
tf: discover proofs by an exported proof property instead of Module.default; convert all 81 proof files #889
text: extract the shared streaming code-point decoder skeleton and the errorMask constant from utf8/utf16 into a new fs/text/code_point#860
DJS serializer: factor out buildSerialize(refLookup) so both serializers share the value→string core, and remove the in-place mutation from addRef and the ref-counter flag #832
effects: add the foldStep / forEachStep combinators — sequential state-threading and void-accumulator siblings of all#885
tf: fix sandbox timing accuracy — p instanceof Promise ? await p : p instead of the awaitPromise boxing handler, so spurious microtasks no longer inflate durations #883
tf: async test function support — registerModule and sandbox now await async test functions; adds the Await effect type and awaitPromise#882
io: effectRun now calls process.exit internally, fixing fjs t always exiting 0 regardless of test failures #882
tf: move isTest to dev/module.f.ts, consolidating the predicate used by both loadFile and runModuleMap#882
tf: prefix scenario temporary files with _ so git ignores them, and add fjs as a scenario runner alongside node/bun/deno/playwright #882
io: extract the wrapInlineTest(register) factory shared by bunTestContext and playwrightTestContext. Behaviour-preserving #880