Repository navigation
Dispatch project-assistant-owner through the host channel and authz - #1811
Merged
Merged
Conversation
The Project Assistant settings (digest opt-out, quiet window, zone) had a store case and #1743's owner gate but no channel case and no TASK_ENDPOINTS entry, so every request answered Unknown endpoint and the controls were writable only in-process. Wire both points in one change: dispatched without the allow-list entry, the endpoint would reach store.js with no owner check. Regenerated the ds-bot patch mirror for the new core/ files (no git here, so the files/ mirrors and the 0005 hunk were updated by hand and check passes). Written-by: Dev
Birfy
force-pushed
the
dev/1759-project-assistant-owner-dispatch
branch
from
October 30, 2026 07:16
2881ca6 to
b3a97db
Compare
Collaborator
Author
|
Verdict: PASS at b3a97db Ran at this tip: Red first, on a clean copy at the tip with only the two changed sources swapped back to their base blobs: What I checked:
Not run: full |
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.
Written-by: Dev
Fixes #1759
Owner: Dev
Reviewer: Reviewer
Tip SHA: b3a97db
Base: 84de666
project-assistant-owneris dispatched with the otherproject-*endpointsdefaultand answeredUnknown endpoint(#1759)authz.jsTASK_ENDPOINTSstore.jswith no owner check in front of it; both points land togetherbot/not-found, the tip answersbot/forbidden; the owner writes the digest opt-out, the quiet window and the zonecore/is generated intopatches/ds-bot/, and the package check compares it; thefiles/copies and the0005hunk were updated withoutgitandcheckpassescore-host.mdsaid the endpoint was not wired yet; it now says how it is reached and that #1743'srequireProjectOwnerstill refuses a non-ownerNo store change, no new endpoint, no client change. The owner gate is #1743's
requireProjectOwner: this slice adds no second copy. Ordering: #1749's settings panel can now write through this endpoint instead of receivingbot/not-found.Verification at the tip
Tip SHA: b3a97db
Ran:
node --test test/projects.test.js test/project-owner-gate.test.js test/authz.test.js test/project-assistant.test.js(60 tests, 60 pass);node scripts/ds-bot-patches.mjs check(ok core/ equals ds-bot/ + patches/ds-bot/, 10 patches apply cleanly);npm run lint(oxlint 0 errors, 71 pre-existing warnings;arch-docscannot diff againstorigin/mainin a tarball workspace and says so);node .github/scripts/changelog.mjs check(26 fragments well formed).Red first: with
core/src/host/channel.jsandcore/src/host/authz.jsrestored to the base blobs, the new case fails10 pass / 1 failwith+ 'bot/not-found' - 'bot/forbidden'; at the tip11 pass / 0 fail.Not run: full
npm run verify, smoke test.Checkpoint
{
"pr": 1811, "claim": "Dev", "issue": 1759,
"summary": "The Project Assistant settings had a store case and the #1743 owner gate but no channel dispatch and no authorization entry, so the digest opt-out, the quiet window and the zone could not be written from the product. This adds the channel case and the TASK_ENDPOINTS entry together, because a dispatch without the allow-list entry would bypass the owner check. A channel-level test drives a non-owner to bot/forbidden and the owner to a stored record.",
"files": ["core/src/host/channel.js", "core/src/host/authz.js", "core/test/projects.test.js", "docs/subsystems/core-host.md", "changelog.d/1759-project-assistant-owner.fixed.md"],
"checks": { "ran": "node --test test/projects.test.js test/project-owner-gate.test.js test/authz.test.js test/project-assistant.test.js; npm run lint; node .github/scripts/changelog.mjs check", "result": "green", "at": "b3a97dbd4eedfacdb6cf6c49174f06eabb54d249" },
"next": "none — ready for review"
}