toga-ai 1.0.92 → 1.0.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/knowledge/2.0/apps/talos/INDEX.md +2 -2
- package/knowledge/2.0/apps/talos/architecture.md +5 -5
- package/knowledge/2.0/apps/talos/features/mcp-servers.md +2 -2
- package/knowledge/2.0/apps/talos/features/{react-agent.md → talos-agent.md} +37 -36
- package/knowledge/clients/compass-usa/INDEX.md +1 -1
- package/knowledge/clients/compass-usa/features/mits-po-to-so-item-linking.md +29 -1
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
| Doc | Summary | Files |
|
|
4
4
|
|-----|---------|-------|
|
|
5
|
-
| [TOGa IQ (talos) Architecture](architecture.md) | **TOGa IQ** is TOGA Technology's AI agent platform. | talos/libs/aegra-api/src/aegra_api/main.py, talos/libs/aegra-api/src/aegra_api/settings.py, talos/libs/aegra-api/src/aegra_api/config.py, talos/libs/aegra-api/src/aegra_api/core/tenant_router.py, talos/libs/aegra-api/src/aegra_api/core/control_plane_db.py, talos/libs/aegra-api/src/aegra_api/core/auth_middleware.py, talos/libs/aegra-api/src/aegra_api/services/run_executor.py, talos/libs/aegra-api/src/aegra_api/services/langgraph_service.py, talos/libs/aegra-api/src/aegra_api/services/graph_factory.py, talos/libs/aegra-api/src/aegra_api/services/streaming_service.py, talos/
|
|
5
|
+
| [TOGa IQ (talos) Architecture](architecture.md) | **TOGa IQ** is TOGA Technology's AI agent platform. | talos/libs/aegra-api/src/aegra_api/main.py, talos/libs/aegra-api/src/aegra_api/settings.py, talos/libs/aegra-api/src/aegra_api/config.py, talos/libs/aegra-api/src/aegra_api/core/tenant_router.py, talos/libs/aegra-api/src/aegra_api/core/control_plane_db.py, talos/libs/aegra-api/src/aegra_api/core/auth_middleware.py, talos/libs/aegra-api/src/aegra_api/services/run_executor.py, talos/libs/aegra-api/src/aegra_api/services/langgraph_service.py, talos/libs/aegra-api/src/aegra_api/services/graph_factory.py, talos/libs/aegra-api/src/aegra_api/services/streaming_service.py, talos/agents/talos_agent/graph.py, talos/docker-compose.yml, talos/deployments/docker/Dockerfile |
|
|
6
6
|
| [aegra-api — Agent Protocol HTTP + Execution Pipeline](features/aegra-api.md) | `aegra-api` is the **FastAPI Agent Protocol server** at the heart of TOGa IQ. | talos/libs/aegra-api/src/aegra_api/main.py, talos/libs/aegra-api/src/aegra_api/settings.py, talos/libs/aegra-api/src/aegra_api/config.py, talos/libs/aegra-api/src/aegra_api/api/assistants.py, talos/libs/aegra-api/src/aegra_api/api/threads.py, talos/libs/aegra-api/src/aegra_api/api/runs.py, talos/libs/aegra-api/src/aegra_api/api/store.py, talos/libs/aegra-api/src/aegra_api/api/mcp.py, talos/libs/aegra-api/src/aegra_api/api/knowledge_bases.py, talos/libs/aegra-api/src/aegra_api/core/auth_middleware.py, talos/libs/aegra-api/src/aegra_api/core/auth_deps.py, talos/libs/aegra-api/src/aegra_api/core/tenant_router.py, talos/libs/aegra-api/src/aegra_api/core/control_plane_db.py, talos/libs/aegra-api/src/aegra_api/core/redis_manager.py, talos/libs/aegra-api/src/aegra_api/core/encryption.py, talos/libs/aegra-api/src/aegra_api/middleware/content_type_fix.py, talos/libs/aegra-api/src/aegra_api/middleware/rate_limiter.py, talos/libs/aegra-api/src/aegra_api/middleware/logger_middleware.py, talos/libs/aegra-api/src/aegra_api/services/broker.py, talos/libs/aegra-api/src/aegra_api/services/redis_broker.py, talos/libs/aegra-api/src/aegra_api/services/executor.py, talos/libs/aegra-api/src/aegra_api/services/local_executor.py, talos/libs/aegra-api/src/aegra_api/services/worker_executor.py, talos/libs/aegra-api/src/aegra_api/services/run_executor.py, talos/libs/aegra-api/src/aegra_api/services/langgraph_service.py, talos/libs/aegra-api/src/aegra_api/services/graph_factory.py, talos/libs/aegra-api/src/aegra_api/services/graph_streaming.py, talos/libs/aegra-api/src/aegra_api/services/streaming_service.py, talos/libs/aegra-api/src/aegra_api/services/event_store.py, talos/libs/aegra-api/alembic/env.py |
|
|
7
7
|
| [Deployment — Docker, Compose, Entrypoint, External PG/Redis](features/deployment.md) | TOGa IQ ships as a **single container** (`aegra` service) wrapping the `aegra-api` FastAPI server. | talos/docker-compose.yml, talos/deployments/docker/Dockerfile, talos/deployments/docker/entrypoint.sh |
|
|
8
8
|
| [MCP Servers — clickup-mcp and toga-db-mcp](features/mcp-servers.md) | Two internal **FastMCP** servers exposed over **HTTP** with API-key auth and PM2 process management: - **`clickup-mcp`** — ClickUp workspace surface (spaces / f | talos/mcp-servers/clickup-mcp/src, talos/mcp-servers/clickup-mcp/ecosystem.config.js, talos/mcp-servers/clickup-mcp/ecosystem.dev.config.js, talos/mcp-servers/clickup-mcp/pyproject.toml, talos/mcp-servers/clickup-mcp/.env.example, talos/mcp-servers/toga-db-mcp/src, talos/mcp-servers/toga-db-mcp/clusters.yaml, talos/mcp-servers/toga-db-mcp/ecosystem.config.js, talos/mcp-servers/toga-db-mcp/pyproject.toml, talos/mcp-servers/toga-db-mcp/.env.example |
|
|
9
9
|
| [Observability — Langfuse, OTEL, Prometheus, OneUptime](features/observability.md) | TOGa IQ uses **two complementary tracing planes** plus optional Prometheus metrics and external uptime monitoring: - **Langfuse (native v3 SDK)** — LLM-shaped t | talos/libs/aegra-api/src/aegra_api/observability/__init__.py, talos/libs/aegra-api/src/aegra_api/observability/setup.py, talos/libs/aegra-api/src/aegra_api/observability/base.py, talos/libs/aegra-api/src/aegra_api/observability/langfuse_provider.py, talos/libs/aegra-api/src/aegra_api/observability/langfuse_client.py, talos/libs/aegra-api/src/aegra_api/observability/otel.py, talos/libs/aegra-api/src/aegra_api/observability/metrics.py, talos/libs/aegra-api/src/aegra_api/observability/span_enrichment.py, talos/libs/aegra-api/src/aegra_api/observability/targets |
|
|
10
|
-
| [
|
|
10
|
+
| [talos_agent — LangGraph ReAct Agent with Plan, BLP, MCP, Canvas](features/talos-agent.md) | `talos_agent` is the **reference LangGraph agent** shipped under `agents/talos_agent/`. | talos/agents/talos_agent/graph.py, talos/agents/talos_agent/state.py, talos/agents/talos_agent/context.py, talos/agents/talos_agent/prompts.py, talos/agents/talos_agent/tool_router.py, talos/agents/talos_agent/model_helpers.py, talos/agents/talos_agent/config/context.py, talos/agents/talos_agent/config/model_config.py, talos/agents/talos_agent/config/tool_config.py, talos/agents/talos_agent/config/plan_config.py, talos/agents/talos_agent/config/memory_config.py, talos/agents/talos_agent/config/mcp_config.py, talos/agents/talos_agent/config/blp_config.py, talos/agents/talos_agent/config/interrupt_config.py, talos/agents/talos_agent/config/artifact_config.py, talos/agents/talos_agent/plan/planner.py, talos/agents/talos_agent/plan/nodes.py, talos/agents/talos_agent/llm/system_prompt.py, talos/agents/talos_agent/llm/tool_binding.py, talos/agents/talos_agent/llm/message_ops.py, talos/agents/talos_agent/mcp/client.py, talos/agents/talos_agent/mcp/security.py, talos/agents/talos_agent/mcp/session_manager.py, talos/agents/talos_agent/blp/registry.py, talos/agents/talos_agent/blp/embedder.py, talos/agents/talos_agent/blp/nodes.py, talos/agents/talos_agent/tools/__init__.py, talos/agents/talos_agent/tools/code_interpreter.py, talos/agents/talos_agent/tools/canvas.py, talos/agents/talos_agent/tools/knowledge_base.py, talos/agents/talos_agent/tools/skill_injector.py, talos/agents/talos_agent/thread_name/nodes.py |
|
|
@@ -19,12 +19,12 @@ files:
|
|
|
19
19
|
- talos/libs/aegra-api/src/aegra_api/services/langgraph_service.py
|
|
20
20
|
- talos/libs/aegra-api/src/aegra_api/services/graph_factory.py
|
|
21
21
|
- talos/libs/aegra-api/src/aegra_api/services/streaming_service.py
|
|
22
|
-
- talos/
|
|
22
|
+
- talos/agents/talos_agent/graph.py
|
|
23
23
|
- talos/docker-compose.yml
|
|
24
24
|
- talos/deployments/docker/Dockerfile
|
|
25
25
|
related:
|
|
26
26
|
- features/aegra-api.md
|
|
27
|
-
- features/
|
|
27
|
+
- features/talos-agent.md
|
|
28
28
|
- features/mcp-servers.md
|
|
29
29
|
- features/observability.md
|
|
30
30
|
- features/deployment.md
|
|
@@ -56,7 +56,7 @@ talos/
|
|
|
56
56
|
│ │ ├── observability/ # Langfuse native + OTEL providers, Prometheus
|
|
57
57
|
│ │ └── main.py # FastAPI app factory + lifespan
|
|
58
58
|
│ └── alembic/ # 20 schema migrations (Jan 2025 → Mar 2026)
|
|
59
|
-
├──
|
|
59
|
+
├── agents/talos_agent/ # Reference LangGraph agent (graph, plan, tools, blp, mcp)
|
|
60
60
|
├── mcp-servers/
|
|
61
61
|
│ ├── clickup-mcp/ # ClickUp HTTP MCP (PM2-managed, ports 8200/8201)
|
|
62
62
|
│ └── toga-db-mcp/ # Multi-cluster MySQL read MCP (port 8000)
|
|
@@ -75,10 +75,10 @@ talos/
|
|
|
75
75
|
Redis BLPOP worker queue with lease-based crash recovery. SSE replay is
|
|
76
76
|
backed by an in-memory ring + Postgres `run_events` table. See
|
|
77
77
|
`features/aegra-api.md`.
|
|
78
|
-
3. **Reference agent (LangGraph)** — `
|
|
78
|
+
3. **Reference agent (LangGraph)** — `agents/talos_agent`. A ReAct graph with
|
|
79
79
|
optional planner gate, tool router, BLP semantic context selection,
|
|
80
80
|
running-summary memory, canvas artifacts, code-interpreter offload, and MCP
|
|
81
|
-
passthrough. See `features/
|
|
81
|
+
passthrough. See `features/talos-agent.md`.
|
|
82
82
|
4. **MCP fleet** — `clickup-mcp` and `toga-db-mcp`. Both FastMCP servers
|
|
83
83
|
exposed over HTTP, API-key gated, PM2-managed, with OneUptime heartbeats.
|
|
84
84
|
`toga-db-mcp` is the canonical read-only data plane across 4 prod clusters
|
|
@@ -21,7 +21,7 @@ files:
|
|
|
21
21
|
- talos/mcp-servers/toga-db-mcp/.env.example
|
|
22
22
|
related:
|
|
23
23
|
- ../architecture.md
|
|
24
|
-
-
|
|
24
|
+
- talos-agent.md
|
|
25
25
|
- deployment.md
|
|
26
26
|
---
|
|
27
27
|
|
|
@@ -36,7 +36,7 @@ PM2 process management:
|
|
|
36
36
|
legacy, and 16 non-prod environments. The **canonical** path for the agent
|
|
37
37
|
to read TOGa data.
|
|
38
38
|
|
|
39
|
-
Both are consumed by the `
|
|
39
|
+
Both are consumed by the `talos_agent` via the standard MCP loader and by
|
|
40
40
|
external clients (Claude Desktop, internal tooling) via API-key auth.
|
|
41
41
|
|
|
42
42
|
## Key files / entry points
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title:
|
|
2
|
+
title: talos_agent — LangGraph ReAct Agent with Plan, BLP, MCP, Canvas
|
|
3
3
|
framework: "2.0"
|
|
4
4
|
repo: talos
|
|
5
5
|
project: TOGa IQ
|
|
@@ -9,38 +9,38 @@ status: active
|
|
|
9
9
|
updated: 2026-06-16
|
|
10
10
|
owners: [akhokhani]
|
|
11
11
|
files:
|
|
12
|
-
- talos/
|
|
13
|
-
- talos/
|
|
14
|
-
- talos/
|
|
15
|
-
- talos/
|
|
16
|
-
- talos/
|
|
17
|
-
- talos/
|
|
18
|
-
- talos/
|
|
19
|
-
- talos/
|
|
20
|
-
- talos/
|
|
21
|
-
- talos/
|
|
22
|
-
- talos/
|
|
23
|
-
- talos/
|
|
24
|
-
- talos/
|
|
25
|
-
- talos/
|
|
26
|
-
- talos/
|
|
27
|
-
- talos/
|
|
28
|
-
- talos/
|
|
29
|
-
- talos/
|
|
30
|
-
- talos/
|
|
31
|
-
- talos/
|
|
32
|
-
- talos/
|
|
33
|
-
- talos/
|
|
34
|
-
- talos/
|
|
35
|
-
- talos/
|
|
36
|
-
- talos/
|
|
37
|
-
- talos/
|
|
38
|
-
- talos/
|
|
39
|
-
- talos/
|
|
40
|
-
- talos/
|
|
41
|
-
- talos/
|
|
42
|
-
- talos/
|
|
43
|
-
- talos/
|
|
12
|
+
- talos/agents/talos_agent/graph.py
|
|
13
|
+
- talos/agents/talos_agent/state.py
|
|
14
|
+
- talos/agents/talos_agent/context.py
|
|
15
|
+
- talos/agents/talos_agent/prompts.py
|
|
16
|
+
- talos/agents/talos_agent/tool_router.py
|
|
17
|
+
- talos/agents/talos_agent/model_helpers.py
|
|
18
|
+
- talos/agents/talos_agent/config/context.py
|
|
19
|
+
- talos/agents/talos_agent/config/model_config.py
|
|
20
|
+
- talos/agents/talos_agent/config/tool_config.py
|
|
21
|
+
- talos/agents/talos_agent/config/plan_config.py
|
|
22
|
+
- talos/agents/talos_agent/config/memory_config.py
|
|
23
|
+
- talos/agents/talos_agent/config/mcp_config.py
|
|
24
|
+
- talos/agents/talos_agent/config/blp_config.py
|
|
25
|
+
- talos/agents/talos_agent/config/interrupt_config.py
|
|
26
|
+
- talos/agents/talos_agent/config/artifact_config.py
|
|
27
|
+
- talos/agents/talos_agent/plan/planner.py
|
|
28
|
+
- talos/agents/talos_agent/plan/nodes.py
|
|
29
|
+
- talos/agents/talos_agent/llm/system_prompt.py
|
|
30
|
+
- talos/agents/talos_agent/llm/tool_binding.py
|
|
31
|
+
- talos/agents/talos_agent/llm/message_ops.py
|
|
32
|
+
- talos/agents/talos_agent/mcp/client.py
|
|
33
|
+
- talos/agents/talos_agent/mcp/security.py
|
|
34
|
+
- talos/agents/talos_agent/mcp/session_manager.py
|
|
35
|
+
- talos/agents/talos_agent/blp/registry.py
|
|
36
|
+
- talos/agents/talos_agent/blp/embedder.py
|
|
37
|
+
- talos/agents/talos_agent/blp/nodes.py
|
|
38
|
+
- talos/agents/talos_agent/tools/__init__.py
|
|
39
|
+
- talos/agents/talos_agent/tools/code_interpreter.py
|
|
40
|
+
- talos/agents/talos_agent/tools/canvas.py
|
|
41
|
+
- talos/agents/talos_agent/tools/knowledge_base.py
|
|
42
|
+
- talos/agents/talos_agent/tools/skill_injector.py
|
|
43
|
+
- talos/agents/talos_agent/thread_name/nodes.py
|
|
44
44
|
related:
|
|
45
45
|
- ../architecture.md
|
|
46
46
|
- aegra-api.md
|
|
@@ -49,8 +49,8 @@ related:
|
|
|
49
49
|
|
|
50
50
|
## Summary
|
|
51
51
|
|
|
52
|
-
`
|
|
53
|
-
`
|
|
52
|
+
`talos_agent` is the **reference LangGraph agent** shipped under
|
|
53
|
+
`agents/talos_agent/`. It is a production-grade ReAct loop with an optional
|
|
54
54
|
**planner** gate, an LLM-driven **tool router**, **BLP** semantic context
|
|
55
55
|
selection, running-summary memory compaction, a versioned **canvas** artifact,
|
|
56
56
|
**code-interpreter** offload (Bedrock AgentCore), and transparent **MCP**
|
|
@@ -202,4 +202,5 @@ Add a client override by configuring its assistant, not by forking the graph.
|
|
|
202
202
|
recursion limit. Raise the limit in graph build before raising expectations.
|
|
203
203
|
|
|
204
204
|
## Change history
|
|
205
|
-
- 2026-06-16 —
|
|
205
|
+
- 2026-06-16 — Renamed `examples/react_agent/` → `agents/talos_agent/`; sibling example dirs (`react_agent_hitl`, `subgraph_agent`, `subgraph_hitl_agent`) and example scripts removed. `aegra.json` now points `dependencies: ["./agents"]`; graph entry is `./agents/talos_agent/graph.py:graph`. Module import is `from talos_agent.graph import graph`. (akhokhani)
|
|
206
|
+
- 2026-06-16 — Initial feature doc. (akhokhani)
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
|-----|-----------|---------|-------|
|
|
5
5
|
| [Compass ASN → ItemFulfillment Auto-Creation](features/asn-to-item-fulfillment.md) | 2.0 | For Compass USA, posting an AdvanceShippingNotice (ASN) auto-creates the ItemFulfillment (IF) on the upstream SalesOrder. | _underscore/Model/Compass/AdvanceShippingNotice.php, api2/Component/Api/Cxml/Cxml.php, dbchanges2/Client_Compass/2026-06-11 - AsnItemTrackingNumberAcl.sql, dbchanges2/Client_Compass/2026-06-15b - BackfillSA132781ItemFulfillmentTracking.sql |
|
|
6
6
|
| [Compass: Item-Fulfillment TableViews (for-sales-order-items & for-sales-orders, tracking via bridge)](features/item-fulfillment-tracking-tableview.md) | 2.0 | Two sibling Compass TableViews in `Client_Compass` display fulfilled items in toga2-supply, both driven by `TableViews` / `TableViewJoins` / `TableViewFields` c | dbchanges2/Client_Compass/2026-06-10 - ItemFulfillmentsForSalesOrderItemsTableView.sql, dbchanges2/Client_Compass/2026-06-11 - ItemFulfillmentsForSalesOrdersTableView.sql, dbchanges2/Client_Compass/2026-06-15a - FixItemFulfillmentTrackingNumberJoins.sql |
|
|
7
|
-
| [Compass MITS PO → SO Item Linking](features/mits-po-to-so-item-linking.md) | 2.0 | MITS sends Compass inbound Purchase Orders (`POST /v2/purchase-orders`) against a Sales Order (`mitsSalesOrder`). | _underscore/Model/Compass/PurchaseOrder.php |
|
|
7
|
+
| [Compass MITS PO → SO Item Linking](features/mits-po-to-so-item-linking.md) | 2.0 | MITS sends Compass inbound Purchase Orders (`POST /v2/purchase-orders`) against a Sales Order (`mitsSalesOrder`). | _underscore/Model/Compass/PurchaseOrder.php, worker/crons/toga2/compass/workflow/3a_import_office_depot_purchase_orders.php |
|
|
8
8
|
| [Compass USA](profile.md) | 2.0 | Compass USA is a TOGA client running a multi-tier supply-chain commerce operation. | |
|
|
9
9
|
| [Compass Order Lifecycle & Data-Integrity Invariants](workflows/order-lifecycle-and-data-integrity.md) | 2.0 | End-to-end map of how a Compass order flows through the `Client_Compass` (2.0) database and the **expected raw-data shape** at each link/ASN/IF level. | |
|
|
@@ -6,10 +6,11 @@ project: _Underscore
|
|
|
6
6
|
client: compass-usa
|
|
7
7
|
type: client-feature
|
|
8
8
|
status: active
|
|
9
|
-
updated: 2026-06-
|
|
9
|
+
updated: 2026-06-16
|
|
10
10
|
owners: ["jcardinal"]
|
|
11
11
|
files:
|
|
12
12
|
- _underscore/Model/Compass/PurchaseOrder.php
|
|
13
|
+
- worker/crons/toga2/compass/workflow/3a_import_office_depot_purchase_orders.php
|
|
13
14
|
related:
|
|
14
15
|
- asn-to-item-fulfillment.md
|
|
15
16
|
---
|
|
@@ -90,7 +91,34 @@ USA and Canada share the parent handler unchanged.
|
|
|
90
91
|
other orders (e.g. SA114091 25→125) do not fit the split-PO 2× pattern and are a separate,
|
|
91
92
|
uninvestigated cause.
|
|
92
93
|
|
|
94
|
+
- **SECOND, INDEPENDENT source of the same cross-part links — the Office Depot worker cron
|
|
95
|
+
(fixed 2026-06-16).** The 2026-06-11 fix above only covered the `_underscore`
|
|
96
|
+
`_Model_Compass_PurchaseOrder` path. Office-Depot-originated POs are imported by the **1.0
|
|
97
|
+
worker** cron `worker/crons/toga2/compass/workflow/3a_import_office_depot_purchase_orders.php`,
|
|
98
|
+
which had its **own** off-by-one. It creates the bridge twice: (A) correctly, inline in the
|
|
99
|
+
`/purchase-orders` POST payload via `$lookupSalesOrderItemUuidFromPurchaseOrderLine` (keyed by
|
|
100
|
+
the PO item's lineNumber); then (B) a redundant second loop that paired the **API-returned**
|
|
101
|
+
PO items to queued SO links **by array index** (`$queuedSoiPoiLinks[$indPurchaseOrderItem]`),
|
|
102
|
+
assuming the response lists PO items in submission order. When the SO carries a config-parent
|
|
103
|
+
line (line 1), the returned order is offset, so path B inserted an extra bridge row pointing
|
|
104
|
+
each PO item at the SO line **one above** its real line — the same wrong-part scramble, and
|
|
105
|
+
the same downstream tracking misattribution. **Confirmed on SA132763:** each part (9X3V1UT,
|
|
106
|
+
920-012059) received its own tracking number plus a neighbor's, surfacing as duplicate IF
|
|
107
|
+
lines in NetSuite. **Fix:** path B now resolves each returned PO item's SOI by its own
|
|
108
|
+
`lineNumber` via the same `$lookupSalesOrderItemUuidFromPurchaseOrderLine`, and the dead
|
|
109
|
+
`$queuedSoiPoiLinks` is removed. The cleanup predicate is unchanged (`soi.itemId <> vi.itemId`
|
|
110
|
+
via `VendorItems`); for tracking, an item-level `ItemFulfillmentItems_TrackingNumbers` row is
|
|
111
|
+
spurious unless some ASN item carrying that tracking number maps (by actual item) to the IFI's
|
|
112
|
+
SOI — see `dbchanges2/Client_Compass/2026-06-16 - CleanupSA132763CrossLineTracking.sql`.
|
|
113
|
+
- **Scope still open:** ~116 PO items across other Compass orders still carry the consecutive
|
|
114
|
+
off-by-one bridge fingerprint (a `SalesOrderItems_PurchaseOrderItems` PO item linked to two
|
|
115
|
+
adjacent SO items). Only SA132763 was remediated; a broader reviewed backfill is pending.
|
|
116
|
+
|
|
93
117
|
## Change history
|
|
118
|
+
- 2026-06-16 — Found and fixed a SECOND source of cross-part bridge links: the Office Depot
|
|
119
|
+
worker cron `3a_import_office_depot_purchase_orders.php` paired API-returned PO items to SO
|
|
120
|
+
items by array index; now pairs by lineNumber. Remediated SA132763's spurious bridge +
|
|
121
|
+
cross-line tracking (dated dbchanges2 file). ~116 other orders still pending. (jcardinal)
|
|
94
122
|
- 2026-06-11 — Documented the over-fulfillment symptom and the phantom-IFI cleanup predicate;
|
|
95
123
|
remediated SA132657 and SA132641 (one dated dbchanges2 file each). (jcardinal)
|
|
96
124
|
- 2026-06-11 — Guarded `postPost` SO↔PO item linking to MR orders only; SA links come solely
|
package/package.json
CHANGED