Skip to content

fix(n8n): register missing env vars in bootstrap registry and compose - #1196

Merged
POWERFULMOVES merged 2 commits into
mainfrom
fix/n8n-registry-env
Apr 10, 2026
Merged

POWERFULMOVES merged 2 commits into
mainfrom
fix/n8n-registry-env

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Apr 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • registry.json: Add AGENT_ZERO_EVENTS_TOKEN (agent-zero service) and GH_WEBHOOK_SECRET (github-app service) to bootstrap manifest — both were used in n8n flows but not registered, making them invisible to env-setup and secrets-funnel
  • docker-compose.n8n.yml: Add 4 env vars to n8n container environment block (DISCORD_WEBHOOK_URL, GH_WEBHOOK_SECRET, AGENT_ZERO_EVENTS_TOKEN, SUPABASE_SERVICE_ROLE_KEY) — these were only available via compose --env-file CLI interpolation, not injected into the container
  • patterns.yaml: Add docker-compose.n8n to chitSafePaths for z890-claude infra edits
  • github_webhook_processor.json: Update NATS stub comment to recommend a2ui-nats-bridge HTTP pattern (actual bridge deferred to feat/n8n-nats-bridge)

Context

Discovered during PR #1194 review trim — the n8n flows reference env vars that were never registered in the bootstrap manifest or exposed to the n8n container. Without these, approval_poller.json silently sends empty x-agent-token headers and github_webhook_processor.json fails HMAC verification.

Test plan

  • python -c "import json; data=json.load(open('pmoves/bootstrap/registry.json')); keys={v['key'] for svc in data['services'] for v in svc['variables']}; assert 'AGENT_ZERO_EVENTS_TOKEN' in keys; assert 'GH_WEBHOOK_SECRET' in keys; print('OK')"
  • grep -c 'AGENT_ZERO_EVENTS_TOKEN\|GH_WEBHOOK_SECRET\|DISCORD_WEBHOOK_URL\|SUPABASE_SERVICE_ROLE_KEY' pmoves/docker-compose.n8n.yml returns 4
  • python -c "import json; json.load(open('pmoves/n8n/flows/github_webhook_processor.json')); print('valid')" — JSON valid

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added optional environment variables for GitHub webhook verification and an agent events token; agent token will be auto-generated when absent.
    • Marked the n8n compose configuration as safe for automated operations.
  • Documentation

    • Clarified n8n webhook processor guidance to use an HTTP bridge endpoint.
    • Updated env-file loading guidance so shared secrets are sourced from the shared env file.

- registry.json: add AGENT_ZERO_EVENTS_TOKEN (agent-zero service,
  env.tier-agent) — used by approval_poller x-agent-token header
- registry.json: add GH_WEBHOOK_SECRET (github-app service,
  env.shared) — used by webhook processor HMAC verification
- docker-compose.n8n.yml: add DISCORD_WEBHOOK_URL, GH_WEBHOOK_SECRET,
  AGENT_ZERO_EVENTS_TOKEN, SUPABASE_SERVICE_ROLE_KEY to n8n container
  environment block (were only available via compose --env-file CLI
  interpolation, not inside the container)
- patterns.yaml: add docker-compose.n8n to chitSafePaths for infra edits
- github_webhook_processor.json: update NATS stub comment to recommend
  a2ui-nats-bridge HTTP pattern (deferred to feat/n8n-nats-bridge)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3a7a315d-386f-44e4-8a91-434d1f7b5ea8

📥 Commits

Reviewing files that changed from the base of the PR and between 4e10b6b and 4e10908.

📒 Files selected for processing (2)
  • pmoves/docker-compose.n8n.yml
  • pmoves/tools/brand_defaults.py

📝 Walkthrough

Walkthrough

This PR adds docker-compose.n8n to CHIT safe paths, introduces two optional env vars (GH_WEBHOOK_SECRET, AGENT_ZERO_EVENTS_TOKEN) in the service registry, updates n8n Docker Compose env_file ordering and comments, patches an n8n Function node message to reference an HTTP NATS bridge, and auto-generates the agent token when missing.

Changes

Cohort / File(s) Summary
CHIT Safe Paths
​.claude/hooks/damage-control/patterns.yaml
Added docker-compose.n8n to chitSafePaths allowlist.
Service Registry / Env vars
pmoves/bootstrap/registry.json
Added optional sensitive env vars: GH_WEBHOOK_SECRET (github-app) and AGENT_ZERO_EVENTS_TOKEN (agent-zero).
Compose / n8n env handling
pmoves/docker-compose.n8n.yml
Extended x-env-tier-worker env_file list to include env.shared before tier worker; documented that certain secrets come from env.shared to avoid override/blanking.
n8n workflow node
pmoves/n8n/flows/github_webhook_processor.json
Updated Function node message and TODO to reference HTTP bridge endpoint (a2ui-nats-bridge:9224) and example POST payload; stub behavior otherwise unchanged.
Defaults generator
pmoves/tools/brand_defaults.py
Ensure AGENT_ZERO_EVENTS_TOKEN is present: treat blanks/placeholders as missing and auto-generate a urlsafe 32‑byte token when absent.

Sequence Diagram(s)

(Skipped — changes are primarily config, registry, and a documentation string; no new multi-component control flow implemented.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

"I hopped through configs, tidy and spry,
Docker and webhooks beneath the sky,
Tokens now hidden, bridges in sight,
Pipelines hum softly into the night,
A rabbit's small cheer for code done right." 🐇✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: registering missing environment variables in bootstrap registry and Docker Compose configuration for n8n.
Description check ✅ Passed The description includes a detailed summary of changes, context, and a test plan with specific commands, meeting all required template sections except optional follow-up tasks.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/n8n-registry-env

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Apr 8, 2026

Copy link
Copy Markdown
Contributor

Docker Hardening Validation

Hardening Validation Report

Validated: Wed Apr 8 22:58:40 UTC 2026

Services Checked

PMOVES.AI Docker Hardening Validation

[INFO] Checking: pmoves/docker-compose.hardened.yml

[INFO] Validating: hi-rag-gateway-v2
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: extract-worker
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: langextract
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: presign
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: render-webhook
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: retrieval-eval
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: pdf-ingest
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: jellyfin-bridge
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: invidious-companion-proxy
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: ffmpeg-whisper
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: media-video
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: media-audio
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: hi-rag-gateway-v2-gpu
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: hi-rag-gateway-gpu
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: deepresearch
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: supaserch
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: publisher-discord
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: mesh-agent
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: nats-echo-req
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: nats-echo-res
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: publisher
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: analysis-echo
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: graph-linker
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: comfy-watcher
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: grayjay-plugin-host
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: agent-zero
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: archon
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: channel-monitor
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: pmoves-yt
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: notebook-sync
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: supabase_service_role_key
[WARN] No user directive
[WARN] No read_only directive
[WARN] No cap_drop: ["ALL"]
[WARN] No no-new-privileges
[WARN] No resource limits

[INFO] Validating: supabase_jwt_secret
[WARN] No user directive
[WARN] No read_only directive
[WARN] No cap_drop: ["ALL"]
[WARN] No no-new-privileges
[WARN] No resource limits

======================================
Summary: 120 passed, 40 warnings, 0 errors

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@pmoves/bootstrap/registry.json`:
- Around line 1239-1243: The help text for AGENT_ZERO_EVENTS_TOKEN incorrectly
states it is auto-generated by brand_defaults.py; update the "help" string for
the AGENT_ZERO_EVENTS_TOKEN entry so it accurately reflects current behavior:
state that the token is NOT auto-generated by brand_defaults.py, that operators
must supply a non-empty token if they want approval_poller to send the
x-agent-token header (otherwise approval_poller will send an empty header), and
optionally point to the correct generation mechanism or leave instructions for
creating the token; modify the registry.json entry for key
"AGENT_ZERO_EVENTS_TOKEN" (file "pmoves/env.tier-agent") accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4aa101e5-b721-42f7-96da-f6903a9544f6

📥 Commits

Reviewing files that changed from the base of the PR and between cabf29e and 4e10b6b.

📒 Files selected for processing (4)
  • .claude/hooks/damage-control/patterns.yaml
  • pmoves/bootstrap/registry.json
  • pmoves/docker-compose.n8n.yml
  • pmoves/n8n/flows/github_webhook_processor.json

Comment thread pmoves/bootstrap/registry.json

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4e10b6b429

ℹ️ 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".

Comment thread pmoves/docker-compose.n8n.yml Outdated
Two coordinated fixes for PR #1196 review threads:

1. docker-compose.n8n.yml: mirror the main compose's x-env-tier-worker anchor
   structure to load env.shared first, then env.tier-worker. Previously the
   local anchor only loaded env.tier-worker, which is why the PR added an
   environment-block override for DISCORD_WEBHOOK_URL, GH_WEBHOOK_SECRET,
   AGENT_ZERO_EVENTS_TOKEN, and SUPABASE_SERVICE_ROLE_KEY. Those overrides
   then empty-stringed working secrets when n8n is started standalone
   without shell env (compose environment: takes precedence over env_file:).

   Fix: expand the env_file list and remove the 4 redundant environment
   entries. Secrets flow naturally from env.shared via the bootstrap
   registry + secrets-funnel pipeline.

2. brand_defaults.py: implement AGENT_ZERO_EVENTS_TOKEN auto-generation
   in _ensure_agent_zero_defaults(). The registry.json help text
   ("Auto-generated by brand_defaults.py if blank") previously overstated
   this — no auto-gen existed. Now it does, matching the MCP_CLIENT_SECRET
   pattern in the same function.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Apr 9, 2026

Copy link
Copy Markdown
Contributor

Docker Hardening Validation

Hardening Validation Report

Validated: Thu Apr 9 18:42:49 UTC 2026

Services Checked

PMOVES.AI Docker Hardening Validation

[INFO] Checking: pmoves/docker-compose.hardened.yml

[INFO] Validating: hi-rag-gateway-v2
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: extract-worker
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: langextract
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: presign
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: render-webhook
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: retrieval-eval
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: pdf-ingest
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: jellyfin-bridge
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: invidious-companion-proxy
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: ffmpeg-whisper
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: media-video
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: media-audio
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: hi-rag-gateway-v2-gpu
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: hi-rag-gateway-gpu
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: deepresearch
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: supaserch
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: publisher-discord
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: mesh-agent
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: nats-echo-req
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: nats-echo-res
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: publisher
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: analysis-echo
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: graph-linker
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: comfy-watcher
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: grayjay-plugin-host
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: agent-zero
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: archon
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: channel-monitor
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: pmoves-yt
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: notebook-sync
[PASS] Non-root user: 65532:65532
[PASS] Read-only filesystem
[PASS] All capabilities dropped
[PASS] No-new-privileges enabled
[WARN] No resource limits

[INFO] Validating: supabase_service_role_key
[WARN] No user directive
[WARN] No read_only directive
[WARN] No cap_drop: ["ALL"]
[WARN] No no-new-privileges
[WARN] No resource limits

[INFO] Validating: supabase_jwt_secret
[WARN] No user directive
[WARN] No read_only directive
[WARN] No cap_drop: ["ALL"]
[WARN] No no-new-privileges
[WARN] No resource limits

======================================
Summary: 120 passed, 40 warnings, 0 errors

@POWERFULMOVES
POWERFULMOVES merged commit 1a8e36f into main Apr 10, 2026
18 checks passed
POWERFULMOVES pushed a commit that referenced this pull request Apr 10, 2026
Rebased from ea7f24d onto updated main after #1193/#1194/#1196/#1201 merges.

1. pr_monitor.py: _repo_name() prefers origin remote URL over gh repo view.
   On fork+upstream checkouts, gh auto-detect returns upstream (openclaw)
   instead of origin (POWERFULMOVES). Parses SSH + HTTPS URL formats.
   Changed --base default from PMOVES.AI-Edition-Hardened to main.

2. preflight.mk: pr-monitor and pr-monitor-strict targets now forward
   PR_MONITOR_REPO as --repo and default PR_MONITOR_BASE to main.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@POWERFULMOVES
POWERFULMOVES deleted the fix/n8n-registry-env branch April 21, 2026 13:05
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.

2 participants