Commit Graph

14 Commits

Author SHA1 Message Date
Aiden Bai a546cd53ce refactor: reduce production dependency surface (#1632) 2026-08-12 00:43:52 -07:00
Ray Arayilakath e69facac7e feat(lsp): move editor telemetry to Axiom and unify the opt-out (#1610)
* feat(lsp): move editor telemetry to Axiom and unify the opt-out

Completes the cutover. The language server gets the same split as the CLI —
spans and metrics to Axiom, crashes to Sentry — with one difference that matters:
an editor session can run for hours and may never shut down cleanly, so its
exporters use a periodic interval instead of relying on a shutdown flush. Its
counters also now route through `record-metric.ts` rather than calling the Sentry
SDK directly, so they finally carry the run attributes every other metric has.

`is-telemetry-enabled.ts` becomes the single gate for every backend, which fixes
a real hazard: `REACT_DOCTOR_NO_TELEMETRY` was previously honored only by the
language server, and blanking `SENTRY_DSN` no longer silences anything. The evals
harness relied on exactly that, so it would have started reporting eval scans as
production telemetry; it now sets the env flag like the benchmark and delta-audit
runners already did.

Removes what the cutover made dead: the Sentry metric scrubber (no CLI or LSP
metrics flow through Sentry anymore), `resolveTracesSampleRate` and its
constants (neither client records spans), and the span-status and HrTime
constants the deleted tracer bridge used.

Rewrites the AGENTS.md observability section, which described a Sentry-only
architecture, and updates the `--debug` docs wording.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(lsp): correct editor span timing, attribution, and startup export

Give the wide event its real duration. `Effect.makeSpan` stamps the start time
from the clock, and the event is emitted once the burst has already finished —
so start and end landed at the same instant and every editor scan reported a
duration of ~0, even though `durationMs` was correct as an attribute. The span
is now built straight off the tracer, which takes an explicit `startTime`, so
the scan's real window is supplied on both ends. This restores what the Sentry
path got from `startTime`.

Attribute editor telemetry to the editor. Routing LSP counters through
`recordCount` picked up the shared run context, which classified the process as
`command: "inspect"` / `origin: "cli"` — so editor metrics were misfiled in
Axiom and disagreed with the LSP's own Sentry scope, which tags them
`experimental-lsp` / `lsp`. `experimental-lsp` is now a recognized command and
implies the `lsp` origin.

Open the exporters at startup. They were built lazily from the first completed
scan, so a session that recorded session-start counters and was then killed
before any scan finished exported nothing — the shutdown flush found no scope.
Building at init also starts the periodic interval ticking, which is the point
of having one for a daemon.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-08 19:14:47 -05:00
Aiden Bai 13138a4af5 refactor: simplify internals across the workspace (#1590) 2026-08-08 00:20:14 -07:00
Aiden Bai 19f2148e00 FPFNFIX82 Fix CSS-reserved image dimensions (#1550)
* fix(rule): recognize CSS-reserved image layout

* fix(rule): scope static CSS image evidence

* fix(no-img-without-dimensions): compose CSS with classes

* fix(no-img-without-dimensions): parse layered CSS

* fix(no-img-without-dimensions): ignore interaction-only CSS

* fix(no-img-without-dimensions): expand selector functions

* fix(no-img-without-dimensions): parse CSS with Lightning CSS

* fix(no-img-without-dimensions): model flex axes

* test(evals): stabilize manifest verification timeout

* test(evals): reset manifest operation deadlines

* fix(no-img-without-dimensions): honor nested CSS cascade

* fix(no-img-without-dimensions): compose Tailwind with CSS

* fix(no-img-without-dimensions): resolve same-layer cascade
2026-08-02 21:48:52 -07:00
Aiden Bai 075865fc25 feat(evals): batch parity treatments in matrix (#1537)
* feat(evals): batch parity treatments in matrix

* fix(evals): close matrix evidence trust gaps

* fix(evals): bind matrix comparison evidence

* fix(parity): validate matrix artifact contents

* fix(parity): bundle matrix corpus evidence

* fix(parity): require lowercase matrix commits

* fix(evals): bound Daytona control-plane cleanup

* fix(evals): close matrix artifact review gaps

* fix(evals): align matrix verifier project hashing

* fix(evals): schedule matrix treatments together

* fix(evals): finalize matrix artifacts safely

* fix(evals): clean partial base publication

* fix(evals): preserve matrix retry batching
2026-07-31 06:44:08 -07:00
Aiden Bai f023fb9aab feat(evals): pair parity scans in one sandbox (#1536)
* feat(evals): pair parity scans in one sandbox

* test(evals): compare paired git directories portably

* test(evals): verify shared git directory semantically

* fix(evals): commit paired output atomically
2026-07-31 03:47:31 -07:00
Aiden Bai 7bbc7561fd feat(evals): add incremental parity caching (#1535)
* feat(evals): add incremental parity caching

* fix(parity): fail closed on uncertain scopes
2026-07-31 03:05:12 -07:00
Aiden Bai 2db2a97283 perf: reduce scan startup and workspace contention (#1533) 2026-07-30 19:42:52 -07:00
Aiden Bai 846c2df844 feat: add parsed Three.js shader lint rules (#1455)
* feat: add parsed Three.js shader lint rules

* fix: tighten shader rule precision

* fix: address shader rule review findings

* fix: harden parsed shader edge cases

* fix: harden shader variant analysis

* fix: complete parsed shader edge coverage

* fix: close shader control-flow gaps

* fix: tighten shader interface analysis

* fix: recognize GLSL3 integer samplers

* fix: close shader control-flow gaps

* fix: close remaining shader rule gaps

* fix: close shader review gaps

* fix: track shader cache key invalidation

* fix: handle shader material review edge cases

* fix: close remaining shader review gaps

* fix: skip uncertain shader position writes

* fix: harden shader position analysis

* fix: track divergent shader loop controls

* fix: track parameter shader variants

* fix: complete shader variant detection

* fix: identify and clean up parity sandboxes

* fix: tolerate Daytona cleanup races

* fix: restore complete parity corpus

* fix: tighten Three shader diagnostics

* fix: download large eval reports

* fix: trace shader variant aliases
2026-07-25 22:04:43 -07:00
Aiden Bai 8c4959bb74 fix(rules): harden parity diagnostics (#1419)
* fix(rules): harden parity diagnostics

* fix(evals): keep parity artifacts parseable

* fix(evals): support Windows harness tests

* fix(fuzz): parse CRLF corpus directives
2026-07-20 22:28:25 -07:00
Aiden Bai 284b4e4e93 fix: harden recent detector foundations (#1415) 2026-07-20 10:01:10 -07:00
Aiden Bai 5b468f8a92 feat(rules): add React Three Fiber diagnostics (#1371) 2026-07-20 09:22:48 -07:00
Aiden Bai 3598138c7b Scale eval corpus and tighten diagnostics (#1403)
* scale eval corpus and tighten diagnostics

* fix review and Windows eval failures
2026-07-19 04:13:13 -07:00
Aiden Bai 7c9dbeda0d feat(evals): add Daytona corpus parity runner (#1384) 2026-07-19 00:21:46 -07:00