Skip to content

docs(F16+F17): plugin load order + mutation slot chaining - #89

Merged
yogthos merged 1 commit into
mainfrom
fix/f16-f17-plugin-docs
May 21, 2026
Merged

docs(F16+F17): plugin load order + mutation slot chaining#89
yogthos merged 1 commit into
mainfrom
fix/f16-f17-plugin-docs

Conversation

@yogthos

@yogthos yogthos commented May 21, 2026

Copy link
Copy Markdown
Collaborator

Track F-MEDIUM #16 + #17. Doc-only: explicit notes in PLUGINS.md about lexicographic file load order (recommend NN-prefix convention) and the intentional last-write-wins chaining of mutation slots across hooks.

Track F-MEDIUM #16 (load order) and #17 (context mutability).

## F16 — Multi-file plugin load order

Behavior was lexicographic but undocumented. Authors who renamed
files (or added files with unexpected prefixes like
`init.janet` thinking it would sort first) hit silent ordering
changes. Adds an explicit doc note in `docs/PLUGINS.md`
recommending the `NN-prefix` convention (`00-`, `01-`, …).

## F17 — `harness/mutate-input` / `replace-result` chain across hooks

The dispatch loop in `Plugin::dispatch_tool_hook` clears mutation
slots once at the START of dispatch, then each hook sees whatever
the prior hook wrote (last-write-wins). This is INTENTIONAL — it
lets refining plugins (e.g. one normalizes the args, another adds
guardrails) compose — but was undocumented. Adds a note clarifying
how it differs from `harness/block` (first-wins) and how to gate
mutations with a sentinel if isolation is desired.

No code changes. 678 pass.
@yogthos
yogthos merged commit 15d44be into main May 21, 2026
1 check passed
@yogthos
yogthos deleted the fix/f16-f17-plugin-docs branch May 21, 2026 04:43
yogthos added a commit that referenced this pull request May 21, 2026
All actionable Track F items now landed:

- F-CRITICAL (PRs #76, #77): ACP perm asks routed to Deny, find/glob/list_dir hide dotfiles by default
- F-HIGH (PRs #78#84): compress aligns cut-point, read streams large files, ACP parallel tool ids, bash pgid cleanup, symlink canonicalize, session schema version, quote-aware bash splitter
- F-MEDIUM (PRs #85, #86, #87, #89, #90, #91): interleaved bash output, compress net-savings, Retry-After parsing, plugin docs, relative-path normalize, BOM strip, bounded interject channel
- F-SKIP (F9, F11, F15): verified false positives or N/A; rationale documented inline

Status legend updated; ordering recommendation replaced with the
shipped-status section.

Co-authored-by: Yogthos <yogthos@gmail.com>
allen-munsch pushed a commit to allen-munsch/dirge that referenced this pull request Jun 3, 2026
…irge-code#89)

Track F-MEDIUM dirge-code#16 (load order) and dirge-code#17 (context mutability).

## F16 — Multi-file plugin load order

Behavior was lexicographic but undocumented. Authors who renamed
files (or added files with unexpected prefixes like
`init.janet` thinking it would sort first) hit silent ordering
changes. Adds an explicit doc note in `docs/PLUGINS.md`
recommending the `NN-prefix` convention (`00-`, `01-`, …).

## F17 — `harness/mutate-input` / `replace-result` chain across hooks

The dispatch loop in `Plugin::dispatch_tool_hook` clears mutation
slots once at the START of dispatch, then each hook sees whatever
the prior hook wrote (last-write-wins). This is INTENTIONAL — it
lets refining plugins (e.g. one normalizes the args, another adds
guardrails) compose — but was undocumented. Adds a note clarifying
how it differs from `harness/block` (first-wins) and how to gate
mutations with a sentinel if isolation is desired.

No code changes. 678 pass.

Co-authored-by: Yogthos <yogthos@gmail.com>
allen-munsch pushed a commit to allen-munsch/dirge that referenced this pull request Jun 3, 2026
…irge-code#92)

All actionable Track F items now landed:

- F-CRITICAL (PRs dirge-code#76, dirge-code#77): ACP perm asks routed to Deny, find/glob/list_dir hide dotfiles by default
- F-HIGH (PRs dirge-code#78dirge-code#84): compress aligns cut-point, read streams large files, ACP parallel tool ids, bash pgid cleanup, symlink canonicalize, session schema version, quote-aware bash splitter
- F-MEDIUM (PRs dirge-code#85, dirge-code#86, dirge-code#87, dirge-code#89, dirge-code#90, dirge-code#91): interleaved bash output, compress net-savings, Retry-After parsing, plugin docs, relative-path normalize, BOM strip, bounded interject channel
- F-SKIP (F9, F11, F15): verified false positives or N/A; rationale documented inline

Status legend updated; ordering recommendation replaced with the
shipped-status section.

Co-authored-by: Yogthos <yogthos@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant