v0.68.1
feder-cr/invisible_dotsv0.68.1Sep 15, 2026by github-actions[bot]
Upgrading?
AI Summary
This release consolidates the English language gate logic by moving it from a local script to the `invisible_core` module. It removes outdated file exclusions, ensures version consistency across configuration files, and makes `invisible-core` an explicit test dependency to support direct imports.
Key Highlights
- Moved the English language gate logic from a local script to the `invisible_core` module.
- Updated the dependency floor to `invisible-playwright>=0.16.2`.
- Ensured version declarations are consistent across `pyproject.toml`, `manifest.json`, and `server.json`.
- Added `invisible-core` as an explicit test dependency.
- Removed outdated file exclusion paths that existed in the wrapper but not this repository.
Full Release Notes
* The language gate comes from the core, and this repository exempts nothing invisible-core 30.23.0 carries the check that a public repository is English, as `invisible_core.english`. Until now it was a script copied here from the wrapper, and the copy carried the wrapper's data with it: four of the five paths in its exclusion list - `src/invisible_playwright/_pw/`, `_driver/`, `_juggler/injected.js`, `tests/test_fork.py` - do not exist in this repository and never did. A dead exclusion never makes anything red, which is exactly why nobody found it; the shared gate refuses one. So `scripts/check_english_only.py` is deleted, the `english` CI job installs the core and runs the module, and the tool-description test imports the word list from `invisible_core.english` instead of loading the script by path. This repository declares no `[tool.invisible.english]` at all: measured, the shared gate reads 245 tracked files here and is silent with nothing exempt. The dependency floor moves to `invisible-playwright>=0.16.2`, which is the first wrapper pinning a core that has the module the test imports. * The version is declared in three files, and the suite declares what it imports Three things the CI found on the first run, all of them mine and all of them real. The version lives in `pyproject.toml`, `manifest.json` and `server.json`, and bumping one left two behind: the gate compares them and said so. Bumped. `invisible-core` is now a DECLARED test dependency. It was already arriving through `invisible-playwright`, so nothing was missing at runtime - but since 30.23.0 the language gate is `invisible_core.english` and two test files import it directly, and an import that leans on a transitive dependency works until the day the wrapper stops needing the core. `test_the_suite_declares_everything_it _imports` caught it against the published stack, which is what it is for. And `test_the_gate_says_which_tree_it_judged.py` is rewritten against the module instead of the deleted script. Its own docstring had named this consolidation and said it was not done yet - "the single home for a rule that all three must obey is invisible_core ... that consolidation is a core release and is not done here". It is done, so the test that asserted the REFUSAL is gone: the script could only judge where it lived, so pointing it elsewhere was a mistake to catch; the module takes the tree as an argument, so pointing it elsewhere is an ordinary request. What replaces it is the property the refusal was protecting - a cross-repo run answers about the tree it was given and names it, and pointed at a guilty tree it accuses THAT one rather than reporting its own clean state. The file also pins what the copy cost: four of the five exclusions it carried named paths that only ever existed in the wrapper, and this repository now declares none. Suite 693 passed against the published stack - invisible-core 30.23.0 and invisible-playwright 0.16.2 resolved from the index, in a clean venv. ruff clean, language gate clean on 245 files with nothing exempt.
Related Repositories
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
Reverse engineer anything with agents, from app behavior down to native binaries.
The open source coding agent.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.