Repository navigation
Release candidate 1.0.0-rc.1: do not merge - #316
Draft
jothimani-rajendran wants to merge 44 commits into
Draft
jothimani-rajendran wants to merge 44 commits into
jothimani-rajendran wants to merge 44 commits into
Conversation
README route 2 becomes one merged plugin from a chock.sh selection (chock install --selection '<code>' --apply) and absorbs the old route 3. The five chock-*-plugins rows read "retired" until they are removed. docs/agent-plugins.md lists the builder command and install steps per client from install/data/install.json instead of the repos; ecosystem.md likewise. repos.json is the source; data.json is regenerated by derive.py repos. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Add "Host it in your own marketplace" to docs/agent-plugins.md: build with --dest and no --apply, review the folder and its marker, commit it to the organisation's marketplace repository, install from there, update by rebuilding on a newer catalog pin. Name the two absolute-path clients (Antigravity, OpenHands). Record what was measured on Claude Code and what is unmeasured. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Claude Code accepts exit 2 and exit 0 with a permissionDecision deny JSON; chock's adapter emits the JSON form (measured on Claude Code 2.1.305), and the copilot format carries permissionDecision the same way through its respond template (not measured). Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…ips one quote pair A hook deny read only "Blocked by chock policy: <policy>" while an ask carried the guard's line. The deny now appends the guard's first line after the policy name. Exit codes and each client's JSON shape are unchanged; runtime goldens regenerated. chock install --selection now strips one surrounding pair of matching single or double quotes (cmd.exe passes them through), and a decode failure says so. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Removing the plugin left the build folder and the shared chock-local marketplace behind, and `chock bundle status` kept listing the bundle. Each client with a confirmed remove command now carries `remove` steps in data/install.json, printed by `chock install` as "To remove it:": the agent's plugin removal, the build folder, then the marketplace only when no other chock build for that agent still uses it. Codex, Antigravity and Kimi Code carry none: their remove command is not confirmed. `chock bundle status` is unchanged: it reads only chock's own build folders, and telling whether an agent still has a build installed needs a probe of the agent's own plugin registry. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
A team's own build can now install beside a personal one without re-pointing the shared chock-local registration. The flag sets the name in the marketplace file and marker, and in every next step, removal step and note, including the Copilot CLI "already registered" note and the Claude build command printed for other agents. The name is lowercase letters, digits and single hyphens, at most 64; anything else is refused, as is rebuilding a folder under another name. Without the flag nothing changes. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
The "Host it in your own marketplace" steps now build with `--marketplace-name <org>-chock --dest <folder>` and install `chock-guardrails@<name>`. Without a name, adding a second folder re-points the shared `chock-local` registration and every plugin installed from it. Depends on #320 (the flag); this branch does not contain it. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…evel
ast.unparse quotes an f-string that nests a quoted string differently on
3.12.3 (f'{m['k']}') than on 3.12.13 (f"{m['k']}"), so chock sync on
one patch level wrote 15 different runtime files and sync --check failed
on another. Hoist the quoted part of the five affected f-strings into
locals, so no handler f-string nests a string. Add a scan that fails on
any Python if one comes back, and regenerate the runtime goldens.
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
claude_plugin.tokens, place.check_owned and place.write_marketplace gained a required marketplace argument. Other repos call them with the old signature, so the argument now defaults to the engine's default name. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…chock (IR-17) README route 2 and the repository table, docs/ecosystem.md and the repos.json source say the five chock-*-plugins repos are a per-policy marketplace for machines that cannot install chock, not retired. data.json regenerated with derive.py repos. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Claude <noreply@anthropic.com>
…s are the no-chock route (IR-15, IR-17) Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…s gate rejects (IR-15) Reflow only; the no-chock paragraph is shortened. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Add tests/test_runtime_compiles_on_oldest_python.py. It compiles .chock/bin/*.py and tests/fixtures/runtime_goldens/*.py on 3.11: directly on the 3.11 matrix job, via a python3.11 subprocess elsewhere when one is on PATH. A 3.12-only nested-quote f-string from ast.unparse now fails CI instead of refusing every hook call on a 3.11 machine (IR-F13). Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
cmd.exe passes single quotes literally, so the examples read --selection <code>. README route 2 names Python 3.11+, git and a bash for the plugin repos. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…the bash requirement (IR-F1) Undoes the 175-column reflow; the line budget is met by cutting words in the hosted-marketplace section. Requirements read Python 3.11+, git and a bash (Git for Windows includes one). Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…21a) The --marketplace-name help and the Copilot "already registered" note each joined two clauses with a semicolon. Same meaning, now a comma. No test or doc quotes either sentence. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
- cli: `--check` opens a person-only command only where its parser defines the flag (sync, recompile) and only before `--`. - gate: writes of empty content and apply_patch deletes/moves are judged by path; the turn-end listing names deleted files and a rename's old name; path gates also cover a policy's own folders (content scans still skip them). - gate: plugin gates judge from the repository top level; the turn-end read uses lstat/O_NOFOLLOW/O_NONBLOCK and refuses what it cannot read safely; on-disk case is judged on case-insensitive platforms. - gateway: judge the folded, resolved and cased spellings write_gate uses; a scoped gate treats a path it cannot place in the repository as in scope. - guardrails: in a repository a member is off only where HEAD's toggle file says so; the shell guard refuses a write through a path built by expansion. - tests for each; runtime goldens regenerated. .chock/bin is re-rendered by the owner's sync. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
A cp1252 stdout raised UnicodeEncodeError on U+FFFD. Retry with backslashreplace in the stream encoding; representable text is unchanged. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Both writes now go through the same OSError handling, so a reader that vanishes during the backslashreplace retry no longer raises past the wrapper. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…udget (SR-6)
judge_patterns spends interpreter start-up out of the caller's budget when it
starts a child. The dead-child test gave those calls the 1 s budget meant for
the catastrophic pattern, so on a loaded runner the fresh child after the
timeout was not up in time and the "(" case reported "no verdict within 1s"
instead of "exited early". The calls that start a child now get
PATTERN_SECONDS; the catastrophic pattern keeps the 1 s budget on an
already-running child. No assertion changed. budget.py and the vendored
runtime are untouched.
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
conflicts in regenerated paths taken from PR #319: .chock/bin/claude_code.py, .chock/bin/codex_cli.py, .chock/bin/cursor.py, .chock/bin/devin.py, .chock/bin/gemini_cli.py, .chock/bin/grok.py, .chock/bin/tabnine.py, .chock/bin/vscode_copilot.py, .chock/bin/windsurf.py, tests/fixtures/runtime_goldens/antigravity.py, tests/fixtures/runtime_goldens/claude_code.py, tests/fixtures/runtime_goldens/codex_cli.py, tests/fixtures/runtime_goldens/cursor.py, tests/fixtures/runtime_goldens/devin.py, tests/fixtures/runtime_goldens/factory_droid.py, tests/fixtures/runtime_goldens/gemini_cli.py, tests/fixtures/runtime_goldens/goose.py, tests/fixtures/runtime_goldens/grok.py, tests/fixtures/runtime_goldens/mistral_vibe.py, tests/fixtures/runtime_goldens/openhands.py, tests/fixtures/runtime_goldens/tabnine.py, tests/fixtures/runtime_goldens/vscode_copilot.py, tests/fixtures/runtime_goldens/windsurf.py Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
conflicts in regenerated paths taken from PR #321: .chock/bin/claude_code.py, .chock/bin/codex_cli.py, .chock/bin/cursor.py, .chock/bin/devin.py, .chock/bin/gemini_cli.py, .chock/bin/grok.py, .chock/bin/tabnine.py, .chock/bin/vscode_copilot.py, .chock/bin/windsurf.py, tests/fixtures/runtime_goldens/antigravity.py, tests/fixtures/runtime_goldens/claude_code.py, tests/fixtures/runtime_goldens/codex_cli.py, tests/fixtures/runtime_goldens/cursor.py, tests/fixtures/runtime_goldens/devin.py, tests/fixtures/runtime_goldens/factory_droid.py, tests/fixtures/runtime_goldens/gemini_cli.py, tests/fixtures/runtime_goldens/goose.py, tests/fixtures/runtime_goldens/grok.py, tests/fixtures/runtime_goldens/mistral_vibe.py, tests/fixtures/runtime_goldens/openhands.py, tests/fixtures/runtime_goldens/tabnine.py, tests/fixtures/runtime_goldens/vscode_copilot.py, tests/fixtures/runtime_goldens/windsurf.py Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
conflicts in regenerated paths taken from PR #324: .chock/bin/claude_code.py, .chock/bin/codex_cli.py, .chock/bin/cursor.py, .chock/bin/devin.py, .chock/bin/gemini_cli.py, .chock/bin/grok.py, .chock/bin/tabnine.py, .chock/bin/vscode_copilot.py, .chock/bin/windsurf.py, tests/fixtures/runtime_goldens/antigravity.py, tests/fixtures/runtime_goldens/claude_code.py, tests/fixtures/runtime_goldens/codex_cli.py, tests/fixtures/runtime_goldens/cursor.py, tests/fixtures/runtime_goldens/devin.py, tests/fixtures/runtime_goldens/factory_droid.py, tests/fixtures/runtime_goldens/gemini_cli.py, tests/fixtures/runtime_goldens/goose.py, tests/fixtures/runtime_goldens/grok.py, tests/fixtures/runtime_goldens/mistral_vibe.py, tests/fixtures/runtime_goldens/openhands.py, tests/fixtures/runtime_goldens/tabnine.py, tests/fixtures/runtime_goldens/vscode_copilot.py, tests/fixtures/runtime_goldens/windsurf.py Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
jothimani-rajendran
force-pushed
the
rc
branch
from
October 25, 2026 13:22
7fabc8a to
f592114
Compare
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Render paths take main side; tests/test_guard_fail_to_ask.py keeps rc IR-9 deny-reason tests and main SR-4b tests. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Render paths take v1-runtime side. gates.py keeps rc SR-3 repo_paths spellings with v1 SR-8a case_blind; toggle.py keeps rc HEAD-only toggle with v1 toggle_state; protect __init__ keeps rc names helpers with v1 SR-4f session-binding names. Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
…untime merge Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
Signed-off-by: Jothi Mani Rajendran <250249270+jothimani-rajendran@users.noreply.github.com>
This branch has not been deployed
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.
The staging candidate from org-plan plan/internal-release.md, never to be merged (promotion merges the listed PRs to main).
Carries:
Generated by rc.py