Conversation
SaulMoro
marked this pull request as draft
October 2, 2026 00:08
SaulMoro
force-pushed
the
fix/946-rules-delivery
branch
from
October 2, 2026 05:21
b9e9378 to
daf0817
Compare
This was referenced Oct 2, 2026
SaulMoro
force-pushed
the
fix/946-rules-delivery
branch
from
October 3, 2026 06:33
daf0817 to
f87b4d7
Compare
SaulMoro
marked this pull request as ready for review
October 3, 2026 06:33
Collaborator
|
This branch has merge conflicts with |
SaulMoro
force-pushed
the
fix/946-rules-delivery
branch
from
October 3, 2026 07:04
f87b4d7 to
2c70f26
Compare
|
|
Findings
Resolved
|
SaulMoro
force-pushed
the
fix/946-rules-delivery
branch
from
October 3, 2026 10:28
2474643 to
0ca60db
Compare
…ets (Tencent#946) - Keep OpenClaw's default workspace AGENTS.md out of the retired files: its default profile still reads it. - Strip a retired file of a tool with no file and no hook in this scope (OpenClaw in a project) without waiting for a replacement. - Keep doctor's Pi extension check while the project has team rules, even with no instruction blocks. - Adapt the Tencent#945 every-shape test to OpenClaw's workspace install probe and its lack of a project file; drop the Tencent#946 uninstall test Tencent#945's recorded entry ownership superseded.
- Hold back a hook tool's retired instruction file while its hook is not installed; only a tool with no project channel (OpenClaw) releases it. - Mark Hermes and OpenClaw rules always on (✓*) in every README. - Pin that a project uninstall keeps a .opencode/opencode.json left with only $schema once the recorded instructions entry goes. - Resolve the team rules once for doctor's hook checks; use one RulesHandler in the uninstall plan; return early from ruleChannelNotes outside a project; name only the files a project pull touches when the team rules cannot be resolved; drop a stray CHANGELOG period.
…namespace globs (Tencent#946) - A flat copy on record is teamai's only while it holds what was recorded or the render; remove and uninstall keep and name an edited one. - OpenCode's user rules globs own every namespace directory a rule landed in at a revision this checkout pulled, so pull and doctor reclaim the glob of a namespace the team deleted.
…n inline rules (Tencent#946) - A superseded flat copy (fe.style.md beside the author's style.md) goes only while it holds what was recorded or the render; an edited one is kept and named, a member's own file is left alone. - inlinedRulesText reads paths: through the tolerant team-rule parse, so paths: **/*.ts keeps its 'Applies to files matching' line.
…Tencent#946) parseLearningDoc logged 'Failed to parse frontmatter' at error level on every pull for a rule with paths: **/*.ts and indexed the frontmatter as body text. It now retries with the tolerant team-rule parse and logs at debug.
SaulMoro
force-pushed
the
fix/946-rules-delivery
branch
from
October 3, 2026 14:32
0ca60db to
591dc5e
Compare
|
Findings
Resolved
|
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.
Summary
Deliver rules through the files and formats each tool reads. Fix OpenCode namespace globs, OpenClaw event dispatch and hook activation, and diagnostics for missing delivery channels. Push and uninstall respect recorded ownership, flat names and shared files. Scoped inline rules retain
Applies to files matching: <globs>as model guidance; the tool does not enforce file filtering.README capability changes
All five README variants contain the same changes:
✓*identifies always-on rules without tool-enforced path scoping. Hermes and OpenClaw use their normal user-scope channel. OpenClaw's previous check counted rule files it did not read.JoyCode scopes project rules natively; its user
rules.txtblock is always on.Type of Change
Test Plan
Current rebased tree, head
591dc5eb, based onmainat6c5949f8:npx tsc --noEmitnpm run lintnpm run buildnpx vitest run --maxWorkers=4: 7,965 passed, 20 skippednpx vitest run src/__tests__/init.test.ts src/__tests__/doctor.test.ts src/__tests__/hooks-cmd.test.ts --maxWorkers=4: 153 passednpx vitest run --config vitest.e2e.config.ts src/__tests__/e2e/hooks-project-isolation-issue373.test.ts src/__tests__/e2e/doctor-delivery-cli.test.ts: 14 passed after build. Covers shared main-checkout Claude/Codex hooks, project isolation and CLI delivery diagnostics.The full E2E suite was not rerun, preserving the requested waiver. Its previously recorded run had 492 passed and 26 skipped at
f87b4d78. The final commit changes only the init test; the built runtime and real-CLI runs use the same runtime tree as the current head.Evidence
Real CLI after build, git provider, isolated HOME, Kiro/OMP/Pi in user scope:
Both Kiro and OMP
fe.style.mdcopies retain the live rule after both pulls. PiAGENTS.mdcontainsApplies to files matching: **/*.ts; neither pull prints a frontmatter parse error. Before the fixes, the root tombstone could delete the flat copy and strict YAML parsing dropped the inline scope hint.A second project-only HOME with Hermes/Claude and an obsolete managed block in global
SOUL.md:The obsolete block is absent and personal
SOUL.mdtext remains. Previously the project-only install left the global rules behind. These runs exercise CLI delivery and migration; they do not launch those host applications.Related Issues
Fixes #946.
Dependencies #952 and #958 are merged. The branch is rebased onto
origin/main; their implementation is outside this PR's diff. Conflict resolutions retain #958 automatic Codex trust, main-checkout hook sharing and doctor trust queries alongside #946 delivery notes. The init regression now checks automatic trust reporting without an unconditional manual-trust warning. English/Chinese guides retain both changes.Notes for Reviewers
Reviewed the whole branch inventory and runtime changes against
origin/main, and compared all 17 original commits withgit range-diff. The rebase preserves the previous rule ownership fixes and main's read-only votes aggregation from #968. Bilingual guides, design docs and affectedskill-datareferences are updated.Merge danger
Door: Two-way for code. Migration removes only proven, unchanged team copies and preserves member edits; restoring a legacy layout requires a compatible release and pull. The existing data-directory migration does not support downgrades.
Blast radius: Rules, instruction files, hook configuration and diagnostics across tools.
Earlier verification and retained limits
TEAMAI_RULE_PARSER_BUNDLES; they are among the current skips..codebuddy, which makes CodeBuddy count as installed.--patchand may miss the first request. Codex automatic hook trust comes from fix(hooks): trust Codex hooks and share project hooks across worktrees #958, with manual fallback when disabled or unsuccessful.DSH_HOME.