feat(registry): onboard official composer, search, history, copy-mode plugins - #73
Merged
Xuepoo merged 2 commits intoOct 5, 2026
Merged
Conversation
…de plugins Mirror PR #70 (bar, 3704f10): register composer, search, history, and copy-mode as official plugins. Each entry adds registry/official/<name>.toml plus the plugins/<name> submodule pin at the verified main HEAD. generated/registry.json rebuilt via just registry-generate (6 -> 10 plugins); the artifact was never hand-edited.
This was referenced Oct 5, 2026
Merged
Xuepoo
added a commit
to bitty-terminal/search
that referenced
this pull request
Oct 5, 2026
The plugins CI job (bitty-terminal/bitty-plugins#73) checks out only bitty-plugins with no bitty Core alongside, so live-host evidence tests that resolve Core via BITTY_WORKSPACE/relative fallback failed with ENOENT (11 fails in search). Fail-soft: detect Core presence (working-tree files + fresh origin/main via read-only git plumbing, never a hardcoded path) and skip the two live-identity describes with an explicit console notice, keeping ALL mock-level assertions running. With BITTY_WORKSPACE pointed at a real workspace the live tests execute (proves the skip never masks a real run). Evidence: BITTY_WORKSPACE=/tmp/nonexistent-bitty-workspace bun test -> 40 pass, 11 skip; BITTY_WORKSPACE=$BITTY_WORKSPACE bun test -> 51 pass. just check green both modes.
Xuepoo
added a commit
to bitty-terminal/copy-mode
that referenced
this pull request
Oct 5, 2026
The plugins CI job (bitty-terminal/bitty-plugins#73) has no bitty Core alongside. Every parity pin below runs hermetic against the SDK mock (live behavior cited, never read from disk), but add an explicit fail-soft probe resolving Core via BITTY_WORKSPACE/relative fallback (never a hardcoded path): skip with a printed notice when absent, execute when present. ALL mock-pinned assertions keep running. Evidence: BITTY_WORKSPACE=/tmp/nonexistent-bitty-workspace bun test -> 46 pass, 1 skip; BITTY_WORKSPACE=$BITTY_WORKSPACE bun test -> 47 pass. just check green both modes.
Xuepoo
added a commit
to bitty-terminal/composer
that referenced
this pull request
Oct 5, 2026
The plugins CI job (bitty-terminal/bitty-plugins#73) has no bitty Core alongside. Every parity row runs hermetic against the SDK mock (Core cited at bitty@1df0459e, never read from disk), but add an explicit fail-soft probe resolving Core via BITTY_WORKSPACE/relative fallback (never a hardcoded path): skip with a printed notice when absent, execute when present. ALL mock assertions keep running. Evidence: BITTY_WORKSPACE=/tmp/nonexistent-bitty-workspace bun test -> 52 pass, 1 skip; BITTY_WORKSPACE=$BITTY_WORKSPACE bun test -> 53 pass. just check green both modes.
Xuepoo
added a commit
to bitty-terminal/history
that referenced
this pull request
Oct 5, 2026
The plugins CI job (bitty-terminal/bitty-plugins#73) has no bitty Core alongside. This suite replays committed fixtures (tests/fixtures/live-host-matrix.json) so it already runs hermetic, but add an explicit fail-soft probe resolving Core via BITTY_WORKSPACE/ relative fallback (never a hardcoded path): skip with a printed notice when absent, execute when present. ALL fixture-pinned assertions keep running in both modes. Evidence: BITTY_WORKSPACE=/tmp/nonexistent-bitty-workspace bun test -> 42 pass, 1 skip; BITTY_WORKSPACE=$BITTY_WORKSPACE bun test -> 43 pass. just check green both modes.
… pins to fail-soft heads Advance the four plugin gitlinks to the just-merged fail-soft heads: - search e65bf83 -> a363188 - history aea5ce3 -> c839e97 - copy-mode 7410a3e -> edeae30 - composer d7d39df -> 2762e34 Each new pin verified == git ls-remote HEAD. bitty-plugin.toml bytes identical at old/new pins (sha256 matches registry manifest_hash), so no manifest_hash recompute. generated/registry.json rebuilt via just registry-generate (no-op, 10 plugins); just check and registry-validate green (0 errors).
Contributor
Author
|
Pin advance pushed as 0bc79d5 (4 gitlinks only, no merge). Verified each new pin ==
Each is the fail-soft live-Core probe commit (fix(tests), #10 / composer #11). manifest_hash: NOT recomputed — verified bitty-plugin.toml bytes identical at old/new pins (local submodule sha256 + raw.githubusercontent cross-check):
Checks in worktree .worktrees/ctx-0034-feat-onboard-composer-search-history-copymode (branch based on origin/main 49f2f3a):
Not merging per instruction; ready for review. |
Xuepoo
deleted the
ctx-0034/feat-onboard-composer-search-history-copymode
branch
October 5, 2026 15:34
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Priority: P1 | Area: area:plugins | Labels: feat,P1,area:plugins | Milestone: v0.1.0 | Task: CTX-0034
Onboards four official plugins, mirroring merged PR #70 (bar onboarding,
commit 3704f10):
bitty-terminal.composer,bitty-terminal.search,bitty-terminal.history,bitty-terminal.copy-mode.One PR (not four): every entry regenerates the same
generated/registry.jsonartifact, so four parallel PRs would conflict onevery rebase. The file pattern matches #70 exactly:
registry/official/<name>.toml+plugins/<name>submodule gitlink +generated/registry.jsonrebuilt viajust registry-generate(6 -> 10 plugins, never hand-edited).
Pins (each verified
== git ls-remote https://github.com/bitty-terminal/<name>.git HEAD;default branch
mainviagh api repos/bitty-terminal/<name>):Manifest verification (local submodule checkout at pin is byte-identical to
the hashed raw bytes;
idmatchesbitty-terminal.<name>in all four):Method check: the same H-A procedure (sha256 over raw
bitty-plugin.tomlbytes at pin) reproduces the recorded wheel (
991579d3...) and bar(
947df761...) hashes exactly.Compat follow-up (plugin repos NOT changed by this PR): search, history, and
copy-mode declare
bitty >=0.5,<1.0, which excludes the dev host 0.0.21.Composer already admits it (
>=0.0.21,<0.1). Registry entries copy themanifest ranges verbatim per the #70 precedent; any range change belongs to
the owning plugin repositories under their own review.
Evidence:
just checkgreen (exit 0) in a clean worktree from origin/main;registry-validate0 errors with submodules initialized (warnings only, sameclasses as pre-existing entries);
registry-checkreports the index up todate (10 plugins). Do NOT merge: awaiting independent review + CI per the
delivery lifecycle.