Home

boring / v2

publicBoring-Software-Inc/v2
Overview Code History Branches Pull requestsIssuesInsights Campfire Docs
main
HomeOverview Code PRsIssues

fix: clear the anti-slop suite, and stop the e2e depending on repo config

2 months ago

aeb6d9a
Authored
grim8/23/2026, 9:38:06 AM
CI's anti-slop step was failing with 28 violations on changed lines. Biome was
failing too, on formatting in the anti-slop rule files themselves. Both would
have blocked the merge.

The fixes are real, not suppressions:

- Record<X, Y> annotations became satisfies, which keeps the exhaustiveness
  check while preserving the literal types the annotation discarded.
- Three lookups that MISS by design became Maps: an open-git action tripwire
  does not ingest, a forge with no connect builder, a rule with no audit entry.
  An index signature said any key was valid; a Map says a miss is expected.
- Raw sql rows are parsed, not cast. String()/Number()/Boolean() on untyped
  columns turn a wrong column into a plausible value instead of a failure.
- The degradation step output is parsed once at the boundary rather than poked
  at with typeof three times.
- The http clients send a Headers object and take JsonValue, so a content-type
  on a bodyless GET is a statement rather than a conditional spread.
- keep is now always a thunk, which removed the union it was branching on.

The e2e suite was also reporting code failures for CONFIGURATION. Two scenarios
assert on the fail-closed floor, and one enabled custom rule drags every run
past it, so a maintainer's own settings inverted the results. The harness now
pins the floor on and disables custom rules for the run, then restores both,
exactly as it already did for workflows and arming.

Verified: all five CI gates pass, and the live open-git suite is 3/3 green with
every borrowed setting handed back.

Parent332f809

34 files changed
  • apps/api/src/routes/webhooks.ts+2−2
  • apps/web/src/components/common/forge-marks.tsx+2−2
  • apps/web/src/components/forges/connect-forge-grid.tsx+10−5
  • apps/web/src/lib/connections.functions.ts+31−16
  • apps/web/src/lib/server/auth.ts+4−3
  • apps/web/src/lib/synthetic-steps.ts+28−17
  • apps/worker/src/forge-runtime.ts+7−7
  • apps/worker/src/jobs/process-event.ts
+9
−5
  • packages/auth/src/server.ts+15−10
  • packages/contracts/src/forges.ts+2−2
  • packages/core/src/rules/forge-support.test.ts+25−17
  • packages/db/src/services/organizations.ts+38−27
  • packages/forge-opengit/src/actions/check.ts+2−2
  • packages/forge-opengit/src/adapter.test.ts+5−5
  • packages/forge-opengit/src/client/http.ts+13−7
  • packages/forge-opengit/src/client/installation.test.ts+2−1
  • packages/forge-opengit/src/webhook/normalize.test.ts+2−2
  • packages/forge-opengit/src/webhook/normalize.ts+13−9
  • scripts/e2e/harness.ts+14−4
  • scripts/e2e/lib/opengit.ts+12−7
  • scripts/e2e/lib/runner.ts+5−9
  • scripts/e2e/opengit.ts+76−2
  • scripts/oxlint/anti-slop/package.json+3−1
  • scripts/oxlint/anti-slop/rules/no-chained-type-assertions.ts+63−52
  • scripts/oxlint/anti-slop/rules/no-conditional-empty-object-spread.ts+34−34
  • scripts/oxlint/anti-slop/rules/no-known-value-widening.ts+39−15
  • scripts/oxlint/anti-slop/rules/no-object-parameters.ts+13−6
  • scripts/oxlint/anti-slop/rules/no-runtime-typeof.ts+20−20
  • scripts/oxlint/anti-slop/rules/no-shape-in-symbol-names.ts+30−28
  • scripts/oxlint/anti-slop/rules/no-unknown-parameters.ts+74−69
  • scripts/oxlint/anti-slop/rules/no-unknown-type-aliases.ts+16−7
  • scripts/oxlint/anti-slop/rules/no-unsafe-dictionary-type.ts+20−8
  • scripts/oxlint/anti-slop/rules/no-widen-then-assert.ts+340−287
  • scripts/oxlint/anti-slop/shared/dictionary-types.ts+131−32