Skip to content

Wave 1C: Recall Blast Radius client lot/ship-to intake - #1

Open
MsShawnP wants to merge 4 commits into
mainfrom
client-mode-2026-08
Open

Wave 1C: Recall Blast Radius client lot/ship-to intake#1
MsShawnP wants to merge 4 commits into
mainfrom
client-mode-2026-08

Conversation

@MsShawnP

@MsShawnP MsShawnP commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Wave 1C — Recall Blast Radius client mode

Repo is clean post-08-01 (no bug to fix). Adds client lot/ship-to intake.

Client mode — traces a client's own lot genealogy from a seed lot and scopes the recall: finished-goods lots affected, cases in channel, direct-cost range ($9–$14/case, the same constants as pipeline/graph.py), and the trading-partner notification list. Recall is a graph problem, not POS, so it reads two client files (genealogy edges + ship-to records) via the shared lailara_engagement scaffold — not the POS layer.

Golden — pure forward-trace pinned: a shared-ingredient seed scopes exactly its downstream fg-lots (270 cases across Walmart/Kroger/Costco/Sprouts) and excludes an unrelated ingredient's lot (the 999-case Whole Foods shipment) — the blast-radius scaling that is the tool's whole point.

Verification

  • Full suite 23 passed (+3 golden, +4 client-mode).
  • Drift clean (23 tokens); .canonical-allowlist not created.
  • Demo mode untouched; not merged, not on main, not deployed.

🤖 Generated with Claude Code

MsShawnP and others added 4 commits August 3, 2026 13:17
Traces a client's own lot genealogy + ship-to records to scope a recall from a
seed lot: forward graph trace (networkx), then finished-goods lots affected,
cases in channel, direct-cost range ($9-$14/case, same constants as the demo),
and the trading-partner notification list. Recall is a graph problem, not POS,
so it reads two client files via lailara_engagement (intake + preflight +
provenance) rather than the POS layer.

Adds client_mode.py, INPUT-SPEC.md, engagement.demo.yml, tests/test_demo_golden.py
(pure trace golden: shared-ingredient scope pinned, out-of-scope lots excluded),
tests/test_client_mode.py (§6). Demo mode untouched; full suite 23 passed; drift clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Prompt 6 step 0.e. core.hooksPath (the local pre-push guard) is inert on a
fresh clone, so a force-added active engagement.yml could otherwise reach a
deploy. Add an 'Engagement guard' step (python3 scripts/engagement_guard.py —
python3 is preinstalled on ubuntu-latest) right after checkout in the deploy
path, so the guard runs server-side regardless of local git config. No-op for
demo/clean checkouts (engagement.yml is gitignored).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds .github/workflows/client-mode.yml: installs the repo's deps + lailara_engagement
from the private repo pinned to v0.2.1 (LAILARA_ENGAGEMENT_TOKEN secret), then runs the
client-mode suite that previously importorskip-skipped the lib. The demo golden gate is
untouched and credential-free, so a PAT expiry degrades client-mode coverage only, never
the demo invariant. Install verified green in a clean venv locally (lib from the local
path, identical code to the tagged git URL).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant