mcp: project-plan — PBS IG Auto-Reply — Post-Cutover Polish Batch (6 items)
This commit is contained in:
parent
ce941c6e1b
commit
d54b930807
52
Sources/Dev/pbs-ig-autoreply-polish-0726.md
Normal file
52
Sources/Dev/pbs-ig-autoreply-polish-0726.md
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
created: '2026-07-27'
|
||||||
|
path: Sources/Dev
|
||||||
|
project: pbs-ig-autoreply-polish-0726
|
||||||
|
tags:
|
||||||
|
- pbs
|
||||||
|
- n8n
|
||||||
|
- automation
|
||||||
|
- flask
|
||||||
|
- mysql
|
||||||
|
- instagram
|
||||||
|
type: project-plan
|
||||||
|
---
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Six post-cutover fixes/features for the PBS IG comment→auto-reply automation, prepped on branches for Travis to review + deploy. Sibling to [[pbs-ig-autoreply-prod-cutover]] (thread 1008); this batch is the polish/bugfix pass after the prod cutover landed.
|
||||||
|
|
||||||
|
The six items:
|
||||||
|
|
||||||
|
1. **Blank recipe URL in first reply.** In `Sub-instra-reply-handle-new`, `Prep_FB_Msg` reads `recipeUrl` from the `Merge` node, but on the first-process path the URL isn't loaded yet (the cache-populating call in `instra-reel-cache-new` hasn't returned), so the DM goes out with a blank URL. Fix: source the URL reliably — leading candidate is returning `recipe_url` from the `instra-reel-cache-new` subworkflow so the caller has it in hand.
|
||||||
|
2. **Staging GChat error `Cannot read properties of undefined (reading '0')`** on `insta-webhook-new [v1]`, node "Call 'Sub-instra-reply-handle-new'", execution 7400 (~19:40 ET). Suspected an unmapped value; possibly correlated with prod activity (unconfirmed). Root-cause the `[0]` deref; get as far as static analysis allows.
|
||||||
|
3. **Recipe-select filter (pbs-video-manager).** On the project-management page and the platform-post individual record page, add a way to filter/narrow the recipe list when selecting.
|
||||||
|
4. **Split GChat spaces (full-wire).** Currently all GChat messages hit one space. Route into three: errors, admin messages, PBS alerts. Travis creates the 3 spaces + provides 3 webhook URLs; n8n side wired end-to-end (centralize in `SendPBSChat_New` chokepoint, callers pass a message-type).
|
||||||
|
5. **Reel title in PBS alerts.** For PBS alert messages that carry the reel ID, also include the title.
|
||||||
|
6. **Editable recipe keyword on projects page (pbs-video-manager).** After a recipe is linked, allow changing the recipe keyword on the projects page, using the same format as the platform-post individual record page.
|
||||||
|
|
||||||
|
## Locked Decisions
|
||||||
|
|
||||||
|
- **Access:** staging n8n via API key (`n8n.pbs-staging.herbylab.dev`). Key value pending from Travis → live verification of 1/2/4/5 deferred; all prep is static/repo-based.
|
||||||
|
- **Deploy:** prep-only. Workers commit on branches; Travis runs the staging deploy and any prod steps. No autonomous deploys.
|
||||||
|
- **Item 4 scope:** full-wire the n8n routing. Travis creates the 3 GChat spaces and pastes 3 webhook URLs into vault/env later.
|
||||||
|
- **Branches:** fresh off `main` in each repo. wordpress-install → `feat/n8n-alerting-and-reply-fixes`; pbs-video-manager → `feat/recipe-filter-and-keyword-edit`.
|
||||||
|
- **No production.** No `git push` (Travis reconciles from his tower). Staging is the only test target, and only Travis deploys to it.
|
||||||
|
|
||||||
|
## Open Items
|
||||||
|
|
||||||
|
- [ ] n8n API key value (blocks live verification of items 1/2/4/5).
|
||||||
|
- [ ] Execution 7400 input/error detail (confirms item 2 root cause).
|
||||||
|
- [ ] Three GChat space webhook URLs (item 4 env wiring — vars scaffolded, values pending).
|
||||||
|
|
||||||
|
## Phases
|
||||||
|
|
||||||
|
- **Worker A — web app (pbs-video-manager, items 3 + 6):** recipe-select filter on project-management + platform-post pages; editable recipe keyword on projects page mirroring the platform-post record page. Runs `zero-check` after (Python/Flask); `a-review` if >50 lines changed.
|
||||||
|
- **Worker B — n8n (wordpress-install, items 1 + 2 + 4 + 5, serialized):** items share the same single-line workflow JSONs, so one owner avoids clobbering. Order: 2 (root-cause) → 1 (URL fix) → 5 (title in alert) → 4 (GChat split, largest). Each item reported discretely with what needs a staging run to confirm.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Two workers max, one per repo — no cross-repo file contention. n8n items serialized inside Worker B because items 1/4/5 all touch `Sub-instra-reply-handle-new` / `SendPBSChat_New` / `PBS-Central-Error-Handler` and the JSON is minified single-line (merge-hostile).
|
||||||
|
- Workflow JSONs live in `wordpress-install/roles/dockers/files/n8n/workflows/`; env template in `.../n8n/.env.j2`; `stamp-workflows.py` stamps `[vN]` + substitutes `__PBS_DOMAIN__`.
|
||||||
|
- `SendPBSChat_New` (id `DrnZwagaEHZhR8wL`) is an executeWorkflowTrigger sub-workflow — the natural routing chokepoint for item 4. `PBS-Central-Error-Handler` (id `NDgjEmiULuSmfcN0`) is the errorWorkflow target — relevant to items 2/5.
|
||||||
|
- Prep-only + no API key means the whole batch lands as reviewable branch commits + a design note for item 4; Travis deploys to staging to verify.
|
||||||
Loading…
Reference in New Issue
Block a user