Skip to content

Lark tracer: paired DM Allow once and Reject with canonical execution receipts #1029

Closed

Description

@DoodleBears

Parent

#1019

What to build

A Human selects a named, authorized Lark DM route, receives each committed native tool-approval request automatically, and decides Allow once or Reject from its card with canonical status and an actual execution result.

Acceptance criteria

  • The Profile route picker, test send and delivery state use verified target references and this PersonaBot’s own authorized identity.
  • One distinct committed request creates one prompt; replay deduplicates the same request and different requests are individually notified, respecting platform limits.
  • Use checked actionable card send/update and callback provenance; acknowledge promptly without holding inbound handling until a later click.
  • Validate current actor/account/conversation, receipt/request correspondence, offered action, live owner and complete operation before the existing approval authority settles.
  • A real approved native call executes once and produces its actual result; rejection executes nothing. Click acknowledgement, native decision and execution success are distinct.
  • Web and IM first-decision races, wrong actor, duplicate click, revoked actor, owner cancellation, expiry and restart cannot authorize another call or execute twice.
  • Expose known-unsent finite retry and Unknown Outcome inspection through Web; do not blindly repeat a possibly sent card or an accepted decision.
  • Default live operation expiry is 24 hours or earlier owner invalidity. Old cards are rejected after restart; this slice does not claim non-blocking native waits.
  • 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. 21 remaining items

  4. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    Agent outcome — native Windows Lark qualification completed

    The Human explicitly authorized a fresh exclusive receiver window of at most ten minutes. A server-owned nine-minute restoration timer was armed before stopping production; the local eight-minute cleanup was scheduled before enabling the candidate IM Fiber. Fresh real /pair intake was matched to the intended DM through trusted SDK actor/account metadata and Human confirmation, then reviewed through authenticated Web with approve/reject only. No ordinary Inbox reception, answer or saved-rule capability was granted.

    Real Lark action Canonical native evidence Final card
    Allow once allowed-once; exactly one target Node print call; successful native result, isError: false, expected stdout marker executed
    Reject on a distinct request rejected; native rejection error, isError: true; target operation did not succeed rejected

    The completed caller contains exactly these two original calls, with their exact commands and no replacement call. Both decisions came from the Human's Lark buttons, with no Web decision substitution. Native delivery/card projections match the table, and the Human confirmed both final displayed states. Authenticated Web preflight remains separate evidence. Private DM screenshots and native records stay local; the historical public Profile screenshots are not presented as fresh final-state captures.

    Cleanup is complete: route off, QA pairing revoked, identity unbound, IM Fiber disabled and exact local Host stopped. A read-only check of canonical persisted state confirms zero active pairings, identities or reception grants, with the revoked pairing/binding retained. The QA listener is absent. Production was restored by 14:12:17 JST, within the ten-minute bound; service state is active/running, and the Human subsequently confirmed normal production DM replies in both Lark and Discord. The restore timer was stopped after restoration. No product or Provider was deployed or published.

    The eight-minute helper ran and disabled IM, but its process-start timestamp comparison refused the owned Host because PowerShell had converted the ISO string to a typed DateTime. Explicit cleanup verified the same process start instant with zero difference, then stopped that Host before production restoration. The helper and debugging playbook are corrected; independent automatic Host-stop success is not claimed. The service recovery and actual final cleanup have separate evidence.

    Native Windows validation: Node 24.21.0 / pnpm 12.4.2 frozen installation, build, typecheck and focused approval/pairing tests 16/16 passed. Final documentation formatting and both bilingual release-ledger checks pass. There was no new complete-suite run; the previous unchanged cross-Channel history timeout and isolated 3/3 rerun remain accurately reported.

    The bilingual guide now records this source-specific qualification. Windows AppData redirection, candidate installation, Shell exit evidence and timestamp guards are recorded in the DSH debugging playbook. The historical missing /pair cause remains unproven; this fresh successful intake does not retroactively establish it. Both PRs remain drafts, the globally qualified Provider pin is unchanged, and merge/publication/deployment and broader platforms remain outside this task. Fresh public final-state screenshots remain a capture exception: the privileged window has ended and supplied captures contain private context; reviewers can reproduce with a newly authorized bounded window, /pair, approve/reject-only review, one harmless portable Node print per decision, canonical result inspection, revocation and restoration.

  5. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 7, 2026
  6. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    Agent work resumed — authorized merge integration

    Both original PRs currently report conflicts with their current main branches. Their tested heads and completed Human QA remain recorded in the qualification outcome. Conflict integration requires fresh validation; it is not a production deployment or permission to interrupt live services. After this slice merges, continue the next unclaimed Lark slice #1031 through its normal tracer-bullet workflow.

  7. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 7, 2026
  8. moved this from Todo to In Progress in Roadmapon Oct 7, 2026
  9. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Agent: Codex
    • Task: codex/local/01a1131c-b268-7212-9ac8-d1c7bf9b6e28
    • State: completed
    • Human requested merge after real Windows Lark QA and confirmed production recovery.
    • Provider dependency #13 merged at 9aa0e04e; BotHarness #1075 merged at 009e020b.
    • Conflicts integrated with latest main 9bf74751, retaining native sender enrichment, Lark images and portable Git actions. Lark approval ADR renumbered to 0141.
    • Final native Windows lint/format/type/build and 41 affected approval/pairing/rules/Client regressions passed. Provider Lark and dictionary regressions: 758 passed, 5 existing POSIX skips; rebuilt package verification passed. Broad Windows suites are not green: the Provider run included unchanged updater/POSIX mode failures; the root broad run was stopped after filesystem-cleanup/timeouts before the final main integration. The same seven lifecycle cleanup failures were independently reproduced against an exact upstream-main source archive. No complete root-suite result is claimed.
    • Real Lark qualification and recovery remains the platform evidence; no fresh outage, package publication, global qualified-pin update or production deployment occurred.
    • Remaining parent scope continues in Lark tracer: native Human questions answered from the paired DM #1031; Lark tracer: paired DM Allow once and Reject with canonical execution receipts #1029's private Allow once/Reject slice is complete.
  10. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 7, 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-humanRequires human implementationscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions