[codex] add droid agent - #55
Conversation
|
@claude @codex review. Focus on critical issues: bugs, security vulnerabilities, logical errors, data loss risks, performance problems. Do NOT nitpick style, naming conventions, minor formatting, or subjective preferences — only flag issues that could break functionality or cause real harm in production. |
|
Claude finished @axisrow's task in 2m 1s —— View job PR Review: Add Droid Agent
Findings1. Supply chain risk: unscoped npm package name —
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f4a73358a7
ℹ️ 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".
| chown "${HAPI_USER}:${HAPI_USER}" "${DROID_DAEMON_LOG}" | ||
| if PATH="${HAPI_RUN_PATH}" command -v droid >/dev/null 2>&1; then | ||
| echo "Starting droid daemon --remote-access in background (logs: ${DROID_DAEMON_LOG})..." | ||
| run_as_hapi "stdbuf -oL droid daemon --remote-access 2>&1 | tee \"${DROID_DAEMON_LOG}\"" & |
There was a problem hiding this comment.
Gate remote Droid daemon behind opt-in config
When /home/hapi is persisted and the Droid CLI has been authenticated or registered, this starts droid daemon --remote-access on every container boot, which connects the container to Factory's relay as a remotely reachable Droid Computer. That exposes the hapi user's workspace and any configured git credentials through a new control plane even for deployments that only intended to bundle the local CLI; make this daemon opt-in via an environment variable or explicit setup step.
Useful? React with 👍 / 👎.
|
@claude @codex review. Focus on critical issues: bugs, security vulnerabilities, logical errors, data loss risks, performance problems. Do NOT nitpick style, naming conventions, minor formatting, or subjective preferences — only flag issues that could break functionality or cause real harm in production. Round notes:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b47bb3cdfe
ℹ️ 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".
| touch "${DROID_DAEMON_LOG}" | ||
| chown "${HAPI_USER}:${HAPI_USER}" "${DROID_DAEMON_LOG}" | ||
| echo "Starting droid daemon --remote-access in background (logs: ${DROID_DAEMON_LOG})..." | ||
| run_as_hapi "stdbuf -oL droid daemon --remote-access 2>&1 | tee \"${DROID_DAEMON_LOG}\"" & |
There was a problem hiding this comment.
Register Droid non-interactively before daemon startup
When DROID_DAEMON_ENABLED=true on a fresh /home/hapi volume, this background daemon has no way to answer Droid's first-run BYOM registration prompt. Factory's BYOM docs say droid daemon --remote-access prompts for a computer name when the machine is not registered, while the CLI reference exposes non-interactive registration as droid computer register [name] -y; because the entrypoint never registers or verifies an existing registration before starting the daemon, new containers can hang/fail before connecting to the relay. Please either register non-interactively with a configured name before this line, or fail early with a clear pre-registration requirement.
Useful? React with 👍 / 👎.
|
@claude @codex review. Focus on critical issues: bugs, security vulnerabilities, logical errors, data loss risks, performance problems. Do NOT nitpick style, naming conventions, minor formatting, or subjective preferences — only flag issues that could break functionality or cause real harm in production. Round notes:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 89c6f1f4ea
ℹ️ 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".
| ADD https://registry.npmjs.org/@google/gemini-cli/latest /tmp/npm-manifests/gemini-cli.json | ||
| ADD https://registry.npmjs.org/@github/copilot/latest /tmp/npm-manifests/copilot.json | ||
| ADD https://registry.npmjs.org/opencode-ai/latest /tmp/npm-manifests/opencode-ai.json | ||
| ADD https://registry.npmjs.org/droid/latest /tmp/npm-manifests/droid.json |
There was a problem hiding this comment.
Use the actual Droid CLI package
In the Docker build path I checked https://registry.npmjs.org/droid/latest, and it returns 403, so this new ADD fails before the image can install any CLI tools. Factory's own CLI reference documents installing Droid via curl -fsSL https://app.factory.ai/cli | sh rather than the unscoped droid npm package, so enabling this line makes every fresh docker build fail until the Dockerfile/cli-packages.txt use the correct installer or package.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
HALLUCINATION: I verified the exact Docker ADD URL from this environment and it is reachable. curl -sS -D - https://registry.npmjs.org/droid/latest -o /private/tmp/droid-latest.json returned HTTP/2 200 with JSON content, and npm view droid dist-tags latest --json returned { "latest": "0.144.2" }. The package metadata also identifies droid as "Factory Droid CLI - AI-powered software engineering agent" with bin droid and repository Factory-AI/factory. The Docker ADD https://registry.npmjs.org/droid/latest ... should not be changed based on a 403 that I cannot reproduce.
Summary
droid@latestto the bundled npm CLI package list and Docker cache-busting manifests.droid daemon --remote-accessas thehapiuser during container startup, logging to${HAPI_HOME}/droid-daemon.log.Validation
bash -n entrypoint.sh build.shpython -m pytest tests/unit/test_shell_scripts.pypython3 -m pytest tests/unit/