Repository navigation
Description
Parent: #1372. Project: IM Identities & Messaging (#10).
Follow-up to the completed #1392 / #1406; related current pairing-review work #1414 and saved-operation rules #1033 remain separate.
Human request
Make natural-language behavior permissions reusable through authorization groups, with visible overlaps/conflicts when a paired person belongs to several groups. The Human asks whether this can solve the current Group UI's structured-capability-only limitation. The Human accepted the reusable-item design and its first real Lark tracer. One primary Role remains; Group items extend its behavior within its constraints.
Accepted first slice
Introduce an application-defined, Bot-scoped reusable behavior permission item with a stable ID, name, bounded natural-language behavior text and revision. The accepted term is recorded in CONTEXT and ADR-0173 in PR #1428. Group editors select shared items by checkbox and record explicit Allow/Deny references; they do not copy a second free-form Role into each group. Retain one primary behavior Role, ordinary Chat pairing/current App Binding fences, and the existing separate Host-checked management capabilities.
Within one reviewed Bot/Lark test path: create one item, assign it to two groups, add one paired person to both, inspect the deduplicated current effective item and sources, change one contribution to Deny and inspect the conflict/result, then remove that contribution and re-query. The authenticated settings Client, Messaging owner and Operational Database remain the authority; model permission queries read current canonical state through the existing seam.
Overlap and conflict semantics
| Scenario | Result / remaining scope | UI evidence |
|---|---|---|
| Same item ID allowed by Group A and B | One effective item, two sources; this is overlap, not contradiction | Show both groups; removing A leaves B effective |
| Same item ID allowed by A and denied by B | Explicit Deny takes precedence; assemble the item's explicit prohibition for model behavior | Conflict badge, both source effects, effective Deny and link to resolve |
| Same item denied by both | One effective prohibition, two sources | Deduplicate without hiding sources |
| Different item IDs with manually declared mutual exclusion | Deterministic conflict warning based on authored metadata | Name both items and groups; require Human resolution before granting an ambiguous new combination |
| Different free-form texts that might contradict | No guaranteed semantic detection | Optional advisory/manual review; never claim arbitrary natural-language conflicts are proven absent |
Primary Role instructions remain applicable. Detectable conflicts with them require explicit item references/declared constraints, rather than assuming all existing free-form Role text can be parsed as an ACL. Define the actual effective-policy assembly and incompatible-edit behavior before implementation. Never silently select a group by order or ask an LLM to become the durable authorization decision-maker.
Group contribution updates, member additions and permission-item text edits must preview affected paired people and the resulting effective permissions/conflicts. Use stable IDs rather than matching names or text. Central item updates require revision checks and a visible affected-source preview; item deletion/revoke/re-pair/Binding replacement must not leave copied policies or restore previous memberships.
Important boundary
The Allow/Deny algebra and conflict display are deterministic for named records. The natural-language content remains accepted prompt behavior, not enforcement of arbitrary mail/code/filesystem/Shell resources. Host-supported management capabilities still use their own current resolver, explicit Deny and separate delegation ceiling. Behavior-item selection must not create chat eligibility, native execution approval rules, management authority or delegated machine-owner authority. Any future hard resource control must be implemented at the owning Service boundary and qualified separately.
Acceptance / review gates
- Review the accepted same-ID item semantics and primary Role interaction; record CONTEXT, ADR-0173 and the living architecture.
- Define declared mutual exclusion and incompatible-edit gating in a subsequent runnable slice.
- Deliver one real Lark tracer: Host persistence, searchable checkbox selection, person effective-source/conflict details, current permission lookup and model-observable behavior. Obtain first-slice Human feedback before broader policy variants/platforms.
- Public behavior coverage for repeated Allows, same-ID Allow/Deny conflict, source removal with independent Allow, text revisions, exact Bot/App scope, revoke/re-pair and restart.
- Add declared-mutual-exclusion behavior and coverage in the later slice.
- Explain prompt-policy limits accurately; show every source/effect, preserve independent management/delegation checks and direct authenticated Web Human authority.
- Include narrow/light/dark UI evidence, full interaction steps, accessible exact-head PR explanation and aligned English/Chinese release records when implementation ships.
Status: In progress, awaiting PR #1453 merge review. First slice PR #1428 is merged and accepted. The declared mutual-exclusion and incompatible-edit slice is implemented, full CI passed, and its real Lark interaction was accepted. The Ready PR contains complete workflow, exact-head explanation and verified rendered screenshots. QA1 receiver stopped and window released. Optional semantic text advice remains a separate possible extension; no automatic semantic proof is claimed.
Claim and task history · Accepted Human feedback. QA1 receiver stopped; window released.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 11, 2026
Agent work claim — first Group behavior-permission slice
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session)codex/1423-group-behavior-permissions7 remaining items
Publish sanitized #1423 review evidence
DoodleBears commentedon Oct 11, 2026
Agent work outcome — handed off for review
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session). Claim.6978f4767b531b4ad1e9ed1b30ca0a1981cac188; full final-head CI passed. No merge or deployment performed.agent:activemarker is released for review handoff; the claim and outcomes remain the ownership history. A successor must check the open PR and coordinate before editing its scope.Add reusable Group behavior permissions and conflict previews (#1428)
DoodleBears commentedon Oct 11, 2026
First-slice merge outcome — Human authorized
Task
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76: completed for the first shared behavior-item slice. The Human accepted the compact disclosure UI and authorized merge. PR #1428 squash-merged into main at73c75f86aa50767be34a5c8d2cadc17b6a3e8862; its exact premerge head6978f4767b531b4ad1e9ed1b30ca0a1981cac188passed full CI. Review evidence.This is partial delivery of #1423, not whole-issue completion: declared mutual exclusion, incompatible-edit gating and optional semantic advice remain open. No deployment, release, or QA receiver restart occurred. The other collapsible UI audit was handed to a separate Human-initiated session with no implementation claim; this session continues the roles/IM-pairing Project. Claims for existing IM tasks remain unchanged.
DoodleBears commentedon Oct 11, 2026
Agent work claim — declared Group behavior conflicts
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session)codex/1423-declared-conflicts, isolated worktree based on current maine513ac414ab6c38ee95173377ebeb0950324d7dc.Separate authored exclusions from effective sender behavior
DoodleBears commentedon Oct 11, 2026
Agent work outcome — declared-exclusion slice ready for review
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session)codex/1423-declared-conflictsaefdf9a82d1f18ef162a9914253d39cdcd522c53The earlier first-slice claim/history is preserved. #1033 remains separately tracked; read-only code audit shows Web rule saving exists but external Lark approve-matching/rule authority is still missing.
Gate incompatible Group behavior grants with declared exclusions (#1453)
DoodleBears commentedon Oct 11, 2026
Agent work completed — declared Group exclusions merged
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76.65bfa22e1bf27840fff5b9b2f198b42c45c7b2edwith Issue/Agent-Task trailers retained.