Skip to content

Finish the engine refactor of #95 - #129

Merged
polewskm merged 23 commits into
mainfrom
refactor-95c
Nov 1, 2026
Merged

polewskm merged 23 commits into
mainfrom
refactor-95c

Conversation

@polewskm

@polewskm polewskm commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Finishes the engine refactor of #95. The remaining GitHub reads (open and closed issues, permission lookups, the training's guidance issues) move onto the shared client in src/github.ts, and outcomes and the publish step's dismissals use the one writer check.
The finding marker is read in one place (the last marker, which fixes outcomes recording the wrong finding when a suggestion holds a marker-like line), and gather and the template check share one git read.
Model-written text in every bot comment goes through neutralizeProse, so it can no longer mention anyone or post links, while code spans and fences stay intact.
config.yml is parsed with the yaml library (failsafe schema, same error shape), and one check covers path items.

Closes #95

@polewskm
polewskm deployed to code-review November 1, 2026 01:48 — with GitHub Actions Active

@ncode-review ncode-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 NCode Review at 8354232: 1 new finding on the changed lines.

Not on a changed line:

  • 🟡 F2 Nit: Taught-rule text still gets mention-only escaping src/teach.ts:56. src/teach.ts still uses neutralizeMentions at lines 47 and 56, so a link in a taught rule or in the 'Review guidance:' line stays live. Is that intended, given the rule is maintainer text and not model text? Fix: Switch src/teach.ts lines 47 and 56 to neutralizeProse. Or, if taught rules are meant to keep links, say in the changelog that they are maintainer text and only mentions are escaped.

Comment thread src/results.ts Resolved
@ncode-review

ncode-review Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

Superseded by the review at 8354232.

@polewskm

polewskm commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

Autopilot: ready to merge as far as this run can tell. The plan's review caught and fixed two should-fix problems before the push: a lone carriage return reopening a ping, and a flow-mapping root parsing. The bot's review raised one question, which doesn't hold (file paths in code spans never pass through neutralizeProse). This closes #95. Follow-up filed after the merge: neutralize #123 and owner/repo#123 references in model-written text.

@polewskm

polewskm commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

/review

@ncode-review ncode-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 NCode Review at 8354232: 2 new findings on the changed lines.

Comment thread src/writers.ts Resolved
Comment thread CHANGELOG.md Resolved
@ncode-review

ncode-review Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

🤖 Review complete

Verdict: 💬 Comment — This finishes the #95 refactor. The remaining GitHub reads move onto the shared client in src/github.ts, and the three permission checks become one writerCheck. The finding marker is read in one place, and gather and the template check share one git read through gatherChecked. Model-written comment text goes through neutralizeProse, and config.yml is parsed with the yaml library. The design holds together: it removes duplication rather than adding workarounds, and new tests cover each changed path. The remaining points are about disclosure in the changelog and description, not about how the code behaves.

8 reviewers run — 2 findings (run details)

Reviewer Model Findings Top
synthesis opus-5-5 2 🟡
architecture sonnet-5-5 0 🟢
completeness sonnet-5-5 0 🟢
conventions sonnet-5-5 0 🟢
correctness sonnet-5-5 0 🟢
hygiene haiku-5-5 0 🟢
intent haiku-5-5 2 🟠
rule-check sonnet-5-5 0 🟢
security sonnet-5-5 0 🟢

Skipped: api-compat, data-model, infrastructure, performance, tests

Findings
  • 🟡 F1 src/writers.ts:21: Is counting role_name: maintain as a writer in every check intended, and worth saying?
  • 🟡 F2 CHANGELOG.md:35: Changelog says the YAML subset is unchanged, but indented keys now read

Trial: findings are posted as review threads and in the check run. $0.91 on Amazon Bedrock, 82s, at 8354232. (how to interact)

📋 Outcomes

Merged at 8354232: 0 fixed, 3 dismissed, 0 acknowledged, 0 ignored.

Finding Reviewer Severity Outcome
F1 correctness 🟡 Nit 👎 dismissed
F1 intent 🟡 Nit 👎 dismissed
F2 intent 🟡 Nit 👎 dismissed

@polewskm

polewskm commented Nov 1, 2026

Copy link
Copy Markdown
Contributor Author

On the src/teach.ts finding in the review at 8354232 (taught-rule text still escapes only mentions): not changed.

  • Line 47 (fenced) quotes the text in a fenced code block, where links never render.
  • Line 56 (issueTitle) builds an issue title, which GitHub shows as plain text.
  • The rule is a writer's own text, not model text, and the training reader strips the zero-width space neutralizeMentions adds.

neutralizeProse would add nothing here.

@polewskm
polewskm marked this pull request as ready for review November 1, 2026 02:29
@polewskm
polewskm deployed to code-review November 1, 2026 02:29 — with GitHub Actions Active
@polewskm
polewskm merged commit e33ea87 into main Nov 1, 2026
8 checks passed
@polewskm
polewskm deleted the refactor-95c branch November 1, 2026 02:29
@polewskm
polewskm deployed to code-review November 1, 2026 02:29 — with GitHub Actions Active

This branch was successfully deployed

1 active deployment
code-review — 8354232e Deployed Nov 1, 2026 by polewskm via review #412
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.

Refactor: one GitHub client, one thread reader, shared escaping

1 participant