v3.0.0
Removed
- BREAKING: Windsurf, Copilot, Gemini, and Antigravity are no longer supported. These four tools consumed a single concatenated instruction file produced by
emit-concat: all 13tier: coremodule bodies inlined, plus a one-line index of the rest — 60,164 characters (~15K tokens) resident in context on every turn, regardless of what the user was doing. That is the opposite of progressive disclosure, and it made those four the most expensive surfaces the project shipped while giving them the least capability (no auto-trigger for on-demand modules). Claude Code, Cursor, and Codex all load bodies on demand and are unaffected.
Removed:adapters/windsurf.sh,adapters/gemini.sh,adapters/copilot.sh,adapters/antigravity.sh, theemit-concatsubcommand,render_concat,render_index_only, and the_run_concat/_run_generateshell helpers.
Migration is automatic, and reversible.100xprism updateprunes.windsurfrules,GEMINI.md,ANTIGRAVITY.md, and.github/copilot-instructions.mdfrom every project in~/.100xprism/tracked-projects;100xprism initprunes the project it runs in, which covers repos the tracked list never knew about (cloned fresh, or set up on another machine). Native Windows gets the same treatment through a JS mirror of the same logic.
Because this deletes files inside your repositories, it enforces three guarantees, each covered by tests:- Ownership — the file must carry the
Generated by 100xprismmarker in its header region. A hand-written.windsurfrules, or a file that merely mentions us further down, is never touched. - Containment — the resolved path must remain inside the resolved project. A symlinked
.githubpointing at a shared config directory cannot let a delete escape into another repository. - Recoverability — every file is copied to
~/.100xprism/removed-artifacts/<timestamp>/<full-project-path>/before removal, and is removed only if that copy succeeded. A file you edited but never committed is still removed, but never unrecoverably. Backups are keyed by the project's full path, not its basename, so two projects namedappcannot overwrite each other's backup. IfHOMEis unset there is nowhere to guarantee recovery, so nothing is deleted. Failures are reported, not swallowed.
- Ownership — the file must carry the
Added
- Cursor parity on Windows.
lib/adapters/windows.jspreviously had no per-rule emitter and fell back to writing the concatenated config to a single.cursorrulesfile. It now shipsemitCursorRules(), a port ofcmd_emit_cursorthat writes one.cursor/rules/<slug>.mdcper module with byte-identical output to the shell adapter. Windows Cursor users get description-based auto-trigger and on-demand bodies for the first time.
Fixed
- Cursor rules for removed modules were never pruned. Both
cmd_emit_cursorand its JS port scanned only the first 6 lines of an existing.mdcfor the generation marker — but the emitters write that marker on line 7, below the frontmatter block. The check therefore matched nothing, and every module removed upstream orphaned its rule in every Cursor project indefinitely. The window now reaches past the marker in both implementations, and the constant is shared rather than duplicated as a literal. The regression tests previously passed against a hand-written fixture with the marker on line 5 — a file the emitter never produces — so they now prune real emitter output and assert the marker falls inside the scanned window. 100xprism updateskipped the tracked-project pass entirely on the "already up to date" path, so a v3 migration interrupted after the pull would never be retried onceHEADmatchedorigin. Both paths now reconcile projects.
Changed
100xprism updateregenerates Cursor rules when it finds.cursor/rules/, not only the legacy.cursorrulesfile — projects initialised after the move to per-rule.mdcfiles were silently skipped by update.- Instruction-file discovery across 14 modules and
_lib/reference.mdnow probesCLAUDE.md AGENTS.md .cursorrulesinstead of a six-entry list including.windsurfrules,GEMINI.md, and.github/copilot-instructions.md. - The
install/inittool pickers offer three tools instead of seven, and installer output no longer advertises Cursor as.cursorrules(it has written.cursor/rules/since v2.x).
Install / upgrade:
# New install
bash -c "$(curl -fsSL https://raw.githubusercontent.com/rajitsaha/100xprism/main/install.sh)"
# Existing users
~/100xprism/update.sh