tackbox 0.1.62 → 0.1.63

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.
Files changed (2) hide show
  1. package/README.md +17 -19
  2. package/package.json +2 -2
package/README.md CHANGED
@@ -8,6 +8,15 @@
8
8
 
9
9
  **Every failure must report, propagate, or explain itself.**
10
10
 
11
+ tackbox is a guardrail for developers and coding agents. It catches common
12
+ local ways failures are hidden by accident, haste, or expediency and
13
+ requires an explicit outcome: propagate, report, or explain. It is not a
14
+ whole-program proof or a security boundary.
15
+
16
+ tackbox's lint contract recognizes direct reporting helpers as an explicit
17
+ report outcome. Execution policy, control flow, result ownership, and runtime
18
+ integration remain application decisions.
19
+
11
20
  Coding agents write error handling that looks right and silently
12
21
  isn't: a swallowed exception, a fatal exit with nothing logged, a
13
22
  report with the cause stripped out. tackbox catches it the moment
@@ -15,9 +24,9 @@ it's written: hooked into the agent's edit loop it flags the finding
15
24
  before the turn ends, and the same rules gate pre-commit and CI -
16
25
  one coverage bar for hand-written and agent-written code.
17
26
 
18
- And there is no quiet way around any of it: no flags, no config. The
19
- only escape is an explicit `// no-report: <reason>` at the site - and
20
- the agent hook asks for your approval before a new suppression lands.
27
+ There are no per-rule disable flags. A local exception stays visible as
28
+ a reasoned `// no-report: <reason>` marker at the site, and the agent
29
+ hook asks for your approval before a new suppression lands.
21
30
 
22
31
  ```go
23
32
  resp, err := client.Do(req)
@@ -361,22 +370,11 @@ on a non-Go file is rejected - a dead line would be silent. The format
361
370
  is language-uniform; the restriction lifts as other engines adopt the
362
371
  contract.
363
372
 
364
- ## Deduplication: telemetry, never the user
365
-
366
- Dedup lives at two levels with different owners
367
- (`docs/report-contracts.md` D005):
368
-
369
- - The capture helpers rate-limit telemetry: a repeat capture with the
370
- same dedupKey inside the rate window (default 60s) is dropped
371
- client-side, so the server never sees it. Lossy for in-window repeats
372
- (their occurrence count and any changed context are lost); captures
373
- that pass the window reach the server, which groups by fingerprint.
374
- - The user lane is never suppressed by the helpers. Every user-facing
375
- event is delivered carrying its dedupKey; collapsing a storm into
376
- one live banner or a counter is presentation policy and belongs to
377
- the app's listener, keyed on that dedupKey. A notification dropped
378
- inside the helper would be a swallowed error at the UI level - the
379
- exact failure mode tackbox exists to prevent.
373
+ ## Runtime reporting helpers
374
+
375
+ Direct reporting helpers ship per language; their shared runtime behavior -
376
+ lane routing, telemetry dedup, panic grouping, and capture isolation - is
377
+ specified in [docs/report-contracts.md](docs/report-contracts.md).
380
378
 
381
379
  ## Agent hook (Claude Code)
382
380
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tackbox",
3
- "version": "0.1.62",
4
- "description": "ESLint plugin + browser report helper: every failure must report, propagate, or explain itself.",
3
+ "version": "0.1.63",
4
+ "description": "ESLint and Markdown lint plugins plus direct error-reporting helpers for JavaScript and TypeScript.",
5
5
  "license": "MIT",
6
6
  "main": "./js/eslint-plugin.js",
7
7
  "exports": {