edfcore 0.4.486 → 0.4.488

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -109,5 +109,5 @@ export declare const SIGNAL_FIELD_BLOCK_OFFSETS: {
109
109
  readonly reserved: 224;
110
110
  };
111
111
  /** Published package version. Kept in sync with package.json by a test. */
112
- export declare const VERSION = "0.4.486";
112
+ export declare const VERSION = "0.4.488";
113
113
  //# sourceMappingURL=constants.d.ts.map
package/dist/constants.js CHANGED
@@ -79,5 +79,5 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
79
79
  reserved: 224,
80
80
  };
81
81
  /** Published package version. Kept in sync with package.json by a test. */
82
- export const VERSION = '0.4.486';
82
+ export const VERSION = '0.4.488';
83
83
  //# sourceMappingURL=constants.js.map
package/docs/CHANGELOG.md CHANGED
@@ -6,6 +6,42 @@ alone does not tell you whether you were affected.
6
6
  edfcore is pre-1.0. Patch releases have carried behaviour changes where the old behaviour was a
7
7
  defect; those are called out below.
8
8
 
9
+ ## 0.4.488
10
+
11
+ - **Added** a property test for `formatDiagnostics`' `maxItems` accounting. The cap is what stops a
12
+ file with four hundred defects filling a terminal, and the "... and N more" line under the output
13
+ is the only thing telling a reader that a cap was applied at all.
14
+ - Both ways of getting it wrong are silent. Too small an N and a reader believes they have seen
15
+ more of the file than they have; a missing line and they believe they have seen all of it.
16
+ - The rounding is where the untested cases were. `resolveLimit` floors a fractional `maxItems`,
17
+ clamps a negative one to zero, and treats `undefined` and any non-finite value as no cap —
18
+ four behaviours reachable from a flag, a config file or a caller's arithmetic, each changing
19
+ what N should be, and none of them a round number anyone writes into a fixture.
20
+ - Three invariants, and the third is what makes the other two mean anything: the blocks shown are
21
+ the resolved limit, the notice appears exactly when something was withheld, and shown plus
22
+ hidden is the number that went in. Without the third, showing nothing and claiming everything was
23
+ hidden satisfies both of the others. Order is pinned separately — a reader who raises the cap
24
+ expects the lines they already read to still be above the new ones.
25
+
26
+ ## 0.4.487
27
+
28
+ - **Set** the suite's test timeout explicitly, at thirty seconds, with the reasoning in the config.
29
+ vitest's default is five, which nobody here chose, and no test in this suite uses the clock as an
30
+ assertion — the cost tests count READS and BYTES, which is what makes them stable. The only job
31
+ a timeout has here is stopping an infinite loop from taking the run with it.
32
+ - Five seconds is too tight for that job. Several tests build multi-megabyte fixtures and the
33
+ heaviest ordinary case runs in about a second, so the default left under six times its own cost
34
+ as headroom — and a run under `--coverage` is several times slower, which is where the failures
35
+ appeared: two in `read-pattern.test.ts` and one in `envelope.test.ts`, all three passing on the
36
+ same commit without instrumentation. A full coverage run of the suite now passes where it failed
37
+ before this change.
38
+ - A timeout that fires on correct work teaches the reader to rerun rather than to read, which is
39
+ the opposite of what a red test is for.
40
+ - Thirty seconds is thirty times the slowest ordinary test and still fails a genuine hang well
41
+ inside a minute. The files needing longer still say so themselves, and 0.4.484's `beforeAll` is
42
+ unaffected: moving a file-level cost out of an arbitrary test body is right whatever the budget
43
+ is.
44
+
9
45
  ## 0.4.486
10
46
 
11
47
  - **Added** tests for the sentence the repeat counter turns into. `parseTalRegion` collapses many
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "edfcore",
3
- "version": "0.4.486",
3
+ "version": "0.4.488",
4
4
  "description": "Modern, typed, zero-dependency reader for EDF, EDF+, BDF and BDF+ biosignal files. Works in browsers and Node with true random access.",
5
5
  "keywords": [
6
6
  "edf",
package/src/constants.ts CHANGED
@@ -93,4 +93,4 @@ export const SIGNAL_FIELD_BLOCK_OFFSETS = {
93
93
  } as const;
94
94
 
95
95
  /** Published package version. Kept in sync with package.json by a test. */
96
- export const VERSION = '0.4.486';
96
+ export const VERSION = '0.4.488';