Skip to content

Lark tracer: explicitly saved approval rules and creator-authorization revocation #1033

Closed

Description

@DoodleBears

Parent

#1019

What to build

A paired Lark approver with rule-saving capability explicitly saves an exact Tool Approval Rule or a separately disclosed supported broader rule, and Web/IM show its scope and revocation.

Acceptance criteria

  • Allow once remains the default; rule saving requires its own capability and a second confirmation.
  • An exact rule matches complete native tool input/name within the same PersonaBot role and Workspace Grant scope; demonstrate both a matching call and a nonmatching refusal/request.
  • All-opaque scope is displayed separately and separately confirmed; neither rule broadens existing native, Workspace or Service Grant authority.
  • Record the creating external authorization; revoking it disables its rules before future execution and re-pairing cannot restore them automatically.
  • Web and IM reflect the same saved rule and current status; repeated callbacks cannot create competing rules. Question answers never create rules.
  • Demonstrate rule creation, a real automatically approved matching call, mismatch and creator revocation through the actual UI.
  • Test through checked Provider and authenticated management/owning service boundaries; keep existing canonical persistence and no parallel content/decision authority.
  • Retain real sanitized screenshots/step evidence and maintain the affected English/Chinese tutorial section; UI changes include matched baseline/changed light/dark evidence and no private secrets.
  • Provide the exact-version runnable review path and focused behavioral coverage; pause for Human QA before expansion, without automatic merge/deployment.

Blocked by

Activity

  1. added this to the v1.2 milestone on Oct 6, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:messagingMessaging module and external providers
    scope:tracerHuman-testable implementation slice
    on Oct 6, 2026
  3. modified the milestones: v1.2, v1.3 on Oct 11, 2026
  4. DoodleBears commented on Oct 11, 2026

    @DoodleBears
    ContributorAuthor

    Human-confirmed follow-up: approve this class of operation

    The Human accepted the current PR interaction and requested a follow-up from Lark Allow once / 批准本次操作 to Web-equivalent reusable approval rules. Reuse this existing tracer; do not create a duplicate or widen the pairing-card PR #1418.

    Refine this issue's acceptance with the current authorization model from #1406 / #1414:

    • Keep Allow once as the default. Offer Allow matching operations / 批准匹配的操作 as a distinct action, with a visible scope preview and explicit confirmation. Reuse the Web/native owning approval service and canonical Tool Approval Rule store.
    • Explain “this class” concretely: the first rule matches the same complete tool name and input, PersonaBot execution role and Workspace Grant scope. It is not a fuzzy natural-language similarity match, all future Shell commands, or all operations by this IM person. A broader supported all-opaque scope remains separately disclosed and separately confirmed, never a silently widened exact rule.
    • Rule creation requires current execution approval authority and a separate explicit save-rules capability. Extend the appropriate Role / authorization Group / person-exception controls and the shared effective resolver for this supported action; group membership and approve alone must not confer rule-saving authority. Preserve explicit Deny precedence and keep use/delegation separate where delegation is exposed.
    • Check current trusted actor, Bot, App Binding, native request/receipt, scope and authorization when confirming, including delayed controls. Record the exact creating external authorization and provenance. Creator revocation, a replaced Binding, or removal/Deny of required creator authority disables its rule for future matching approvals; re-pairing cannot resurrect it. Independent authority sources remain effective only if the current resolver permits them.
    • Web and IM show the same rule, scope and active/revoked status. Demonstrate creation, a real automatically approved exact match, a changed-input/scope mismatch requiring fresh approval, capability loss/Deny, revocation and restart. Replayed callbacks are idempotent; no additional rule or execution is created.
    • Begin with the qualified private Lark execution-approval route. Shared native execution approval destinations remain Lark tracer: management conversation destinations with per-actor question and approval checks #1034's separate qualification; public pairing cards from Lark tracer: delegated pairing review from group and private-DM cards #1414 do not expose private operation arguments or authorize native execution rule creation.

    No implementation claim is made by this clarification. Existing ownership, native dependency on #1029, first-tracer Human feedback, and Project #10 sequencing remain authoritative. #1029 is currently closed; this issue is currently Todo with no claim comments or open PR found during this check.

  5. 17 remaining items

  6. DoodleBears commented on Oct 12, 2026

    @DoodleBears
    ContributorAuthor

    Agent progress — qualified scoped-rule native QA

    Task: codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; claim remains active on codex/1033-lark-saved-rules.

    • Current Host #1455 head dbe952ad7f7261eac377d36c3694574b1e8cddaa; Provider #24 head bc795b9cb576c411f0c94997e025b72a94c4f1fb. Native QA used Host fca0d383; later commits only update documentation/screenshots/ledger wording.
    • The Human accepted the all-opaque first slice before expansion. Actual QA1: preview/Back left zero rules; fresh separately disclosed Confirm ALL saved one rule and executed A; new changed input B auto-matched with independent native audit and no extra card; changed Grant scope C required approval and Reject prevented execution; original scope restored, rule revoked/restart, identical B input D still required approval and Reject prevented execution.
    • Final actual refreshed Lark cards: C/D rejected with no controls; old rule receipt shows fixed disabled text with no input/buttons. An update interrupted by the deliberate restart recorded unknown-outcome; explicit idempotent revoke refreshed the same known receipt without creating a rule or execution. This is not an automatic-recovery claim.
    • The first actual candidate request exposed an IM-only missing canonical DM refusal. It did not execute. The public owner/checked-Provider regression reproduced the failure, then passed after on-demand canonical DM creation through the existing Channel Store; no old message was replayed.
    • Current native sequence, runnable path and visual limits. PR bodies embed current base/after/preview/result/different-input/disabled captures; GitHub rendered all 17 Host and 11 Provider images. Bilingual public tutorials include real scoped-rule captures. Head-bound HTML is shared in PR comments and its public download is byte-verified.
    • 64 focused fix/approval/rule/store tests, Host typecheck/lint/full format/build and 476-page docs-content build passed; unchanged Provider has 86 passing related tests/build. Standards and Spec at the final heads have zero remaining findings. Current full verify passed. Preparation also passed at this exact head and does not publish.
    • Native Lark dark-theme capture remains unavailable because Lark ignored browser color-scheme changes; accepted Role-editor light/dark comparisons remain separate. Final HTML desktop/narrow visual inspection was interrupted by browser disconnection; navigation/title and public download were verified, but that responsive visual check is not claimed.
    • QA1 task receiver and temporary review-only server are stopped. No automatic merge, Provider promotion, publication or deployment. Lark tracer: explicitly saved approval rules and creator-authorization revocation #1033 and Project M3: Bot 模式 IA 与聊天外壳(列表/Section/DM/本地消息) #10 remain In Progress pending review/merge/delivery coordination; do not close the Hub or take another owner's task.

    Read-only next-task audit: #1046 has no assignee/claim/comments and native prerequisite #1029 is closed; #1041 is similarly unclaimed with #1029 closed. Recheck claims/PRs before claiming either. #1404 still explicitly retains one-time code scope; it is a design Hub, not a duplicate implementation ticket. No new coding claim or receiver window was taken.

  7. DoodleBears commented on Oct 12, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — completed source tracer

  8. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    in-progressHeld by an agent session; see Claim comment for who
    on Oct 12, 2026
  9. moved this from Todo to Done in Roadmapon Oct 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:fullstackEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions