fix(security): omit private maintainer notes from branch guidance#213
Merged
Conversation
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
gittensory-ui | 39e7f9a | Commit Preview URL Branch Preview URL |
Jun 01 2026, 10:30 PM |
|
Documentation Updates 1 document(s) were updated by changes in this PR: For MaintainersView Changes@@ -119,7 +119,7 @@
- **`linkedIssuePolicy`** (string: `"required"`, `"preferred"`, or `"optional"`) — Whether PRs must link to a tracked issue.
- **`testExpectations`** (string array) — Free-form guidance on what test evidence the maintainer expects (e.g., "Run `npm test` locally before opening a PR").
- **`issueDiscoveryPolicy`** (string: `"encouraged"`, `"neutral"`, or `"discouraged"`) — Whether the maintainer welcomes new issue-discovery reports or prefers direct fixes.
-- **`maintainerNotes`** (string array) — Private review context for the maintainer; never appears in public PR threads.
+- **`maintainerNotes`** (string array) — Private review context for maintainers. Can be defined in the manifest configuration file to document internal review context, but is **explicitly omitted** from guidance objects returned to contributors and is **never persisted** in snapshots. This field was removed from the `FocusManifestGuidance` response schema for security reasons to prevent leaking private maintainer context to contributors, since guidance responses are contributor-facing.
- **`publicNotes`** (string array) — Public guidance for contributors; shown in packet "Next Steps" and decision-pack recommendations after sanitization.
#### Example |
This was referenced Jul 2, 2026
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.
Motivation
maintainerNotesinto contributor-facing branch analysis responses and persisted snapshots, sincemaintainerNotesare documented as private review context and must not be emitted to non-maintainers.Description
maintainerNotesfrom the contributor-facingFocusManifestGuidanceshape and from both the empty and present guidance return values insrc/signals/focus-manifest.tsso guidance objects no longer carry private notes.manifestGuidance.maintainerNotesfrom the OpenAPI response schema insrc/openapi/schemas.tsand regenerate the UI OpenAPI document atapps/gittensory-ui/public/openapi.jsonso the public contract no longer exposes the field.test/unit/focus-manifest.test.tsandtest/unit/local-branch.test.tsto assertmaintainerNotesis absent from guidance and that serialized analysis/pr-packet output does not contain private notes while public notes remain rendered.Testing
npm run typecheckand it succeeded.npm run test:unit -- test/unit/focus-manifest.test.ts test/unit/local-branch.test.tsand all tests passed.npm run ui:openapiand checked it withnpm run ui:openapi:check; the generated OpenAPI no longer documentsmaintainerNotesand the check passed.Codex Task