Skip to content

fix(docker): deepresearch Dockerfile line continuation bug - #851

Merged
POWERFULMOVES merged 5 commits into
mainfrom
fix/deepresearch-dockerfile-continuation
Mar 10, 2026
Merged

POWERFULMOVES merged 5 commits into
mainfrom
fix/deepresearch-dockerfile-continuation

Conversation

@POWERFULMOVES

@POWERFULMOVES POWERFULMOVES commented Mar 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Moves CVE override comment above the RUN block instead of after a trailing backslash
  • Removes the trailing backslash after the last pip install package
  • Fixes GHCR build failure: the inline comment after \ caused Docker to merge the RUN pip install and COPY instructions, breaking the build

Root Cause

# BEFORE (broken) — comment absorbed into next line
RUN pip install ... \
       "vllm==0.14.1" \
    # ^^^ CVE overrides: ...
COPY services/deepresearch /app/services/deepresearch  # ← merged into pip install

Same class of bug as PR #850 (archon Dockerfile).

Test plan

  • CI integrations-ghcr workflow passes for the deepresearch matrix entry
  • docker build -f pmoves/services/deepresearch/Dockerfile pmoves succeeds locally

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Updated production audit dashboard to reflect P2 final resolution status with consolidated tracking and verification outcomes
    • Updated P2 submodule tracker confirming all items resolved with explicit status annotations and dates
    • Clarified CVE override documentation in Docker configuration
  • Chores

    • Updated internal submodule references

hunnibear and others added 5 commits March 10, 2026 12:15
…rmed open

Checked all 11 open P2 items against current submodule SHAs on main:
- 6 CLOSED: BoTZ export syntax, PMOVES.YT MinIO creds, Pipecat MCP
  allowlist, A2UI env.shared export, A2UI NATS auth, A2UI env.tier-ui.sh
- 1 IMPROVED: Open-Notebook /healthz alias added (/metrics still absent)
- 4 CONFIRMED OPEN: Open-Notebook SurrealDB root:root, Pipecat metrics,
  tensorzero RUSTSEC advisories, tensorzero example creds (all Tier 2/3)

Also corrected Trivy triage claim: dashboard previously said CVE pins
were "added to Dockerfiles" — corrected to "triaged with remediation
plan" (archon pins not yet committed, deepresearch status TBD).

P2 tracker: 4 open + 1 improved / 17 total (down from 11 open)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…status

Submodule update (archon): added Dockerfile.server pip upgrade step for
crawl4ai>=0.8.0 (CVE-2026-26216) and langchain-core>=1.2.5 (CVE-2025-68664).

Dashboard corrections:
- deepresearch: ray==2.52.0 + vllm==0.14.1 were already committed in
  pmoves/services/deepresearch/Dockerfile:17-20 (previous correction
  over-stated they were missing)
