Skip to content

chore(lab): remove sense-lab, the bench now lives in its own project - #306

Merged
luuuc merged 1 commit into
mainfrom
chore/remove-sense-lab
Aug 28, 2026
Merged

chore(lab): remove sense-lab, the bench now lives in its own project#306
luuuc merged 1 commit into
mainfrom
chore/remove-sense-lab

Conversation

@luuuc

@luuuc luuuc commented Aug 28, 2026

Copy link
Copy Markdown
Owner

Sense is one binary again. The bench that grades it has moved to its own project, so this repository holds the tool people install and nothing else.

Problem

sense-lab was a second binary living here: the instrument that measures whether Sense makes an agent reach answers it cannot reach without it. It never shipped to users and was never on the install path, but it was present in every other way. It needed network access, an agent CLI and a paid subscription, it added a second build line, and it needed three depguard rule sets whose only job was keeping the two apart. Contributors met it in the setup instructions before they met anything they came to work on.

That boundary was real work to maintain, and the cheaper way to hold it is a repository line rather than a lint rule.

Summary

Removes the lab/ tree and every hook it had in the build, the linter, the changelog config and the ignore rules. The bench continues in its own project, where its dependencies cannot reach Sense at all.

Changes

  • Delete lab/ (282 files): the sense-lab binary, its packages and tests, scenarios, catalogs and plan documents
  • Makefile: drop LAB_LDFLAGS and the second go build, so make build produces bin/sense only. The complexity ledger now walks internal cmd
  • .golangci.yml: retire the lab-boundary, lab-pure and lab-decides depguard rule sets and their test exclusion. The product's own pure-core rules are untouched
  • cliff.toml: drop the ^lab\( skip. It was dead: no commit ever used that prefix, all 75 were bench(lab):, which ^bench already skips
  • .gitignore: remove the run-tree stanza and /runs/
  • CONTRIBUTING.md: remove the bin/sense-lab paragraph from the build instructions
  • NON-GOALS.md: the paragraph separating the shipped tool from the tools used to develop it keeps its point without naming a binary this repository no longer builds

Notes for reviewers

/runs/ is gone from .gitignore because nothing writes there anymore. Anyone with an existing local runs/ tree should delete it, otherwise it turns up as untracked and, more to the point, sense scan will start indexing it. These trees are large: a single cell measured 230MB and 19,703 files.

No product code changes. No Go file outside lab/ is touched, so the query surface, the CLI and the index are exactly as they were.

Test Plan

All checks run on this branch at 707b246f.

  • make ci passes: build, coverage gate, lint, ledger
  • make build produces bin/sense and no bin/sense-lab
  • golangci-lint reports 0 issues with the three lab rule sets removed, confirming nothing outside lab/ depended on them
  • Coverage gate still passes at the 92% floor with the lab tree out of the profile (total 95.6%)
  • Complexity ledger reads 0 with the narrowed grep path
  • make smoke passes
  • git-cliff --bumped-version reads v1.14.2 on this branch and v1.14.2 on main, confirming no product version bump

sense-lab was a second binary in this repository: the bench that grades
Sense by measuring whether an agent reaches answers it cannot reach
without it. It now lives in a separate project, where it can grow its own
dependencies without any of them being reachable from Sense.

Keeping it here meant the product repository carried a network-capable,
agent-driving, subscription-needing tool that no Sense user installs, and
every boundary rule in .golangci.yml existed to keep the two apart. Moving
it out retires the boundary instead of enforcing it.

Removed with it: the depguard rules that held the lab away from
sense/internal and its own pure core away from disk, network and exec; the
cliff rule skipping a `lab(` prefix that no commit ever used (all 75 were
`bench(lab):`, already skipped by `^bench`); the run-tree ignore stanza; and
the second build line and ldflags in the Makefile.

The complexity ledger now walks `internal cmd`, and the bench sentence in
NON-GOALS.md keeps its point without naming a binary this repository no
longer builds.
@codecov

codecov Bot commented Aug 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@luuuc luuuc self-assigned this Aug 28, 2026
@luuuc
luuuc merged commit a4317d5 into main Aug 28, 2026
7 checks passed
@luuuc
luuuc deleted the chore/remove-sense-lab branch August 28, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant