fix(publishing): surface approval handoff state - #1120
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 54a67c6b62
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| action === "approve" ? null : meta.publish_approval_event_sent_at, | ||
| publish_started_at: action === "approve" ? null : meta.publish_started_at, | ||
| publish_completed_at: action === "approve" ? null : meta.publish_completed_at, | ||
| publish_event_sent_at: action === "approve" ? null : meta.publish_event_sent_at, |
There was a problem hiding this comment.
Keep publish_event_sent_at for already-published approvals
approve now always nulls meta.publish_event_sent_at; if an operator clicks Approve on a row that is already published, this update changes it to approved and removes the completion marker that the poller uses for dedupe (status=eq.approved + meta->>publish_event_sent_at=is.null in pmoves/n8n/flows/approval_poller.json). That makes previously published artifacts eligible for a second publish cycle (duplicate Discord/Jellyfin outputs) instead of staying terminal. This field should only be cleared for intentional requeues (e.g., publish_failed) or the Approve action should be blocked for published rows.
Useful? React with 👍 / 👎.
…ity hardening Fleet Networking & RustDesk: - KVM2 self-hosted RustDesk relay (hbbs+hbbr, systemd, UFW-locked) - Scripts: fix-kvm2-rustdesk-relay.sh, restart-jetson-rustdesk.sh (env var driven — HOSTINGER_KVM2_IP, RUSTDESK_RELAY_KEY, JETSON_IPS) - RUSTDESK_SELF_HOSTED.md deployment guide (sanitized, no secrets) - QR code generation instructions for mobile enrollment Security Hardening: - Network hardening: localhost defaults for all service bindings - 4090 laptop host hardening script - SSH key-only auth across 8 nodes (password disabled) - Gitignore: rustdesk QR images excluded from repo Infrastructure: - DeepResearch Dockerfile: add pmoves.chit COPY for CGP_SPEC_VERSION (Python files only, secrets manifests excluded from image layers) - TOPOLOGY.md: KVM2 RustDesk ports, updated node hostnames, Jetson status - AGNOTE4482 ACK: Z890-CLAUDE fleet networking claim signed Also includes merged PR content: - Hi-RAG embedding defaults aligned to Qwen3 2560d (#1122) - Pinokio Codex plugin + Agent Zero launcher (#1121) - Publishing approval handoff state (#1120) - TTS MCP bridge + expression registry (#1116) - Damage-control hooks Windows compat (#1123) - AGNOTE4482 fleet claim docs (#1127) - Dependency bumps (#1111, #1113, #1128) - Bootstrap SUPERSEDED_VALUES (#1112) - Various docs updates (#1115, #1117, #1119, #1124, #1125) - Publisher RPC idempotent guards (#1126) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ity hardening Fleet Networking & RustDesk: - KVM2 self-hosted RustDesk relay (hbbs+hbbr, systemd, UFW-locked) - Scripts: fix-kvm2-rustdesk-relay.sh, restart-jetson-rustdesk.sh (env var driven — HOSTINGER_KVM2_IP, RUSTDESK_RELAY_KEY, JETSON_IPS) - RUSTDESK_SELF_HOSTED.md deployment guide (sanitized, no secrets) - QR code generation instructions for mobile enrollment Security Hardening: - Network hardening: localhost defaults for all service bindings - 4090 laptop host hardening script - SSH key-only auth across 8 nodes (password disabled) - Idempotent authorized_keys injection (grep+append, never truncate) - Gitignore: rustdesk QR images excluded from repo Infrastructure: - DeepResearch Dockerfile: add pmoves.chit COPY for CGP_SPEC_VERSION (Python files only, secrets manifests excluded from image layers) - TOPOLOGY.md: KVM2 RustDesk ports, updated node hostnames, Jetson status - AGNOTE4482 ACK: Z890-CLAUDE fleet networking claim signed - setup-glances.sh: prefer uv over pip per CLAUDE.md Also includes merged PR content: - Hi-RAG embedding defaults aligned to Qwen3 2560d (#1122) - Pinokio Codex plugin + Agent Zero launcher (#1121) - Publishing approval handoff state (#1120) - TTS MCP bridge + expression registry (#1116) - Damage-control hooks Windows compat (#1123) - Various docs, deps, bootstrap updates (#1111-#1128) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Summary
Testing
pmoves/n8n/flows/approval_poller.jsonnpm run typecheckinpmoves/uinpm exec -- eslint app/dashboard/studio-board/page.tsx --max-warnings=0inpmoves/uiReviewer Notes
codex/agnote4482-publisher-flowlane.publisher.py/ test rewrite from that branch because it overlapped with newer publisher state-sync work and would have regressedpublish_request_idhandling onmain.