Repository navigation
Add browser-agent onboarding with accepted plans and reusable starters - #48
Conversation
CompleteDotTech
left a comment
There was a problem hiding this comment.
Reviewed the full implementation and integration diff. Findings addressed: release-versioned dashboard assets; immediate displayed enforcement state after tool writes; readonly/nonportable starter markers; shared image-rule identity and tombstones across pack/onboarding installation; duplicate-starter persistence assertions; native lifecycle cleanup and explicit distinction between standalone authentication and Discord parent-frame policy.
Validation evidence includes 367 passing tests, full PostgreSQL/MySQL and cross-workflow persistence, native Chrome tool execution, real Discord OAuth and accepted local-plan application. Actual Discord iframe registration is denied by its unmodified parent policy, so the documented standalone route is required for this client. No live second-account permission-revocation or provider-accuracy result is asserted. Final-head CI remains the merge gate; no required external-review rule is configured on main.
|
Merged #48 at 722dc90; #44 closed automatically. All feature-head PR/push checks and the merged-main validation run passed. Checksum-only #50 also passed its PR/push checks and merged at 52084fd; all 469 manifest entries match the combined main tree. Local isolated checkout is clean and synchronized to origin/main at 52084fd. The original shared checkout and its ongoing changes were preserved. Real Discord standalone OAuth/native tools/accepted local-plan receipts and actual iframe policy denial are recorded in evidence/issue44-live.json. Temporary Activity/callback state was restored; test services/containers/browser were stopped and copied secrets redacted. No production deployment or paid provider calls were performed. |
Closes #44.
Administrators can open Agent setup in the Discord Activity or independently sign in at the public-origin /setup dashboard. Eight strictly scoped browser WebMCP tools inspect guild readiness/inventory, discover starters, propose a configuration, inspect/apply an accepted plan, run existing non-moderating tests and pause enforcement. Unsupported browsers retain the manual planner. No remote MCP service is added.
Plans show exact before/after settings, preserved rules and disabled additions. Acceptance is a separate administrator UI action, bound to actor, guild, management session, canonical digest, policy revisions and ten-minute expiry. The SQL guild transaction commits rules/settings/audit receipt atomically; a repeated applied plan recovers the same receipt. Credentials remain in Settings. Calibration, approval, acknowledgements, high-impact/second-verification and deployment-acceptance gates remain separate; onboarding leaves enforcement off.
Four compositions reuse existing text starters and the image reference/pack library: scam/phishing, general community text, image scam-reference review and custom text policy. Components union without duplicates, preserve edits/deletion tombstones, and reconcile the legacy all-text installer. Integrated newly merged #46: pack exports exclude local onboarding markers, imports reject transported markers and preserve destination state, and image onboarding shares the bundled reference-rule identity. Preserved independently merged benchmark work from #47.
Compatibility decision: the actual Discord web Activity iframe exposes the native API but does not delegate the tools policy (allow="autoplay; encrypted-media"); a temporary constant-only registration probe is rejected with NotAllowedError. Browser-agent onboarding therefore uses the separately authenticated public-origin dashboard in this tested environment. Other Discord clients and built-in browser-agent products remain unverified.
Real standalone evidence: the administrator authenticated with Discord in Chrome 155 with WebMCP enabled. Native getTools/executeTool discovered eight tools/four presets, proposed nine disabled review rules, refused unaccepted application, recorded the user's explicit agreement via the review UI, applied to isolated local SQL, recovered the same receipt, paused enforcement and removed tools on logout. The test was scoped to a designated guild, with no Gateway/controller and provider transport disabled. Temporary Activity/callback state was cleaned up; credentials and real server identifiers are absent from committed evidence. evidence/issue44-live.json records this separately from offline screenshots.
Validation: 367 unit/HTTP tests; typecheck/build; zero-advisory audit; license/dataset checks; full isolated PostgreSQL/MySQL integration; onboarding rollback/concurrency/persisted-receipt tests on both dialects; integrated pack persistence on both dialects; existing desktop/mobile browser regression and new onboarding flows. The old CI head exposed a duplicate-starter persistence assertion; it now verifies one canonical component each, tombstones and correct deletion count. Updated CI runs onboarding plus pack database checks. Release tests passed 13 with 3 existing Windows skips. Hosted checks passed on the implementation head; final documentation/evidence head checks must also pass before merge.
Documentation: README, setup/onboarding, API/security/permissions, text starters, user specification, validation, native SVG architecture, eight actual compiled-UI screenshots with synthetic labels/provenance, asset manifest and repository SHA256SUMS. Full details: evidence/issue44-validation.md and docs/AGENT_ONBOARDING.md.
Remaining acceptance limits: other Discord clients/browser-agent products, live role revocation with a second isolated account, and real provider quality/calibration remain unverified. These are documented limits, not successful acceptance claims. Existing permissions, tests and enforcement gates remain intact. No production deployment or paid provider calls are included. The isolated live helper is API-only, one-guild scoped, loopback-database guarded and has provider transport disabled.