- archon: now COMPLETE with Dockerfile override
- Trivy critical CVEs: 2/2 affected images remediated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Open-Notebook: SurrealDB creds parameterized (#3), /metrics endpoint
added (#5). Pipecat metrics (#10), tensorzero RUSTSEC (#13), tensorzero
example secrets (#14) closed with documented justification.

P2 tracker: 0 open / 17 total (all resolved)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Same line-continuation bug as archon: inline comment after backslash
caused the COPY instruction to be absorbed into the RUN command,
breaking the build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

Copy link
Copy Markdown
Contributor

Docker Hardening Validation

Hardening Validation Report

Validated: Tue Mar 10 21:01:58 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 commented Mar 10, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This PR updates submodule references for PMOVES-Open-Notebook and pmoves/integrations/archon, refreshes production audit documentation to reflect P2 final resolution status with itemized fixes and closed items, and reorganizes CVE-related comments in the deepresearch Dockerfile.

Changes

Cohort / File(s) Summary
Submodule Reference Updates
PMOVES-Open-Notebook, pmoves/integrations/archon
Updated commit hash pointers for both submodules with no functional code changes detected.
Production Audit Documentation
pmoves/docs/PRODUCTION_AUDIT_DASHBOARD.md, pmoves/docs/security/P2_SUBMODULE_TRACKER.md
Consolidated P2 final resolution narrative with explicit itemization of fixed/closed items, status dates, verification sweeps, and CVE triage outcomes. Shifted from multi-PR tracking to completion-centric reporting.
Dockerfile Comment Reorganization
pmoves/services/deepresearch/Dockerfile
Relocated CVE override context comment to precede pip install sequence; no package version or installation command changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

codex

Poem

🐰 P2 items checked, all boxed with care,
Submodules updated, floating through air,
Dashboard now shines with resolution so clean,
CVE comments neat—best tracked we've seen! ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: fixing a line continuation bug in the deepresearch Dockerfile.
Description check ✅ Passed The description provides a clear summary of changes, root cause explanation, and test plan, covering all essential information needed for review.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/deepresearch-dockerfile-continuation

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.

@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

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
pmoves/docs/security/P2_SUBMODULE_TRACKER.md (1)

55-59: ⚠️ Potential issue | 🟡 Minor

Document CLOSED outcomes in the resolution process.

Line 59 still says every tracker update should end as FIXED with a PR reference, but this PR legitimately closes several items as wontfix, accepted risk, or false positive. The process section should reflect that path too.

Suggested wording
-4. **Tracker update:** Mark status as FIXED with PR reference and date
+4. **Tracker update:** Mark status as FIXED or CLOSED with date and evidence
+   - **FIXED:** include the submodule PR reference and parent gitlink update after merge
+   - **CLOSED:** include the justification (for example, wontfix, accepted risk, or false positive) and verification date

As per coding guidelines, "Use the tracker to mark items as FIXED/ CLOSED with justification and dates; note when items move from OPEN to CLOSED."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/security/P2_SUBMODULE_TRACKER.md` around lines 55 - 59, Update
the "Tracker update" bullet (the line that currently mandates "Mark status as
FIXED with PR reference and date") to allow CLOSED outcomes beyond FIXED;
explicitly list permitted statuses such as FIXED, WONTFIX, ACCEPTED_RISK, and
FALSE_POSITIVE and require for each a justification and date, and when
applicable include the PR reference or other evidence; keep the surrounding
bullets ("Submodule branch", "PR", "Parent update", "Tracker update") intact but
replace the single-state requirement with this multi-outcome instruction so the
resolution process documents CLOSED outcomes consistently.
🤖 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/docs/security/P2_SUBMODULE_TRACKER.md`:
- Around line 7-14: The document header and final-resolution summary claim 17
total P2 items while the detailed list only shows IDs 1–16; update the tracker
so the totals and dashboard match the enumerated IDs by either adding the
missing P2 entry (the actual item and its status) or changing the stated totals
from 17 to 16 everywhere (including the "Last updated" line and the "Final
resolution (2026-03-10):" paragraph), and if any items were intentionally moved
to "ALL ITEMS CLOSED" add a brief rationale next to those IDs to satisfy the
"Maintain consistency" guideline.

---

Outside diff comments:
In `@pmoves/docs/security/P2_SUBMODULE_TRACKER.md`:
- Around line 55-59: Update the "Tracker update" bullet (the line that currently
mandates "Mark status as FIXED with PR reference and date") to allow CLOSED
outcomes beyond FIXED; explicitly list permitted statuses such as FIXED,
WONTFIX, ACCEPTED_RISK, and FALSE_POSITIVE and require for each a justification
and date, and when applicable include the PR reference or other evidence; keep
the surrounding bullets ("Submodule branch", "PR", "Parent update", "Tracker
update") intact but replace the single-state requirement with this multi-outcome
instruction so the resolution process documents CLOSED outcomes consistently.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2000f432-9d02-4c18-96bf-bdecc5a725c7

📥 Commits

Reviewing files that changed from the base of the PR and between f1c98a1 and 240bd0e.

📒 Files selected for processing (5)
  • PMOVES-Open-Notebook
  • pmoves/docs/PRODUCTION_AUDIT_DASHBOARD.md
  • pmoves/docs/security/P2_SUBMODULE_TRACKER.md
  • pmoves/integrations/archon
  • pmoves/services/deepresearch/Dockerfile

Comment on lines +7 to +14
Last updated: 2026-03-10 (all P2 items resolved — 0 open / 17 total)

## Open Issues

P2 triage sweep (2026-03-09) verified all 4 production-blocking items are now fixed. 11 open items remain (Tier 2/3 only).
**ALL P2 ITEMS RESOLVED.** Final sweep 2026-03-10 fixed #3 and #5, closed #10/#13/#14 with documented justification.

P2 verification sweep (2026-03-10) checked all 11 open items against current submodule SHAs on main. 6 items closed (fixes verified in submodules), 5 remained open.
Final resolution (2026-03-10): #3 and #5 fixed in Open-Notebook submodule, #10/#13/#14 closed with justification.

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.

⚠️ Potential issue | 🟡 Minor

Reconcile the P2 total before calling the tracker fully closed.

Line 7 and Lines 11-14 say there are 17 total P2 items, but the tables below enumerate 16 unique P2 IDs (1 through 16). Please either add the missing item or change the totals here and in the dashboard; otherwise the final-resolution summary is internally inconsistent.

As per coding guidelines, "Maintain consistency between tracker entries and dashboard, and clearly label any items moved to 'ALL ITEMS CLOSED' with rationale."

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pmoves/docs/security/P2_SUBMODULE_TRACKER.md` around lines 7 - 14, The
document header and final-resolution summary claim 17 total P2 items while the
detailed list only shows IDs 1–16; update the tracker so the totals and
dashboard match the enumerated IDs by either adding the missing P2 entry (the
actual item and its status) or changing the stated totals from 17 to 16
everywhere (including the "Last updated" line and the "Final resolution
(2026-03-10):" paragraph), and if any items were intentionally moved to "ALL
ITEMS CLOSED" add a brief rationale next to those IDs to satisfy the "Maintain
consistency" guideline.

@POWERFULMOVES
POWERFULMOVES merged commit db52c28 into main Mar 10, 2026
21 of 31 checks passed
@POWERFULMOVES
POWERFULMOVES deleted the fix/deepresearch-dockerfile-continuation branch March 11, 2026 10:08
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