docs: reconcile batch and webhook integration
This commit is contained in:
@@ -6,7 +6,8 @@
|
||||
- 写能力只在唯一对象、页面身份、ownership、写前投影、明确服务端响应和 action-specific 完成凭据成立时执行。
|
||||
- ERP 执行以不可变任务归属账号为队列边界:同账号保持 FIFO 与单活跃执行,不同账号互不阻塞;登录 ERP 身份只能由唯一账号节点的规范化精确相等证明,且管理员没有任务读取、事件、领取、回执或删除权限。
|
||||
- 组长看板只读覆盖固定组织内所有已明确归属的手工与 AgentBus 任务,以不可变 assignee 作为员工口径;无可靠归属的历史记录不猜测归属,查看权限不扩展任务或 ERP 权限。
|
||||
- 有效组长身份绑定可用 AgentBus 渠道后,系统自动从当前账号的 AgentBus 路由开始发送未来稳定结果;通知使用独立加密队列,失败不改变任务状态,摘要不扩大任务或 ERP 权限,也不暴露原始指令、客户资料或技术载荷。
|
||||
- 组长摘要只通过受保护运行配置中的固定外部 Webhook 发送未来稳定结果;通知使用独立加密队列,严格成功只记为“已受理”而不是“已送达”,拒绝或不确定结果不自动重试,且任何失败都不改变任务、员工 AgentBus 或 ERP 状态,也不暴露原始指令、客户资料、URL、token 或技术载荷。
|
||||
- Program-only 散拼批量子单在首个 ERP 写入前完整枚举并验证日期范围内的全部目标,按日期/tid 顺序逐单执行,首个阻断、失败或不确定即停止,保留逐目标回执且不自动重试。
|
||||
- 归档/恢复与永久强制删除保持为两个明确操作;强制删除不受任务状态门禁限制、完整移除任务平台记录,并明确不代表回滚既有 ERP 写入。
|
||||
- 当前发布物、源码和机器可读发布清单逐文件、逐哈希一致。
|
||||
- 项目记忆能在并行任务下保持任务隔离,并只通过串行 Integration Gate 更新 canonical 状态。
|
||||
@@ -28,4 +29,4 @@
|
||||
|
||||
## Last Reviewed
|
||||
|
||||
2026-09-08
|
||||
2026-09-09
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
Superseded in transport and activation by AUTH-005; retained for projection/privacy history
|
||||
|
||||
## Date
|
||||
|
||||
@@ -42,11 +42,13 @@ A separate projection preserves the existing employee reply and ERP execution in
|
||||
## Revision
|
||||
|
||||
- 2026-09-07: Replaced the initial administrator-configured/default-off workflow with role-driven automatic activation at explicit user direction. The fixed organization scope, privacy allowlist, future-only projection, independent encrypted outbox, and no-ERP-authority boundaries remain unchanged.
|
||||
- 2026-09-09: AUTH-005 replaced the AgentBus/channel/route transport with one organization-level external Webhook and terminal one-attempt delivery semantics. The future-only scope, privacy allowlist, independent projection, and no-task/ERP-authority boundaries continue under AUTH-005.
|
||||
|
||||
## Related
|
||||
|
||||
- `.project-docs/10-decisions/AUTH-001-fixed-scope-account-authorization.md`
|
||||
- `.project-docs/10-decisions/AUTH-002-account-scoped-execution-and-force-delete.md`
|
||||
- `.project-docs/10-decisions/AUTH-005-leader-summary-external-webhook.md`
|
||||
- `.project-docs/30-worklog/tasks/20260907-implement-leader-agentbus-copy-b7e31a94.md`
|
||||
- `.project-docs/30-worklog/tasks/20260907-auto-leader-summary-routing-5e8c1a73.md`
|
||||
- `control-plane/migrations/020_leader_task_summary_notifications.sql`
|
||||
|
||||
@@ -20,7 +20,7 @@ The user explicitly required administrators to be management-plane-only identiti
|
||||
- Administrator sessions do not register browser workers, open task SSE, call the ERP extension bridge, receive task cleanup commands, own employee channels, hold business-route grants, or become leader-summary subscribers or recipients.
|
||||
- Only active `team_lead` and `user` identities enter the task data plane. Their normal task APIs, executable events, browser claims/results, reconciliation, archive/restore, and force delete remain restricted to immutable `assigned_user_id`.
|
||||
- The operations dashboard is available only to team leads. It is an organization-wide, read-only business projection over durably assigned `manual` and `agentbus` tasks. Employee rankings, person filters, search, pagination, and detail use immutable `assigned_user_id`; historical AgentBus rows without an assignee are excluded rather than inferred.
|
||||
- Dashboard visibility does not grant cross-user task mutation, executable events, artifacts, browser access, reconciliation, or ERP authority. AUTH-002 account-scoped queues and AUTH-003's separate privacy-bounded leader-summary outbox remain unchanged.
|
||||
- Dashboard visibility does not grant cross-user task mutation, executable events, artifacts, browser access, reconciliation, or ERP authority. AUTH-002 account-scoped queues and AUTH-005's separate privacy-bounded leader-summary Webhook outbox remain unchanged.
|
||||
- Migration `021_admin_task_data_plane_isolation` removes legacy administrator task assignments and executable bindings without deleting task history, then uses database constraints and role-promotion cleanup to prevent administrators from re-entering task-principal relationships.
|
||||
|
||||
## Rationale
|
||||
@@ -41,13 +41,14 @@ Separating management identities from business-task identities eliminates accide
|
||||
- AUTH-001's manual-task-only dashboard scope and origin-based employee attribution.
|
||||
- AUTH-002 clauses retaining administrator-wide task reads or administrator force-delete authority.
|
||||
|
||||
AUTH-002's per-assignee execution queues and employee force-delete semantics remain active. AUTH-003 remains active without change.
|
||||
AUTH-002's per-assignee execution queues and employee force-delete semantics remain active. AUTH-005 now governs leader-summary transport while preserving its separation from task and ERP authority.
|
||||
|
||||
## Related
|
||||
|
||||
- `.project-docs/10-decisions/AUTH-001-fixed-scope-account-authorization.md`
|
||||
- `.project-docs/10-decisions/AUTH-002-account-scoped-execution-and-force-delete.md`
|
||||
- `.project-docs/10-decisions/AUTH-003-leader-task-summary-notifications.md`
|
||||
- `.project-docs/10-decisions/AUTH-005-leader-summary-external-webhook.md`
|
||||
- Feature commit `9043ad6eda0deb2a620e1303467d1c3bd80374ed`
|
||||
- Feature commit `a2378c8`
|
||||
- `control-plane/migrations/021_admin_task_data_plane_isolation.sql`
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
# AUTH-005: Organization-level leader-summary external Webhook
|
||||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
|
||||
## Date
|
||||
|
||||
2026-09-09
|
||||
|
||||
## Context
|
||||
|
||||
AUTH-003 delivered privacy-bounded team-lead summaries through a leader-owned AgentBus channel and a learned WeChat route. The user later supplied a fixed external Webhook contract and clarified that only the organization-wide leader-summary transport should change; normal employee AgentBus task intake, replies, ownership, confirmation, ERP queues, and execution must remain unchanged.
|
||||
|
||||
The external API has no idempotency key, downstream delivery identifier, status query, or callback. A successful HTTP exchange can therefore prove only that the gateway accepted the request, while a timeout or lost response cannot distinguish “not received” from “accepted but response lost.”
|
||||
|
||||
## Decision
|
||||
|
||||
- Configure one organization-level leader-summary destination only through protected runtime values `WEBHOOK_SEND_URL` and `WEBHOOK_EXTERNAL_TOKEN`. Both must be present, the production URL must use HTTPS and end with `/webhookInfo/sendMessageByOut`, and the token must contain exactly 32 non-whitespace characters. The complete URL and token never enter the database, logs, audit, or administrator response.
|
||||
- Send exactly one `POST` JSON request with raw `x-token` and body `{id:"9999", content:<summary>}`. Only HTTP 200 with `code === 0` and `data === true` is “accepted”; accepted does not mean delivered to WeChat.
|
||||
- Keep the projection organization-wide, future-only, and read-only. It covers stable manual and AgentBus outcomes for durably assigned non-administrator employees and retains the existing privacy allowlist, generic failure wording, and uncertain-write distinction. It never changes task ownership, employee replies, parser behavior, confirmation, queue state, browser claims, reconciliation, or ERP authority.
|
||||
- Store summary state and encrypted payloads only in the dedicated revisioned `leader_task_summary_webhook_*` tables. Each organization/revision/task/milestone is unique and may be attempted at most once.
|
||||
- Never automatically retry an explicit rejection, timeout, network failure, 5xx response, invalid or unknown response, oversized response, or expired sending lease. Mark ambiguous cases uncertain; configuration changes cancel unsent old-revision rows and make in-flight old-revision rows uncertain.
|
||||
- Isolate configuration, initialization, projection, database, and delivery failures inside the summary worker. They may disable or degrade summary delivery but cannot block the normal HTTP service or mutate ordinary tasks, employee `agentbus_deliveries`, AgentBus channels, parsing, or ERP execution.
|
||||
- Expose only a read-only administrator status with safe configuration state, bounded fingerprints, counts, and accepted/rejected/uncertain terminology. There is no administrator send-test or message-composer endpoint.
|
||||
|
||||
## Rationale
|
||||
|
||||
A dedicated one-attempt Webhook outbox preserves the established privacy and task-authority boundaries while removing leader-summary dependence on a team-lead AgentBus account, channel, or learned conversation route. Treating ambiguous sends as terminal uncertainty is safer than automatic retry because the provider offers no deduplication or delivery evidence.
|
||||
|
||||
## Consequences
|
||||
|
||||
- Migrations must run in order through `022_shared_child_order_batch_create` and `023_leader_summary_webhook_delivery` before the integrated control plane starts.
|
||||
- Migration 023 disables legacy AgentBus summary subscriptions and cancels their unsent rows while preserving historical tables and already recorded outcomes. Normal employee `agentbus_deliveries` are untouched.
|
||||
- Production enablement requires the provider-confirmed complete gateway URL, the real 32-character token, database backup/migration, deployment/restart, and a separately authorized bounded external-send canary.
|
||||
- Repository tests and disposable PostgreSQL exercises prove isolation, encryption, one-attempt semantics, and accepted-versus-delivered wording; they do not prove live gateway or WeChat delivery.
|
||||
|
||||
## Supersedes
|
||||
|
||||
- AUTH-003 clauses that activate summaries from a `team_lead` identity plus owned AgentBus channel, learn or invalidate AgentBus/WeChat routes, prioritize summary frames inside AgentBus, or use at-least-once `task.summary` frames.
|
||||
|
||||
AUTH-003's organization-wide future-only projection, privacy allowlist, separate encrypted storage, and non-expansion of task/ERP authority remain active through this decision.
|
||||
|
||||
## Related
|
||||
|
||||
- `.project-docs/10-decisions/AUTH-003-leader-task-summary-notifications.md`
|
||||
- `.project-docs/10-decisions/AUTH-004-admin-management-plane-and-leader-oversight.md`
|
||||
- `.project-docs/30-worklog/tasks/20260908-leader-webhook-api-7c4e9a12.md`
|
||||
- `agent设计规范/leader-summary-webhook-contract.md`
|
||||
- `control-plane/migrations/023_leader_summary_webhook_delivery.sql`
|
||||
- `control-plane/src/external-webhook-client.ts`
|
||||
- `control-plane/src/leader-notification-service.ts`
|
||||
@@ -10,9 +10,9 @@ Reverted
|
||||
|
||||
## Reversal
|
||||
|
||||
On 2026-09-03 the user explicitly directed that this iteration be backed up and its server-side automatic-update architecture removed from the main branch, then clarified that the Chrome plugin itself must remain at `0.5.167` at that rollback point. The exact full-stack state at commit `b2e33e2e5d29138891eabc93969cf24907492dfe` is preserved on remote branch `codex/backup-extension-update-20260903-b2e33e2`. Active `main` later advanced the manually distributed plugin to `0.5.169` and the control plane to migration 021 without restoring private-OSS/ECS update orchestration.
|
||||
On 2026-09-03 the user explicitly directed that this iteration be backed up and its server-side automatic-update architecture removed from the main branch, then clarified that the Chrome plugin itself must remain at `0.5.167` at that rollback point. The exact full-stack state at commit `b2e33e2e5d29138891eabc93969cf24907492dfe` is preserved on remote branch `codex/backup-extension-update-20260903-b2e33e2`. Active `main` later advanced the manually distributed plugin to `0.5.170` and the control plane to migration 023 without restoring private-OSS/ECS update orchestration.
|
||||
|
||||
This ADR is retained only as historical server-architecture context and no longer governs the active control plane. Plugin-side idle proof and guarded reload handlers remain as dormant capabilities in `0.5.169` with no current server/platform trigger. The reverted server code was never deployed, migration 019 was not applied, no OSS extension release was published, and no Cloud Assistant or Chrome reload action was performed by these repository tasks.
|
||||
This ADR is retained only as historical server-architecture context and no longer governs the active control plane. Plugin-side idle proof and guarded reload handlers remain as dormant capabilities in `0.5.170` with no current server/platform trigger. The reverted server code was never deployed, migration 019 was not applied, no OSS extension release was published, and no Cloud Assistant or Chrome reload action was performed by these repository tasks.
|
||||
|
||||
## Context
|
||||
|
||||
|
||||
@@ -6,14 +6,15 @@
|
||||
|---|---|---|---|---|---|
|
||||
| DOC-001 | `.project-docs/` is the sole active project-memory system; feature tasks own task-scoped records and Integration Gate owns canonical memory. | Active | 2026-08-28 | All repository work | [Governance](../../AGENTS.md) |
|
||||
| ARCH-001 | AI parsers provide business semantics only; platform state, ERP resolution, execution evidence, and audit remain outside the business operation. | Active | 2026-08-28 | Parser and execution architecture | [System entry](../../README.md) |
|
||||
| ROUTE-001 | The machine registry is the authority for 18 parser routes; the two passenger-list routes are Program-only. | Active | 2026-08-28 | Manual and AgentBus intake | [Machine registry](../../control-plane/src/business-routes.ts) |
|
||||
| ROUTE-001 | The machine registry is the authority for 19 parser routes; 18 remain available to the external Agent and three routes are Program-only. | Active | 2026-09-09 | Manual and AgentBus intake | [Machine registry](../../control-plane/src/business-routes.ts) |
|
||||
| RELEASE-001 | Current artifacts, filenames, versions, and SHA-256 values are defined only by `dist/release-manifest.json`. | Active | 2026-08-28 | Release and delivery | [Release manifest](../../dist/release-manifest.json) |
|
||||
| SAFETY-001 | Real ERP access/write, task mutation, extension reload, service restart, deployment, and external delivery require explicit task-scoped authorization. | Active | 2026-08-28 | Operations and maintenance | [Governance](../../AGENTS.md) |
|
||||
| NETWORK-001 | In the trusted internal deployment, AgentBus roster attachment URLs may resolve to internal/private addresses; HTTPS, credential rejection, DNS pinning, redirect validation, bounds, and digest checks remain. | Active | 2026-08-31 | AgentBus attachment ingress | [Reply contract](../../agent设计规范/agentbus-reply-contract.md) |
|
||||
| AUTH-001 | The fixed deployment scope uses administrator-managed `admin`, `team_lead`, and `user` accounts, explicit employee route grants, and assignee-bound AgentBus/browser/ERP execution. | Active except clauses superseded by AUTH-002 and AUTH-004 | 2026-09-01 | Authentication, authorization, audit, AgentBus workers, and operations oversight | [ADR](AUTH-001-fixed-scope-account-authorization.md) |
|
||||
| AUTH-002 | ERP execution is serialized per immutable assigned account, and explicit owner force delete physically removes authorized tasks regardless of lifecycle state. | Active except administrator task-access clauses superseded by AUTH-004 | 2026-09-03 | ERP claim queues, executable events/results, and task removal | [ADR](AUTH-002-account-scoped-execution-and-force-delete.md) |
|
||||
| AUTH-003 | Active team-lead identities automatically receive an organization-wide read projection through their current-owner AgentBus route and a separate encrypted outbox; it never grants task or ERP authority. | Active | 2026-09-07 | Team-lead notifications, AgentBus outbound routing, and summary privacy | [ADR](AUTH-003-leader-task-summary-notifications.md) |
|
||||
| AUTH-003 | Team-lead summaries used a current-owner AgentBus route and separate encrypted outbox without granting task or ERP authority. | Superseded in transport/activation by AUTH-005; retained for projection/privacy history | 2026-09-07 | Historical leader-summary AgentBus routing | [ADR](AUTH-003-leader-task-summary-notifications.md) |
|
||||
| AUTH-004 | Administrators are management-plane-only identities; team leads alone receive an assignee-based, cross-source operations dashboard while employee task operations remain owner-only. | Active | 2026-09-07 | Administrator isolation, task APIs, database principals, and leadership oversight | [ADR](AUTH-004-admin-management-plane-and-leader-oversight.md) |
|
||||
| AUTH-005 | Organization-wide leader summaries use one protected external Webhook, a future-only encrypted outbox, strict accepted-versus-delivered terminology, and terminal one-attempt failure semantics without changing normal AgentBus/task/ERP behavior. | Active | 2026-09-09 | Leader-summary projection and external delivery | [ADR](AUTH-005-leader-summary-external-webhook.md) |
|
||||
|
||||
## Superseded And Reverted Decisions
|
||||
|
||||
@@ -22,7 +23,8 @@
|
||||
| DOC-LEGACY-001 | Root `task_plan.md`, `findings.md`, and `progress.md` were the active project-memory system. | DOC-001 | 2026-08-28 |
|
||||
| AUTH-001 (partial) | Organization-wide ERP FIFO and archive-only operator removal. | AUTH-002 | 2026-09-03 |
|
||||
| AUTH-001 / AUTH-002 (partial) | Administrator task creation, task-wide reads, dashboard access, task transitions, and force-delete authority; manual-only leadership dashboard scope. | AUTH-004 | 2026-09-07 |
|
||||
| EXT-001 | Central-service private-OSS and ECS Cloud Assistant orchestration for shared unpacked-extension updates. | Server architecture reverted by explicit user decision; exact full implementation remains on `codex/backup-extension-update-20260903-b2e33e2`, while the active manually distributed plugin has advanced to `0.5.169`. | 2026-09-03 |
|
||||
| AUTH-003 (transport and activation) | Team-lead identity/channel activation, learned AgentBus/WeChat routing, and at-least-once `task.summary` frames. | AUTH-005 | 2026-09-09 |
|
||||
| EXT-001 | Central-service private-OSS and ECS Cloud Assistant orchestration for shared unpacked-extension updates. | Server architecture reverted by explicit user decision; exact full implementation remains on `codex/backup-extension-update-20260903-b2e33e2`, while the active manually distributed plugin has advanced to `0.5.170`. | 2026-09-03 |
|
||||
|
||||
## Decision Criteria
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
| Business directive | Employee manual workbench or AgentBus | Route orchestrator | Manual input uses a signed-in team lead/user; AgentBus input uses the channel's bound employee account and its route allowlist. Administrators cannot enter this flow. |
|
||||
| AgentBus execution ownership | Enabled channel | Employee account → immutable task assignee → executable feed | One account owns at most one channel; unbound channels and unassigned historical tasks stay non-executable. |
|
||||
| Manual account authorization | Signed-in employee plus resolved business route | Intake and task-transition gates | Team leads/users require explicit grants; administrators manage grants but hold none, and denied or unresolved routes fail closed. |
|
||||
| Parsing | Route orchestrator | AI Skill or deterministic Program parser | AI/Shadow/Auto/Program mode is frozen per task |
|
||||
| Parsing | 19-route orchestrator | AI Skill or deterministic Program parser | AI/Shadow/Auto/Program mode is frozen per task; the external Agent exposes 18 routes and three routes are Program-only |
|
||||
| Operation | Parser | Control-plane task and confirmation | Must validate against the same final contract |
|
||||
| ERP execution | Confirmed task | Chrome extension and logged-in ERP page | Requires unique object, page identity, ownership, and write preflight |
|
||||
| Completion evidence | ERP response/requery | Control-plane receipt and business reply | Evidence is action-specific; uncertain writes fail closed |
|
||||
@@ -16,7 +16,8 @@
|
||||
| Internal attachment download | Credential-free HTTPS URL | Bounded in-memory workbook bytes | Internal/private DNS answers are allowed; the selected address is pinned, every redirect is revalidated, and URL/host/IP/bytes are omitted from logs. |
|
||||
| Operational diagnostics | Service, request, task, parser, AgentBus, attachment, database, and cleanup stages | Structured stdout/stderr and bounded Docker logs | Correlation identifiers, codes, outcomes, and durations only; no secrets or business payloads. |
|
||||
| Platform operations oversight | Durably assigned manual/AgentBus task, encrypted instruction history, and readable outcome | Team-lead-only leadership projection | Immutable assignee is the employee dimension; unassigned historical AgentBus rows are excluded. Display-only summaries plus explicit filters drive an aggregate-first task/person/input/output/time/type/completion view, with bounded list reads and page-only detail hydration. |
|
||||
| Team-lead task summary | Future stable manual/AgentBus task outcome for another non-admin employee | Role/channel reconciler → current-owner encrypted route → separate durable outbox → leader-owned AgentBus channel → WeChat | Automatic for active team leads with a usable route; employee replies are sent first, summary frames use stable IDs and explicit routing with no `reply_to`, and delivery failure never changes task state. |
|
||||
| Leader task summary | Future stable manual/AgentBus task outcome for a durably assigned non-admin employee | Privacy projection → encrypted organization/revision outbox → fixed external Webhook → leader group | Independent from AgentBus task replies and ERP execution; strict success means accepted, not delivered, and rejected/uncertain attempts terminate without automatic retry. |
|
||||
| Shared-child batch creation | Inclusive departure range plus exact product/customer/counts | Complete read-only parent enumeration → validated date/tid target list → sequential single-child adapter reuse | All targets are known before the first write; execution is deterministic and stops at the first blocked, failed, or uncertain result with remaining targets not started. |
|
||||
| Browser worker selection | Immutable task assignee | One fresh account-bound browser connection | The heartbeat must prove the expected ERP identity from one unique login node by normalized exact equality; missing, duplicate, blank, substring-only, or mismatched identity is non-executable, with failover only after staleness. |
|
||||
| Account-scoped ERP queue | Confirmed task assignee | Assigned account's browser worker | Organization-plus-account advisory locking preserves FIFO and at most one active execution for that account; another account's active, queued, stale, or uncertain work is outside this queue. |
|
||||
| Executable event and result routing | Immutable task assignee | Matching authenticated employee page and plugin | Task APIs, SSE history/live events, claims, plugin results, and browser cleanup commands require a team-lead/user session matching the assignee; administrators are rejected before task handling. |
|
||||
@@ -26,7 +27,7 @@
|
||||
|
||||
## State Ownership
|
||||
|
||||
- PostgreSQL owns durable control-plane account, management/task-plane role constraints, exact expected ERP identity, employee task-route grant, AgentBus channel owner, immutable task assignee, account-scoped queue/lease state, browser worker, session, confirmation, audit, archive, outcome state, and revisioned team-lead notification subscriptions/deliveries. Migration 021 removes and rejects administrator task principals. Notification destinations and payloads remain encrypted at rest. A force-deleted task no longer exists in task state; only its minimal non-content deletion audit marker remains, while an already delivered external message cannot be retracted.
|
||||
- PostgreSQL owns durable control-plane account, management/task-plane role constraints, exact expected ERP identity, employee task-route grant, AgentBus channel owner, immutable task assignee, account-scoped queue/lease state, browser worker, session, confirmation, audit, archive, outcome state, and revisioned leader-summary Webhook state/deliveries. Migration 021 removes and rejects administrator task principals, migration 022 admits the new route without granting it, and migration 023 retires unsent legacy AgentBus summaries. Webhook payloads remain encrypted at rest while the URL/token remain runtime-only. A force-deleted task no longer exists in task state; only its minimal non-content deletion audit marker remains, while an externally accepted summary cannot be retracted.
|
||||
- Production attachment bytes use the configured OSS provider; normalized sensitive fields remain encrypted.
|
||||
- Chrome extension local state is bounded execution/reconciliation support, not canonical business history.
|
||||
- `.project-docs/30-worklog/tasks/` owns task-local project memory; canonical project state is an integrated projection.
|
||||
@@ -34,10 +35,11 @@
|
||||
## External Interfaces
|
||||
|
||||
- Employee task workbench and separate administrator management pages at the control-plane service.
|
||||
- AgentBus WebSocket channels and attachment delivery.
|
||||
- AgentBus WebSocket channels and attachment delivery for normal employee task traffic.
|
||||
- Fixed external Webhook for organization-level leader-summary delivery.
|
||||
- Logged-in ERP browser pages under the Chrome extension host permissions.
|
||||
- PostgreSQL, OSS, deployment gateway, and authenticated artifact download.
|
||||
|
||||
## Last Updated
|
||||
|
||||
2026-09-07
|
||||
2026-09-09
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
| `agent设计规范/` | Business prompt, Skills, templates, registry, business pages, fixtures | Update business entry and Skill before downstream contracts when user fields change |
|
||||
| `schemas/` | Current parse, execution, and ERP schemas | Historical schemas belong in `archive/` |
|
||||
| `mappings/` | Current ERP fields, lifecycle, and extension-version mapping | Must stay synchronized with execution code |
|
||||
| `control-plane/` | TypeScript control plane, migrations, parser and tests | Never hand-edit `.build/` output |
|
||||
| `control-plane/` | TypeScript control plane, migrations, 19-route parser registry, external Webhook client, and tests | Never hand-edit `.build/` output |
|
||||
| `LianSyn-platform/` | Operator UI and external Agent parsing adapter | No task output or release packages |
|
||||
| `chrome-extension/` | Current ERP extension source | Version bump and release synchronization required for code changes |
|
||||
| `tools/` | Reusable builders, tests, diagnostics, and controlled write helpers | Tool outputs do not stay here |
|
||||
@@ -25,10 +25,12 @@
|
||||
## Risky Or Sensitive Areas
|
||||
|
||||
- ERP write boundaries and reconciliation after uncertain responses.
|
||||
- Multi-parent shared-child enumeration and sequential write-stop boundaries.
|
||||
- External Webhook secrecy, one-attempt delivery uncertainty, and privacy projection.
|
||||
- Attachment encryption, OSS network validation, and passenger workbook normalization.
|
||||
- Cross-file release version and hash synchronization.
|
||||
- Concurrent worktree ownership and canonical document integration.
|
||||
|
||||
## Last Updated
|
||||
|
||||
2026-08-28
|
||||
2026-09-09
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Current Architecture
|
||||
|
||||
Authenticated employee manual or account-bound AgentBus input is routed through task-scoped AI/Shadow/Auto/Program orchestration into one validated operation contract. The control plane separates the administrator management plane from the employee task data plane and owns account, channel owner, immutable task assignee, account-scoped execution queue, browser worker, session, task-type authorization, confirmation, audit, reversible archive, explicit owner force-delete behavior, and role-driven automatic team-lead task-summary projection. The Chrome extension verifies the expected ERP account from one unique login identity node by normalized exact equality, resolves the unique ERP object, enforces page and write gates, performs native actions, and returns action-specific evidence.
|
||||
Authenticated employee manual or account-bound AgentBus input is routed through task-scoped AI/Shadow/Auto/Program orchestration into one validated operation contract. The machine registry contains 19 routes, while the external Agent remains limited to 18 and the two passenger-list routes plus shared-child batch creation are Program-only. The control plane separates the administrator management plane from the employee task data plane and owns account, channel owner, immutable task assignee, account-scoped execution queue, browser worker, session, task-type authorization, confirmation, audit, reversible archive, explicit owner force-delete behavior, and automatic organization-level leader-summary Webhook projection. The Chrome extension verifies the expected ERP account from one unique login identity node by normalized exact equality, resolves unique ERP objects, enforces page and write gates, performs native actions, and returns action-specific evidence.
|
||||
|
||||
## Main Components
|
||||
|
||||
@@ -10,7 +10,7 @@ Authenticated employee manual or account-bound AgentBus input is routed through
|
||||
|---|---|---|
|
||||
| `agent设计规范/` | Agent Prompt, five parsing Skills, business templates, business registry, and stable fixtures | Editable source for business semantics; not runtime evidence |
|
||||
| `schemas/` and `mappings/` | Parse-state, execution-state, ERP form, field, and lifecycle contracts | Current contracts only |
|
||||
| `control-plane/` | Management/task-plane authorization, task/session persistence, parser orchestration, confirmation, audit, AgentBus channel ownership, task assignment, browser workers, attachments, receipts, encrypted leader-summary projection/outbox, and structured diagnostics | TypeScript source; build output goes to `.build/`; migration 021 enforces administrator isolation |
|
||||
| `control-plane/` | Management/task-plane authorization, task/session persistence, parser orchestration, confirmation, audit, AgentBus channel ownership, task assignment, browser workers, attachments, receipts, encrypted leader-summary Webhook projection/outbox, and structured diagnostics | TypeScript source; build output goes to `.build/`; required schema advances through migration 023 |
|
||||
| `LianSyn-platform/` | Operator workbench and external parser adapter | Source and UI, not local task output |
|
||||
| `chrome-extension/ltjt-order-assistant/` | Logged-in ERP resolution, preflight, native execution, response handling, requery, and dormant idle/reload safety handlers | Current server/platform does not trigger automatic updates; any code change requires synchronized versioned release updates |
|
||||
| `dist/` | Versioned current deliverables and machine-readable release manifest | Not a compilation directory |
|
||||
@@ -24,16 +24,16 @@ Authenticated employee manual or account-bound AgentBus input is routed through
|
||||
- The product is one fixed internal organization scope with three roles. Administrators are management-plane-only identities: they manage accounts, channels, employee route grants, parser routing, automation settings, and audit but cannot create, inspect, mutate, stream, claim, reconcile, delete, or execute business tasks. Team leads and users require explicit per-route grants and are owner-scoped for normal task operations. Team leads alone receive a dedicated organization-wide, read-only platform-operations dashboard over durably assigned manual and AgentBus tasks.
|
||||
- Account passwords are accepted when non-empty without an application-level length rule. First-login forced password changes are disabled; voluntary changes and administrator resets still revoke the relevant sessions, while the historical `must_change_password` column remains compatibility-only storage.
|
||||
- The leadership dashboard is an aggregate-first projection across assigned task, employee, original input, final output, time, task type, and completion state. It includes only durably assigned `manual` and `agentbus` work and uses immutable `assigned_user_id` for rankings, people filters, search, pagination, and detail; historical unassigned AgentBus rows are excluded. Summary cards are display-only; filtering is explicit and defaults to all results. List reads use one bounded read-only database transaction, SQL prefiltering, selective historical-message hydration, and full detail projection only for the current 20-row page. Its drill-through stays business-facing; technical payloads, internal identifiers, machine-shaped historical input, and technical failure text remain in separate authorized audit/engineering surfaces.
|
||||
- Team-lead task summaries are a separate role-driven read projection, not an extension of dashboard, task, or ERP authority. An active leader with an enabled owned AgentBus channel is automatically subscribed to future stable manual and AgentBus outcomes for other non-admin employees. Routing comes from the current owner's latest valid inbound route or channel external-user reference, remains encrypted, fails closed when unavailable or stale, and never copies raw instructions, attachments, customer/traveller data, URLs, or technical errors.
|
||||
- Leader task summaries are a separate organization-level read projection, not an extension of dashboard, task, AgentBus, or ERP authority. Protected runtime configuration enables one fixed external Webhook for future stable manual and AgentBus outcomes from durably assigned non-administrator employees. The complete URL and token never enter storage or status output; encrypted summary payloads never copy raw instructions, attachments, customer/traveller data, URLs, or technical errors. Only strict gateway acceptance is recorded, not downstream delivery, and rejected or uncertain attempts are never automatically retried.
|
||||
- Authorization is enforced in database, server, and service paths, not by navigation visibility. An administrator task-data-plane request fails before task storage or execution logic. A denied or unresolved employee business route stops before parsing, plugin dispatch, and ERP execution; assignee authorization is rechecked at confirmation and browser claim.
|
||||
- Each enabled AgentBus channel owns one active non-admin employee account. Inbound work uses that account and route allowlist, persists the same account as immutable task assignee, and is returned only to that account's executable feed. A team-lead channel may additionally carry its leader's lower-priority proactive summary outbox; those rows use explicit destination/conversation routing and never become executable task traffic.
|
||||
- Each employee account has one expected ERP identity and at most one fresh browser execution worker. The extension accepts ERP identity only from exactly one `#Lable_UserName` login node and normalized full equality; missing, duplicate, blank, substring-only, or unrelated body-text matches fail closed without returning the observed identity. Concurrent fresh workers, unbound channels, or unassigned tasks also fail closed. Browser claims, active-execution checks, and confirmed FIFO are serialized per immutable task assignee, so one account cannot block or occupy another account's queue.
|
||||
- Administrators have no task read or execution model. Task lists/details, attachments, artifacts, lifecycle mutations, SSE history/live events, browser claims, plugin-result ingestion, and browser cleanup commands require a `team_lead` or `user` session matching `assigned_user_id`; the team-lead dashboard and notification outbox remain separate read projections.
|
||||
- Extension `0.5.169` is the current manually published/loaded plugin baseline, and the five Skills plus operator instruction DOCX are at `0.5.126`. The extension retains an idle-proof and guarded-reload message protocol, but the active control plane has no extension-release tables, ECS host mapping, OSS publication endpoint, Cloud Assistant dispatcher, or platform trigger; required migration is 021.
|
||||
- Extension `0.5.170` is the current manually published plugin baseline, Program parser `v1.0.7` owns the new shared-child batch directive, and the five Skills plus operator instruction DOCX remain at `0.5.126`. The batch adapter enumerates and validates every matching shared-plan parent before the first write, executes in date/tid order, and stops without retry at the first blocked, failed, or uncertain result. The extension retains an idle-proof and guarded-reload message protocol, but the active control plane has no extension-release tables, ECS host mapping, OSS publication endpoint, Cloud Assistant dispatcher, or platform trigger; required migration is 023.
|
||||
- Creator and manual input-turn attribution remain durable while business input stays encrypted at rest. Routine removal is reversible archive/restore. Separately confirmed force delete physically removes an authorized task regardless of lifecycle state, retains only a minimal non-content deletion audit marker, and cannot undo an ERP write that already occurred.
|
||||
- Unknown, ambiguous, unverified, or post-write-uncertain states fail closed; automatic retries must not create duplicate writes.
|
||||
- PostgreSQL is the sole required durable database/state middleware, and the production artifact provider is OSS. Redis, message queues, MongoDB, and search services are not runtime dependencies.
|
||||
- Migrations through `021_admin_task_data_plane_isolation` must complete before the updated application starts; migration 019 remains intentionally absent after the extension-updater rollback. Migration 021 removes legacy administrator task principals and enforces future management/task-plane separation. The current ACK topology starts with one application replica because AgentBus listeners and SSE emission are process-local; horizontal scale requires explicit coordination first.
|
||||
- Migrations through `023_leader_summary_webhook_delivery` must complete before the updated application starts; migration 019 remains intentionally absent after the extension-updater rollback. Migration 021 removes legacy administrator task principals, migration 022 admits the Program-only shared-child batch route without granting it, and migration 023 disables unsent legacy AgentBus summary rows while creating the organization-level encrypted Webhook outbox. The current ACK topology starts with one application replica because AgentBus listeners and SSE emission are process-local; horizontal scale requires explicit coordination first.
|
||||
- Operational diagnostics are privacy-safe structured JSON on stdout/stderr. Docker owns bounded rotation; repository files and a second mutable log database are not log sinks.
|
||||
- In the trusted internal deployment, AgentBus roster attachment downloads may resolve to private/reserved addresses. Credential-free HTTPS, DNS resolution/pinning, redirect revalidation, size, timeout, and digest checks remain mandatory, and trusted channels/bridges own the network-input boundary.
|
||||
- Canonical project memory is updated only under Integration Gate; feature tasks write only their task-scoped records.
|
||||
@@ -50,7 +50,8 @@ Authenticated employee manual or account-bound AgentBus input is routed through
|
||||
- AUTH-002
|
||||
- AUTH-003
|
||||
- AUTH-004
|
||||
- AUTH-005
|
||||
|
||||
## Last Updated
|
||||
|
||||
2026-09-07
|
||||
2026-09-09
|
||||
|
||||
@@ -4,6 +4,9 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Integrated Through
|
||||
|
||||
- Source commit `be17f6c` from feature task `20260908-leader-webhook-api-7c4e9a12`, integrated as merge commit `295409b`, for organization-level external Webhook delivery of privacy-bounded leader summaries, migration `023_leader_summary_webhook_delivery`, and AUTH-005's one-attempt accepted-versus-delivered boundary.
|
||||
- Source commit `6ac90f8` from feature task `20260908-shared-child-batch-create-4e7c2a91`, integrated as merge commit `0d20544`, for Program-only `shared_child_order_batch_create`, parser `v1.0.7`, migration `022_shared_child_order_batch_create`, complete pre-write target enumeration, deterministic stop-on-first-non-success execution, and extension `0.5.170`.
|
||||
- Commit `bb115a3` from integration task `20260908-remove-maintain-project-docs-requirement-6d8a31f2` removed the deleted external project-document Skill/task-registry dependency and retained repository-local worktree and project-memory gates.
|
||||
- Source commit `a2378c8` from feature task `20260907-admin-task-data-plane-isolation-c3a7e91b`, integrated as `fd39347`, for the management-plane-only administrator role, task-data-plane denial at UI/HTTP/service/database boundaries, team-lead-only operations dashboard, and migration `021_admin_task_data_plane_isolation`; integration task `20260907-integrate-all-changes-9d2e7c41` accepted AUTH-004 and reconciled the administrator boundary.
|
||||
- Source commit `9043ad6eda0deb2a620e1303467d1c3bd80374ed` from feature task `20260907-leader-kanban-all-members-73c9e1a4`, integrated as `03d0131`, for the assignee-based team-lead dashboard over all durably assigned manual and AgentBus tasks.
|
||||
- Source commit `af9c90a3142e197493e80d74333af876c3bb947a` from feature task `20260907-ignore-extra-roster-fields-a6e4c9f2`, integrated as `9d1a6b4`, for required-field-only passenger-workbook normalization `v1.4.0`, ignored non-import columns, and synchronized Skill/business-instruction release `0.5.126`.
|
||||
@@ -39,7 +42,7 @@ This file is the integrated default-branch snapshot. Feature tasks record progre
|
||||
|
||||
## Current Focus
|
||||
|
||||
Operate the repository's current extension `0.5.169`, Skill/business-instruction `0.5.126`, roster normalizer `v1.4.0`, and migration-021 fixed-scope account model safely. Administrators manage accounts, channels, employee grants, parser routing, automation settings, and audit but never enter the task data plane. Team leads/users own normal task operations through immutable assignment; same-account work remains FIFO and single-active while distinct accounts are independent. Team leads alone receive the read-only assignee-based dashboard over assigned manual and AgentBus work and automatic future privacy-bounded summaries through usable owned AgentBus routes. Migration 021, manual extension reload, guarded product-search retry, service rollout, and any live AgentBus/WeChat canary remain separately authorized runtime work. Server-side automatic extension updating is not part of the active main line.
|
||||
Operate the repository's current extension `0.5.170`, Program parser `v1.0.7`, Skill/business-instruction `0.5.126`, roster normalizer `v1.4.0`, and migrations through `023_leader_summary_webhook_delivery` safely. The machine registry contains 19 routes; the external Agent remains limited to its original 18 and the two passenger-list routes plus shared-child batch creation are Program-only. Administrators manage accounts, channels, employee grants, parser routing, automation settings, and audit but never enter the task data plane. Team leads/users own normal task operations through immutable assignment; same-account work remains FIFO and single-active while distinct accounts are independent. Team leads alone receive the read-only assignee-based dashboard. Future privacy-bounded organization summaries use one protected external Webhook and a separate encrypted one-attempt outbox, not a leader AgentBus route. Database migration, extension reload, route grants, service rollout, live ERP validation, and any external Webhook canary remain separately authorized runtime work. Server-side automatic extension updating is not part of the active main line.
|
||||
|
||||
## Recently Completed
|
||||
|
||||
@@ -71,32 +74,37 @@ Operate the repository's current extension `0.5.169`, Skill/business-instruction
|
||||
- 2026-09-07: Advanced passenger-workbook normalization to `v1.4.0` and the five Skills plus operator instruction DOCX to `0.5.126`. Only required ERP source semantics participate in extraction; ordinary non-import columns are ignored and excluded from canonical TSV while active-content safety remains workbook-wide.
|
||||
- 2026-09-07: Expanded the team-lead operations dashboard to every durably assigned manual and AgentBus task using immutable assignment as the employee dimension; unassigned historical AgentBus rows remain excluded.
|
||||
- 2026-09-07: Accepted AUTH-004 and migration 021. Administrators are management-plane-only, cannot access task APIs, browser workers, task routes, dashboards, summaries, or task principals, and role promotion removes legacy executable bindings.
|
||||
- 2026-09-08: Added Program-only shared-child batch creation across an inclusive departure-date range. Every product-matching parent is enumerated and validated before the first write; execution is ordered by date/tid, stops at the first blocked/failed/uncertain result, and never retries a write automatically. Parser `v1.0.7`, migration 022, and extension `0.5.170` are synchronized.
|
||||
- 2026-09-08: Replaced only the leader-summary AgentBus transport with an organization-level external Webhook. AUTH-005 and migration 023 retain future-only encrypted/privacy-bounded projection, mark only strict gateway success as accepted rather than delivered, and terminate rejected or uncertain attempts without automatic retry.
|
||||
- 2026-09-08: Removed the deleted external project-document Skill and task-registry requirement; repository-local Git worktree checks and `.project-docs/` remain the active collaboration and memory boundary.
|
||||
|
||||
## In Progress
|
||||
|
||||
- The standard database currently contains one administrator account and no non-administrator task grants. Multi-account operational smoke testing remains for an administrator-led staging window.
|
||||
- Required migrations through `021_admin_task_data_plane_isolation`, employee ERP identities/channel bindings, extension `0.5.169`, account-scoped queue/routing changes, owner force-delete behavior, roster `v1.4.0`, and the merged dashboard/automatic-notification/administrator-isolation runtime changes have not been applied to or restarted on the standard service in this integration task. No live automatic team-lead delivery canary was performed.
|
||||
- Required migrations through `023_leader_summary_webhook_delivery`, employee ERP identities/channel bindings, extension `0.5.170`, account-scoped queue/routing changes, owner force-delete behavior, roster `v1.4.0`, shared-child batch creation, and the merged dashboard/Webhook/administrator-isolation runtime changes have not been applied to or restarted on the standard service in this integration task. No live batch ERP write or external Webhook canary was performed.
|
||||
|
||||
## Next Recommended Steps
|
||||
|
||||
1. In an explicitly authorized staging/rollout window, back up PostgreSQL, apply all migrations through 021, deploy the control plane and platform assets together, restart the service, manually load extension `0.5.169`, and verify readiness plus the exact-account handshake.
|
||||
2. Through the administrator management UI, create representative team-lead and ordinary accounts, assign narrow task grants and channels, and verify that administrator task pages/APIs/workers fail closed while employee routes remain usable.
|
||||
1. In an explicitly authorized staging/rollout window, back up PostgreSQL, apply all migrations through 023 in order, deploy the control plane and platform assets together, restart the service, manually load extension `0.5.170`, and verify readiness plus the exact-account handshake.
|
||||
2. Through the administrator management UI, create representative team-lead and ordinary accounts, assign narrow task grants and channels, explicitly grant the new shared-child batch route only where intended, and verify that administrator task pages/APIs/workers fail closed while employee routes remain usable.
|
||||
3. With separate team-lead and employee sessions, verify owner isolation, both-source leadership-dashboard reads, same-account FIFO, cross-account independence, mismatched ERP identity, worker conflict/failover, and owner-performed waiting/active force deletion without unintended ERP writes.
|
||||
4. With explicit authorization, run a live read-only ERP verification of the shared-mother-plan `tid-only` whole-visitor export path.
|
||||
5. With explicit authorization, perform ERP write verification for independent-order SGL/TWN and adult/child/leader headcount mappings.
|
||||
6. With explicit external-send authorization, use one controlled team-lead channel to verify automatic current-owner route resolution, proactive `task.summary` handling, and stable-frame deduplication through AgentBus/WeChat, then observe one manual and one AgentBus task before wider assurance.
|
||||
6. With explicit ERP-write authorization, run one bounded shared-child batch acceptance task after validating the full target set, then compare every per-parent receipt and stop behavior before wider use.
|
||||
7. With explicit external-send authorization and provider-confirmed protected configuration, send one controlled leader-summary Webhook canary, record only strict gateway acceptance, and independently verify downstream group delivery without automatically retrying any uncertain attempt.
|
||||
|
||||
## Open Questions / Blockers
|
||||
|
||||
- Shared-mother-plan whole-visitor export has historical read evidence and static coverage but lacks a fresh authorized runtime ERP read verification.
|
||||
- Independent-order SGL/TWN and four headcount categories lack authorized current-version ERP write evidence.
|
||||
- The standard service was last restarted before commits `3062ed5`, `b5f5847`, `cc09506`, `336ca6e`, `e4fd916`, `d09b303`, and the 2026-09-07 integration commits; its runtime schema, extension, account UI, queue/routing, owner force-delete, roster normalization, administrator isolation, and dashboard behavior must not be represented as the newly integrated repository state until an authorized rollout.
|
||||
- The standard service was last restarted before commits `3062ed5`, `b5f5847`, `cc09506`, `336ca6e`, `e4fd916`, `d09b303`, the 2026-09-07 integration commits, and migrations 022–023; its runtime schema, extension, account UI, queue/routing, owner force-delete, roster normalization, shared-child batch route, administrator isolation, dashboard, and Webhook behavior must not be represented as the newly integrated repository state until an authorized rollout.
|
||||
- AgentBus account-worker routing still lacks a live two-employee/two-cloud-PC staging matrix covering unique-node exact ERP identity, mismatched login, same-account device conflict, 90-second stale failover, same-account FIFO, cross-account independence, administrator task-data-plane denial, and both manual and automatic channel work.
|
||||
- Administrator migration 021 and the team-lead dashboard's assigned manual/AgentBus scope have repository and disposable-database evidence but no deployed multi-role browser canary.
|
||||
- The exact user-supplied workbook could not be replayed after the roster `v1.4.0` fix because its temporary shared-pasteboard file expired; synthetic regressions cover ignored populated identity-card and ordinary extra columns without preserving passenger data.
|
||||
- Lifecycle-independent force deletion has repository regression evidence but lacks an authorized runtime smoke test for waiting/active deletion, database absence, OSS cleanup, and owner-plugin-only cleanup.
|
||||
- A live internal AgentBus attachment verification remains separately unperformed.
|
||||
- Proactive team-lead `task.summary` delivery has repository, mock-WebSocket, and disposable-PostgreSQL evidence but no deployed AgentBus/WeChat canary; automatic current-owner route resolution remains unverified in the live bridge.
|
||||
- Shared-child batch creation has parser/browser/static regression evidence but no authorized current-version ERP write verification.
|
||||
- External leader-summary delivery has repository, fake-sender, and disposable-PostgreSQL evidence but no deployed gateway/WeChat canary; an uncertain live attempt must not be retried automatically.
|
||||
|
||||
## Risky Areas
|
||||
|
||||
@@ -106,9 +114,10 @@ Operate the repository's current extension `0.5.169`, Skill/business-instruction
|
||||
- Account role changes, migration-021 principal cleanup/triggers, administrator task-plane denial, session revocation, creator-based task-route revocation, cross-source assignee-based dashboard projection, and encrypted input audit are security-sensitive boundaries.
|
||||
- AgentBus channel ownership, immutable task assignment, unique-node exact expected ERP identity, browser-worker freshness/failover, and administrator management/task-plane separation are security- and write-safety-sensitive boundaries.
|
||||
- Account-scoped advisory locking, per-assignee FIFO queries, executable SSE/result routing, and irreversible force deletion are concurrency-, authorization-, and evidence-sensitive boundaries.
|
||||
- Team-lead automatic route derivation, stale-owner invalidation, encrypted projection/delivery rows, at-least-once stable-frame deduplication, privacy allowlisting, and non-retractable external delivery are authorization- and disclosure-sensitive boundaries.
|
||||
- Shared-child complete target enumeration, exact parent binding, ordered multi-write execution, per-parent receipts, stop-on-first-non-success behavior, and write uncertainty are duplicate-write-sensitive boundaries.
|
||||
- External Webhook configuration secrecy, future-only revisions, encrypted projection/delivery rows, one-attempt lease handling, privacy allowlisting, accepted-versus-delivered wording, and non-retractable external delivery are authorization- and disclosure-sensitive boundaries.
|
||||
- Release synchronization across extension source, minimum platform version, mapping, ZIP, Skills, DOCX, and `dist/release-manifest.json`.
|
||||
|
||||
## Last Updated
|
||||
|
||||
2026-09-07
|
||||
2026-09-09
|
||||
|
||||
@@ -14,3 +14,6 @@ This is integrated history. Feature tasks write only their task-scoped records;
|
||||
| 2026-09-07 | Team-lead AgentBus task summaries | Integrated default-off future-only summaries for other non-admin employees' manual/AgentBus outcomes through a separate encrypted outbox and verified proactive target, without changing task or ERP authority. | [Integration task](tasks/20260907-integrate-leader-summaries-84c1d7ea.md) |
|
||||
| 2026-09-07 | Automatic leader-summary routing correction | Replaced the duplicate administrator subscription form with role-driven activation and current-owner AgentBus route resolution while retaining future-only privacy and delivery boundaries. | [Integration task](tasks/20260907-integrate-auto-leader-summary-9a4d2c61.md) |
|
||||
| 2026-09-07 | Exact identity, roster selection, leader oversight, and administrator isolation | Integrated extension `0.5.169`, roster normalizer `v1.4.0`/Skill `0.5.126`, assigned manual+AgentBus leadership reporting, AUTH-004, and migration 021; repository/runtime rollout remains separate. | [Integration task](tasks/20260907-integrate-all-changes-9d2e7c41.md) |
|
||||
| 2026-09-08 | Shared-child batch creation | Added the nineteenth machine route as Program-only, complete pre-write parent enumeration, ordered stop-on-first-non-success execution, parser `v1.0.7`, migration 022, and extension `0.5.170`. | [Feature task](tasks/20260908-shared-child-batch-create-4e7c2a91.md) |
|
||||
| 2026-09-08 | Leader-summary external Webhook | Replaced only the AgentBus summary transport with an organization-level encrypted one-attempt Webhook outbox, migration 023, strict accepted-versus-delivered semantics, and AUTH-005. | [Feature task](tasks/20260908-leader-webhook-api-7c4e9a12.md) |
|
||||
| 2026-09-08 | Repository-local project-document governance | Removed the deleted external Skill/task-registry dependency while preserving Git worktree safety checks and `.project-docs/` as canonical memory. | [Integration task](tasks/20260908-remove-maintain-project-docs-requirement-6d8a31f2.md) |
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
# Task: Integrate pending changes, push main, and provide migration SQL
|
||||
|
||||
## Identity
|
||||
|
||||
- Task ID: 20260909-integrate-pending-push-sql-4c8e2a71
|
||||
- Mode: Integration
|
||||
- Branch: main
|
||||
- Worktree: /Users/inmanx/Documents/lwltAPI
|
||||
- Base commit: 515b545b32fcbb30311b56c5b90a36f3d3834d95
|
||||
- Owner: codex
|
||||
- Status: Ready for push verification
|
||||
|
||||
## Scope
|
||||
|
||||
- Preserve and commit the known completed repository-governance changes already present on `main`.
|
||||
- Integrate ready feature tasks `20260908-shared-child-batch-create-4e7c2a91` and `20260908-leader-webhook-api-7c4e9a12`, including migrations 022 and 023.
|
||||
- Resolve shared-file conflicts semantically, promote accepted outcomes into canonical project memory, run repository/release verification, and push `main` to `origin/main` without force.
|
||||
- Provide the exact database migration SQL files needed for the integrated application.
|
||||
|
||||
## Intent And Constraints
|
||||
|
||||
- The user explicitly authorized merging all pending changes into the main branch and pushing the repository.
|
||||
- Treat completed, task-attributed work as merge candidates; do not merge historical diagnosis, rollback, superseded, or patch-equivalent branches merely because their tips are not ancestors of `main`.
|
||||
- Preserve the unrelated in-progress runtime record `20260902-migrate-restart-confirmed-4f8c2a71.md` and every unknown dirty worktree without resetting, cleaning, stashing, deleting, or rewriting it.
|
||||
- Keep the shared-child batch route Program-only and preserve its enumerate-before-write, deterministic ordering, stop-on-first-non-success, and no-automatic-retry boundaries.
|
||||
- Replace only leader-summary transport with the fixed organization-level external Webhook outbox; keep normal AgentBus task intake/replies and ERP execution isolated and unchanged.
|
||||
- Do not read `.env`, run production migrations, deploy/restart services, reload extensions, access ERP, mutate runtime tasks/accounts/channels, or send an external Webhook message.
|
||||
|
||||
## Outcome
|
||||
|
||||
- Committed the completed repository-governance update as `bb115a3` and preserved the unrelated in-progress runtime/reload record as the separate documentation commit `301890d`.
|
||||
- Created source commits `6ac90f8` for shared-child batch creation and `be17f6c` for leader-summary Webhook delivery in their isolated feature worktrees.
|
||||
- Integrated the source branches into `main` as merge commits `0d20544` and `295409b`. The only conflicts were shared migration-version documentation and assertions; resolution retains migration 022 before 023, requires schema version 023, and preserves both feature semantics.
|
||||
- Promoted the integrated state to 19 total machine routes, 18 external-Agent routes, three Program-only routes, Program parser `v1.0.7`, extension `0.5.170`, and required migrations through `023_leader_summary_webhook_delivery`.
|
||||
- Accepted AUTH-005. Organization-level leader summaries now use protected external Webhook configuration, a separate future-only encrypted outbox, strict accepted-versus-delivered terminology, and terminal one-attempt rejection/uncertainty behavior without changing normal employee AgentBus/task/ERP paths.
|
||||
- Reconciled current state, decisions, architecture, data flow, business rules, glossary, evidence, commitments, task history, success criteria, and the Agent/Skill business-registry boundary.
|
||||
- Audited linked worktrees and branches. No other new ready-for-integration product task remained; historical diagnosis, rollback, superseded, patch-equivalent, and unrelated dirty worktrees were preserved without modification.
|
||||
- The exact new database migration SQL remains in `control-plane/migrations/022_shared_child_order_batch_create.sql` and `control-plane/migrations/023_leader_summary_webhook_delivery.sql`, in that required order.
|
||||
|
||||
## Verification
|
||||
|
||||
- Initial `git fetch origin` showed local `main` and `origin/main` both at `515b545b32fcbb30311b56c5b90a36f3d3834d95` before this integration.
|
||||
- `git diff --check` and active-tree conflict-marker scan passed.
|
||||
- Direct syntax checks passed for the platform application and changed extension JavaScript entrypoints.
|
||||
- `node --run check:repo` passed, 10/10, including exact release set, hashes, extension/source package equality, Markdown links, and repository governance.
|
||||
- `node --run check` passed.
|
||||
- `node --run test:control-plane` passed, 183/183.
|
||||
- `node --run test:legacy` passed, 277/277.
|
||||
- `node --run build` passed.
|
||||
- Source-task disposable PostgreSQL evidence was reviewed: migration 022 constraint expansion and migration 023 legacy-row retirement/new encrypted outbox both passed independently before integration; no production database or network endpoint was touched here.
|
||||
- Remote push and final remote-tip verification are pending the integration commit.
|
||||
|
||||
## Follow-ups
|
||||
|
||||
- Back up the target database and run migrations through 023 before deploying the integrated control plane.
|
||||
- Configure the complete provider-confirmed Webhook URL and real token only in the protected runtime environment; a live send, deployment, restart, extension reload, route grant, or ERP write remains separately authorized.
|
||||
- Load extension `0.5.170` and grant the new Program-only shared-child batch route only to intended non-administrator accounts before a bounded live acceptance test.
|
||||
|
||||
## Promotion Candidates
|
||||
|
||||
- None; this Integration task will reconcile accepted source outcomes directly.
|
||||
@@ -3,18 +3,19 @@
|
||||
## Durable Rules
|
||||
|
||||
- `agent设计规范/business-adaptation-registry.md` is the cross-session business entry; each business maps user input, Skill/action, ERP flow, contracts, implementation, fixtures, and verification status.
|
||||
- Manual and AgentBus tasks share the same 18 machine routes, task-scoped parser mode snapshot, and organization automation rules. AgentBus intake evaluates the bound employee account's route grants rather than an administrator or whichever browser is online.
|
||||
- Manual and AgentBus tasks share the same 19-route machine registry, task-scoped parser mode snapshot, and organization automation rules. The external Agent remains restricted to its original 18 routes; the Program-only shared-child batch route is accepted only by the deterministic program path. AgentBus intake evaluates the bound employee account's route grants rather than an administrator or whichever browser is online.
|
||||
- The platform exposes one fixed deployment scope, not an organization-management product. Accounts use `admin`, `team_lead`, and `user` roles.
|
||||
- Passwords must be non-empty but have no application-level length restriction. First login and administrator password reset do not force a subsequent password change; users may still change passwords voluntarily, administrators may reset them, and password changes revoke existing sessions according to the account lifecycle contract.
|
||||
- Administrators are management-plane-only identities. They manage accounts, roles, passwords, sessions, employee route grants, AgentBus channels, parser routing, automation settings, and audit, but hold no business routes and cannot create, inspect, mutate, stream, claim, reconcile, archive, restore, force-delete, or submit results for tasks.
|
||||
- Team leads and ordinary users start with no task grants, require explicit administrator allowlists, and may use normal task APIs only for manual or AgentBus tasks immutably assigned to themselves. A known ungranted route or a non-unique/unresolved employee route fails before parsing, plugin dispatch, or ERP execution. Authorization is rechecked for supplemental input, attachments, confirmation, automatic confirmation, and browser claim.
|
||||
- Team leads may read all durably assigned manual and AgentBus work only through the platform-operations dashboard; administrators cannot access it. The dashboard uses immutable `assigned_user_id` as the employee dimension, excludes historical AgentBus rows without a reliable assignee, and is aggregate-first across task, person, original input, final output, time, task type, and completion state with business-facing drill-through. Its five summary cards are display-only; the explicit task-result filter defaults to all results. Internal attention or waiting-for-input states remain unchanged in task storage but are presented and filtered as “进行中”; the leadership view exposes no separate “待跟进” category. It is not an audit log and never renders technical payloads, internal identifiers, machine-shaped historical input, or technical failure text; this visibility does not grant cross-user task mutation, artifacts, SSE, global settings, audit administration, or AgentBus access.
|
||||
- Separately, every active team lead with an enabled owned AgentBus channel and a usable current-owner route automatically receives an organization-wide task-summary projection for future manual and AgentBus tasks assigned to other non-admin employees. Only stable completed, failed, cancelled, uncertain, and uncertain-then-resolved outcomes qualify. The route and summary payload are encrypted, history is not backfilled, role/channel/routing invalidation cancels unsent rows, employee replies retain priority, and the message never includes raw instructions, attachments, customer/traveller data, URLs, or technical errors. This notification grants no task mutation, executable event, confirmation, browser, reconciliation, or ERP authority.
|
||||
- Creator and input-turn attribution are durable, business inputs remain encrypted at rest, and denial audit excludes plaintext. Archive/restore is the owning employee's reversible routine removal path. Explicit owner force delete is a separate irreversible operation that may physically remove that employee's task in any lifecycle state, retains only a minimal non-content deletion audit marker, and cannot undo ERP effects already written or retract a task summary already accepted by AgentBus/WeChat. Administrators cannot invoke task removal.
|
||||
- Separately, protected runtime configuration may enable one organization-level external Webhook for privacy-bounded summaries of future manual and AgentBus tasks assigned to non-administrator employees. Only stable completed, failed, cancelled, uncertain, and uncertain-then-resolved outcomes qualify. History is not backfilled; payloads are encrypted; the complete URL/token stay outside storage and status responses; messages never include raw instructions, attachments, customer/traveller data, URLs, or technical errors. Only HTTP 200 plus `code=0` plus `data=true` is recorded as accepted, never as delivered. Explicit rejection, timeout, network failure, 5xx, invalid response, and stale sending lease are terminal and never automatically retried because the provider has no idempotency key. This projection grants no task mutation, executable event, confirmation, browser, reconciliation, AgentBus, or ERP authority, and its failure cannot block normal task services.
|
||||
- Creator and input-turn attribution are durable, business inputs remain encrypted at rest, and denial audit excludes plaintext. Archive/restore is the owning employee's reversible routine removal path. Explicit owner force delete is a separate irreversible operation that may physically remove that employee's task in any lifecycle state, retains only a minimal non-content deletion audit marker, and cannot undo ERP effects already written or retract a task summary already accepted by the external Webhook. Administrators cannot invoke task removal.
|
||||
- Each non-admin employee may carry one case-insensitively unique expected ERP account and one AgentBus channel. New manual and AgentBus tasks persist an immutable assignee; only that account may confirm, claim, reconcile, resume, or submit ERP execution results. Administrators manage the account and channel configuration but cannot inspect or execute the employee's tasks.
|
||||
- A browser is execution-ready only when it is the account's sole fresh worker and the active ERP session proves the expected account from exactly one `#Lable_UserName` login node by Unicode/whitespace/case-normalized full equality. Missing, duplicate, blank, substring-only, or unrelated page-text matches fail closed without exposing the observed account. Concurrent fresh workers, unbound channels, and historical unassigned AgentBus tasks also fail closed; stale failover waits 90 seconds. Claim locking, active-execution detection, confirmed FIFO, and queue position are scoped to immutable `assigned_user_id`: the same account stays serialized while different accounts execute independently.
|
||||
- Administrators are rejected from the task data plane at the database, service, route, and UI boundaries. Executable task reads, SSE history/live events, browser claims, plugin-result ingestion, and force-delete browser cleanup commands require a team-lead/user session matching the task assignee.
|
||||
- The two passenger-list import routes are Program-only and wait for exactly one `.xls` or `.xlsx` attachment before deterministic normalization.
|
||||
- The two passenger-list import routes and shared-child batch creation are Program-only. Passenger-list routes wait for exactly one `.xls` or `.xlsx` attachment before deterministic normalization.
|
||||
- Shared-child batch creation requires one inclusive departure-date range, a product, customer, and passenger counts. It enumerates every visible product-matching shared mother plan in the range and validates unique complete parent identity before the first write; zero, duplicate, conflicting, incomplete, or oversized target sets fail closed. Valid targets execute in date/tid order through the single-child adapter, keep per-parent receipts, stop at the first blocked, failed, or uncertain outcome, leave remaining targets not started, and never automatically retry a write. Customer and leader are child-order fields and never filter mother plans.
|
||||
- Passenger workbooks must contain exactly one complete ERP-semantic header within rows 1–100. The header may be on row 1 or follow metadata, column order is arbitrary, and only the finite approved aliases for the 12 required source semantics are selected. Identity-card, age, source document-type, hidden/local-formula, unheaded, and other ordinary non-import columns are ignored for row detection and selected-value validation and are never copied into the internal 13-column canonical TSV; canonical `证件类型` remains the implicit constant `护照`. Missing/duplicate required semantics, multiple candidate headers, unsafe selected formulas/results, non-contiguous selected rows, macros, external relationships, hyperlinks, and external formulas fail closed.
|
||||
- A WeChat attachment card is transport placeholder text, not file content. Only a structured `payload.attachments[]` entry can resume a roster task; missing metadata fails before ingestion and leaves the original task in `awaiting_attachment` instead of creating a new task.
|
||||
- The trusted internal deployment accepts credential-free HTTPS roster attachment URLs whose host is internal, private/reserved IPv4/IPv6, or localhost. DNS pinning, redirect revalidation, download timeout, byte limits, declared-size checks, and optional SHA-256 verification remain mandatory.
|
||||
@@ -34,4 +35,4 @@
|
||||
|
||||
## Last Reviewed
|
||||
|
||||
2026-09-07
|
||||
2026-09-09
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
| execution state | ERP-enriched operation after unique resolution and strict gates | Contains exact internal refs needed by the executor |
|
||||
| shared plan / 母团 | Parent shared-tour plan | Whole-visitor export uses `tid` only |
|
||||
| shared child / 子单 | Concrete customer order under a shared plan | Visitor list uses `did+tid` |
|
||||
| Program-only | Route must use the deterministic parser and may not fall back to AI | Applies to both passenger-list routes |
|
||||
| Program-only | Route must use the deterministic parser and may not fall back to AI | Applies to both passenger-list routes and shared-child batch creation |
|
||||
| Webhook accepted | The external gateway returned HTTP 200 with `code=0` and `data=true` | Does not prove downstream WeChat/group delivery and must not be described as delivered |
|
||||
| fresh requery | Read-only ERP verification performed after an action | Required except where an action-specific explicit-success credential is accepted |
|
||||
| no ERP write | Evidence-backed result that the write boundary was not crossed | Must not be inferred from an unknown post-submit failure |
|
||||
| management plane | Account, channel, parser-routing, automation-setting, and audit administration available to `admin` | Excludes every business-task API, dashboard, browser worker, and task principal |
|
||||
|
||||
@@ -26,6 +26,8 @@ Use this index for searchable, traceable evidence records.
|
||||
| 2026-09-07 | Exact ERP account identity and extension `0.5.169` | Repository, focused identity, package/source, and release hashes verified; not loaded or deployed | [Integration task](../30-worklog/tasks/20260907-integrate-all-changes-9d2e7c41.md) | One unique `#Lable_UserName` node plus normalized full equality is now the only accepted identity proof; missing, duplicate, blank, substring-only, and unrelated page-text matches fail closed without exposing the observed account. Uncertain writes direct manual read-only verification to the immutable task owner. |
|
||||
| 2026-09-07 | Required-field-only passenger roster normalization `v1.4.0` | Synthetic/parser, Skill-package, release, and 12-page DOCX rendering verified; exact uploaded file unavailable for replay | [Integration task](../30-worklog/tasks/20260907-integrate-all-changes-9d2e7c41.md) | The 12 required source semantics alone drive extraction and validation; ordinary non-import columns are ignored and excluded from canonical TSV, while workbook-wide active-content checks remain. |
|
||||
| 2026-09-07 | Assignee-based leader dashboard and administrator task-plane isolation | Repository and disposable-PostgreSQL verified; runtime rollout not performed | [Integration task](../30-worklog/tasks/20260907-integrate-all-changes-9d2e7c41.md) | Team leads see assigned manual and AgentBus work through the bounded read model; migration 021 removes and rejects administrator task principals, while UI/HTTP/service guards deny administrator task access. |
|
||||
| 2026-09-08 | Program-only shared-child batch creation and extension `0.5.170` | Repository, parser/browser regression, release package, and hash verified; no live ERP write | [Feature task](../30-worklog/tasks/20260908-shared-child-batch-create-4e7c2a91.md) | Migration 022 admits the nineteenth route without granting it; all matching parents are enumerated before writes, ordered by date/tid, and executed with per-parent receipts plus first-non-success stop/no-retry semantics. |
|
||||
| 2026-09-08 | Organization-level leader-summary external Webhook | Repository, fake-sender, and disposable-PostgreSQL verified; not deployed or externally sent | [Feature task](../30-worklog/tasks/20260908-leader-webhook-api-7c4e9a12.md) | Migration 023 retires unsent legacy AgentBus summaries and adds encrypted revisioned Webhook state/outbox; exact request shape, configuration isolation, privacy allowlist, terminal one-attempt outcomes, and strict accepted terminology passed regression. |
|
||||
|
||||
## When To Add Evidence
|
||||
|
||||
|
||||
@@ -7,10 +7,12 @@ Track future-facing memory: promised follow-ups, unfinished loops, timed checks,
|
||||
| 2026-08-28 | Verify shared-mother-plan `tid-only` whole-visitor export against the current runtime ERP path. | Explicit user authorization for ERP read access | Future authorized task | Pending authorization | Run read-only source and artifact checks without external delivery. |
|
||||
| 2026-08-28 | Verify independent-order SGL/TWN and adult/child/leader headcount mappings with real ERP writes. | Explicit user authorization for controlled ERP writes | Future authorized task | Pending authorization | Use reversible values and action-specific requery evidence. |
|
||||
| 2026-08-28 | Resolve AgentBus OSS attachment rejection caused by private/reserved local DNS answers. | User scheduled integration and confirmed the environment is trusted internal networking | Integration task `20260831-integrate-server-diagnostics-8b42c6d1` | Completed in repository | Deploy/restart and run one live internal attachment verification only under separate authorization. |
|
||||
| 2026-09-02 | Roll out and stage-test AgentBus account workers, account-scoped queues, administrator isolation, and owner force deletion. | Explicit authorization for database backup/migration, service restart, extension reload, account/channel configuration, staging traffic, and disposable task mutation | Future authorized rollout task | Pending authorization | Apply migrations through 021 and extension `0.5.169`; verify two employee accounts/cloud PCs, unique-node exact ERP identity and mismatch, same-account worker conflict/FIFO, cross-account independence, 90-second failover, administrator task-API denial, manual/AgentBus routing, and owner-performed waiting/active force-delete cleanup. |
|
||||
| 2026-09-02 | Verify the integrated native product-search execution path. | Explicit authorization for extension reload and a guarded ERP preflight/retry | Future authorized rollout task | Pending authorization | Load current extension `0.5.169`, confirm the runtime handshake, then verify deterministic product selection and normal write gates without automatically retrying the earlier failed task. |
|
||||
| 2026-09-03 | Bootstrap and canary the central extension-update channel. | Former rollout plan for reverted server-side `EXT-001` architecture | None while reverted | Cancelled by user rollback | Extension `0.5.169` is the current manual plugin release. Do not deploy migration 019 or the removed server updater from `main`; consult `codex/backup-extension-update-20260903-b2e33e2` only if a future explicit decision revives the archived `0.5.167` server-update architecture. |
|
||||
| 2026-09-07 | Deploy and canary team-lead task-summary notifications. | Explicit authorization for database backup/migration, service restart, employee channel binding, and controlled external AgentBus/WeChat delivery | Future authorized rollout task | Pending authorization | Apply migrations through 021, verify one exact team-lead current-owner route, confirm `task.summary` routing and stable-ID deduplication, then observe one manual and one AgentBus task before wider enablement. |
|
||||
| 2026-09-02 | Roll out and stage-test AgentBus account workers, account-scoped queues, administrator isolation, and owner force deletion. | Explicit authorization for database backup/migration, service restart, extension reload, account/channel configuration, staging traffic, and disposable task mutation | Future authorized rollout task | Pending authorization | Apply migrations through 023 and extension `0.5.170`; verify two employee accounts/cloud PCs, unique-node exact ERP identity and mismatch, same-account worker conflict/FIFO, cross-account independence, 90-second failover, administrator task-API denial, manual/AgentBus routing, and owner-performed waiting/active force-delete cleanup. |
|
||||
| 2026-09-02 | Verify the integrated native product-search execution path. | Explicit authorization for extension reload and a guarded ERP preflight/retry | Future authorized rollout task | Pending authorization | Load current extension `0.5.170`, confirm the runtime handshake, then verify deterministic product selection and normal write gates without automatically retrying the earlier failed task. |
|
||||
| 2026-09-03 | Bootstrap and canary the central extension-update channel. | Former rollout plan for reverted server-side `EXT-001` architecture | None while reverted | Cancelled by user rollback | Extension `0.5.170` is the current manual plugin release. Do not deploy migration 019 or the removed server updater from `main`; consult `codex/backup-extension-update-20260903-b2e33e2` only if a future explicit decision revives the archived `0.5.167` server-update architecture. |
|
||||
| 2026-09-07 | Deploy and canary team-lead task-summary notifications through AgentBus. | Former rollout plan superseded by AUTH-005 external Webhook transport | None under the active design | Cancelled by AUTH-005 | Do not configure a leader channel or send `task.summary` frames for summary delivery; migration 023 disables unsent legacy summary rows. |
|
||||
| 2026-09-09 | Deploy and canary organization-level leader-summary Webhook delivery. | Explicit authorization for database backup/migrations through 023, protected URL/token configuration, service rollout, and one bounded external send | Future authorized rollout task | Pending authorization | Confirm the complete provider URL and real token, deploy without logging either value, observe one accepted/rejected/uncertain outcome, independently verify downstream group delivery, and never retry an uncertain attempt automatically. |
|
||||
| 2026-09-09 | Validate Program-only shared-child batch creation in ERP. | Explicit authorization for migration 022 route grant, extension `0.5.170` reload, and one bounded multi-parent ERP write | Future authorized rollout task | Pending authorization | Verify the complete target preview, then compare ordered per-parent receipts and first-non-success stop behavior without automatic retry. |
|
||||
|
||||
## Use
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 业务适配登记表
|
||||
|
||||
这是跨会话和交付的业务入口。它回答三个问题:业务人员怎么输入、ERP 怎么执行、Skill 在哪里维护。运营统一复制入口见[运营业务 AI 输入模板总表](templates/business-input-templates.md),AI 业务路由参考见 [business-behavior-registry.md](business-behavior-registry.md),18 项确定性解析的指令、字段、action 和版本唯一机器源见 [`control-plane/src/business-routes.ts`](../control-plane/src/business-routes.ts)。该机器路由、任务级解析模式快照和组织全自动化规则对获授权员工的手工与 AgentBus 新任务全局共用,来源只负责输入和回执适配;AgentBus 渠道必须绑定一个员工平台账号,并使用该账号的业务白名单、任务归属、唯一云电脑 worker 和唯一登录节点精确 ERP 身份门禁。ERP 领取队列按不可变的任务归属账号分别保持 FIFO 与单活跃执行,不同账号互不阻塞;管理员只进入账号、渠道、解析策略、自动化设置和审计管理面,不创建、查看、修改、领取或删除业务任务。
|
||||
这是跨会话和交付的 Agent/Skill 业务入口。它回答三个问题:业务人员怎么输入、ERP 怎么执行、Skill 在哪里维护。运营统一复制入口见[运营业务 AI 输入模板总表](templates/business-input-templates.md),AI 业务路由参考见 [business-behavior-registry.md](business-behavior-registry.md),19 项确定性解析的指令、字段、action 和版本唯一机器源见 [`control-plane/src/business-routes.ts`](../control-plane/src/business-routes.ts)。其中下表与外部 Agent 继续覆盖原 18 项;新增的散拼批量子单只由 Program 入口接受,不加入 Agent/Skill 指令登记。该机器路由、任务级解析模式快照和组织全自动化规则对获授权员工的手工与 AgentBus 新任务全局共用,来源只负责输入和回执适配;AgentBus 渠道必须绑定一个员工平台账号,并使用该账号的业务白名单、任务归属、唯一云电脑 worker 和唯一登录节点精确 ERP 身份门禁。ERP 领取队列按不可变的任务归属账号分别保持 FIFO 与单活跃执行,不同账号互不阻塞;管理员只进入账号、渠道、解析策略、自动化设置和审计管理面,不创建、查看、修改、领取或删除业务任务。
|
||||
|
||||
## 状态定义
|
||||
|
||||
|
||||
Reference in New Issue
Block a user