Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 19:40
· 16 commits to main since this release
8002b90

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 13 tier: core module 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, the emit-concat subcommand, render_concat, render_index_only, and the _run_concat/_run_generate shell helpers.
    Migration is automatic, and reversible. 100xprism update prunes .windsurfrules, GEMINI.md, ANTIGRAVITY.md, and .github/copilot-instructions.md from every project in ~/.100xprism/tracked-projects; 100xprism init prunes 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 100xprism marker 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 .github pointing 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 named app cannot overwrite each other's backup. If HOME is unset there is nowhere to guarantee recovery, so nothing is deleted. Failures are reported, not swallowed.

Added

  • Cursor parity on Windows. lib/adapters/windows.js previously had no per-rule emitter and fell back to writing the concatenated config to a single .cursorrules file. It now ships emitCursorRules(), a port of cmd_emit_cursor that writes one .cursor/rules/<slug>.mdc per 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_cursor and its JS port scanned only the first 6 lines of an existing .mdc for 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 update skipped the tracked-project pass entirely on the "already up to date" path, so a v3 migration interrupted after the pull would never be retried once HEAD matched origin. Both paths now reconcile projects.

Changed

  • 100xprism update regenerates Cursor rules when it finds .cursor/rules/, not only the legacy .cursorrules file — projects initialised after the move to per-rule .mdc files were silently skipped by update.
  • Instruction-file discovery across 14 modules and _lib/reference.md now probes CLAUDE.md AGENTS.md .cursorrules instead of a six-entry list including .windsurfrules, GEMINI.md, and .github/copilot-instructions.md.
  • The install/init tool 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