Skip to content

feat: unified local dev setup with optional services#2041

Merged
nick-inkeep merged 19 commits intomainfrom
feat/local-dev-optional-services
Feb 17, 2026
Merged

feat: unified local dev setup with optional services#2041
nick-inkeep merged 19 commits intomainfrom
feat/local-dev-optional-services

Conversation

@nick-inkeep
Copy link
Collaborator

@nick-inkeep nick-inkeep commented Feb 16, 2026

Summary

One-command setup for optional local services (Nango, SigNoz, OTEL Collector, Jaeger).

pnpm setup-dev:optional    # clone companion repo into .optional-services/, start services, wire env vars
pnpm optional:stop         # stop services
pnpm optional:status       # show service health
pnpm optional:reset        # nuke volumes + re-setup from scratch

`setup-dev:optional` clones `agents-optional-local-dev` into `.optional-services/`, starts all Docker Compose profiles, automates credential provisioning (Nango secret key + SigNoz PAT), and writes 9 env vars to `.env`. Requires `pnpm setup-dev` to have been run first — does not chain core setup.

Available in both the monorepo and `create-agents` quickstart template.

Companion PR: inkeep/agents-optional-local-dev#7 — passes `NANGO_SECRET_KEY_DEV` through to the nango-server container.

What changed

New files

File What it does
`scripts/setup-optional.sh` Thin shim — clones companion repo, delegates to its `scripts/setup.sh`
`create-agents-template/scripts/setup-optional.sh` Identical copy for quickstart template (auto-synced via lint-staged hook)
`agents-docs/_snippets/setup-dev-optional-prereq.mdx` Shared prereq note (used by traces, nango, contributing docs)
`agents-docs/_snippets/setup-dev-optional-lifecycle.mdx` Shared lifecycle commands snippet

Modified files

File What changed
`package.json` 4 new scripts + lint-staged auto-sync for `setup-optional.sh` and `generate-jwt-keys.sh`
`create-agents-template/package.json` Same 4 scripts
`.gitignore` + `create-agents-template/.gitignore` Ignore `.optional-services/`
`AGENTS.md` Add setup + lifecycle commands to Quick Reference
`.env.example` Comment referencing `setup-dev:optional`
`scripts/generate-jwt-keys.sh` Unify monorepo/template versions (pipe-friendly output + PEM cleanup)

Quickstart bug fixes (discovered during doc audit)

Bug Fix
CLI output says `pnpm setup` (built-in pnpm command, silently no-ops) Changed to `pnpm setup-dev` in `create-agents/src/utils.ts`
README says `--skip-docker` (flag doesn't exist) Changed to `pnpm setup-dev:cloud` in `create-agents/README.md`
README says `DATABASE_URL` (wrong env var name) Changed to the actual two env var names

Also redesigned the CLI post-setup output: replaced dim `p.note()` with readable `p.log.success()`, reordered Dashboard above API, fixed misleading `inkeep push` instruction.

Documentation updates

File What changed
`traces.mdx` Added automated setup section with prereq/lifecycle snippets
`nango.mdx` Added automated setup section with prereq/lifecycle snippets
`contributing/overview.mdx` Unified traces/credentials into "Set up optional services"; added Docker prereq, auth init, idempotency tip
`environment-configuration.mdx` Added note that `setup-dev` handles `.env` creation and DB setup
`upgrading.mdx` Added Docker prerequisite for `pnpm upgrade-agents`
`troubleshooting.mdx` Added "Local environment not starting" recovery section

Key design decisions

  1. `.optional-services/` dotfolder — companion repo clones inside the project (not as a sibling directory). Matches `.devcontainer`, `.vscode` conventions. Gitignored.

  2. Thin shim + delegation — `setup-optional.sh` in the monorepo is ~50 lines. It clones/updates the companion repo and `exec`s into its `scripts/setup.sh`. All service logic lives in the companion repo so it can evolve independently.

  3. Nango key via `NANGO_SECRET_KEY_DEV` env varNangoHQ/nango#1050 added env var override for non-cloud envs. The script generates a UUID v4 key upfront and passes it to the container, avoiding post-boot DB queries.

  4. SigNoz PAT via REST API — register admin -> login (get JWT) -> create PAT. This is the only automated approach — SigNoz has no env-var admin provisioning (SigNoz#6001).

  5. `node -e` over `python3` — JSON parsing in the setup script uses Node (already a hard requirement) instead of python3 (not guaranteed on all systems).

  6. lint-staged auto-sync — committing `scripts/setup-optional.sh` auto-copies to `create-agents-template/scripts/` and stages it. Same pattern used for `generate-jwt-keys.sh`.

  7. No chaining — `setup-dev:optional` does not call `setup-dev`. Both monorepo and quickstart have identical semantics.

Test plan

  • `pnpm setup-dev:optional` — clones repo, starts services, writes 9 env vars, Nango + SigNoz auth both return 200
  • `pnpm optional:status` / `optional:stop` / `optional:reset` — lifecycle commands work
  • `create-agents` CLI output shows correct commands (`pnpm setup-dev`, `setup-dev:cloud`) and URLs (Dashboard at :3000)
  • Doc pages render correctly — traces, nango, contributing, troubleshooting, upgrading, environment-configuration all return 200 with expected content
  • `pnpm format:check` clean
  • `pnpm lint` clean

@vercel
Copy link

vercel bot commented Feb 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
agents-api Ready Ready Preview, Comment Feb 16, 2026 11:25pm
agents-docs Ready Ready Preview, Comment Feb 16, 2026 11:25pm
agents-manage-ui Ready Ready Preview, Comment Feb 16, 2026 11:25pm

Request Review

@changeset-bot
Copy link

changeset-bot bot commented Feb 16, 2026

⚠️ No Changeset found

Latest commit: de3293a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(4) Total Issues | Risk: Medium

🟠⚠️ Major (2) 🟠⚠️

Inline Comments:

  • 🟠 Major: agents-docs/content/typescript-sdk/credentials/nango.mdx:91-95 Environment variable name mismatch — uses NANGO_HOST but should be NANGO_SERVER_URL
  • 🟠 Major: scripts/setup-optional.sh:244-257 SigNoz PAT creation is not idempotent — creates duplicate keys on re-run

🟡 Minor (1) 🟡

🟡 1) scripts/setup-optional.sh:45 sed replacement vulnerable to special characters

Issue: The set_env_var function uses | as the sed delimiter. If value contains | characters (possible in base64-encoded keys, URLs with query params, or API-returned tokens), the sed command will break or produce corrupted output.

Why: While openssl rand -base64 32 and -hex 32 outputs are safe, the SIGNOZ_API_KEY extracted from the SigNoz API response could theoretically contain special characters. This is an edge case but worth defensive coding.

Fix: Escape sed special characters in the value before substitution:

set_env_var() {
  local file="$1" key="$2" value="$3"
  if [ ! -f "$file" ]; then
    echo "$key=$value" > "$file"
    return
  fi
  if grep -q "^${key}=" "$file" 2>/dev/null; then
    local tmp="$file.tmp.$$"
    # Escape sed special characters in value
    local escaped_value=$(printf '%s\n' "$value" | sed -e 's/[&/\|]/\\&/g')
    sed "s|^${key}=.*|${key}=${escaped_value}|" "$file" > "$tmp" && mv "$tmp" "$file"
  else
    echo "$key=$value" >> "$file"
  fi
}

Refs:

💭 Consider (1) 💭

💭 1) scripts/setup-optional.sh:242 python3 dependency undeclared

Issue: The script uses python3 -c for JSON parsing without checking if it is installed. While failure degrades gracefully (falls back to manual setup message), a pre-check or alternative would improve reliability.

Why: On minimal systems or older macOS, python3 may not be available. The script otherwise only depends on common shell utilities (curl, openssl, git, docker).

Fix: Either add a prerequisite check or use jq (commonly available in dev setups), or document the dependency. Since the script handles failures gracefully, this is optional.

Refs:


💡 APPROVE WITH SUGGESTIONS

Summary: This PR is well-structured and the automation significantly improves the local dev experience. However, there are two issues that should be addressed before merging:

  1. Documentation bug — The Nango manual setup docs use the wrong environment variable name (NANGO_HOST instead of NANGO_SERVER_URL), which will cause OAuth integrations to fail for users following the manual path.

  2. Idempotency violation — The PR claims to be idempotent, but the SigNoz PAT creation doesn't check for existing keys, leading to duplicate PATs on re-runs. The fix is straightforward: check if SIGNOZ_API_KEY already exists before creating a new PAT (similar to the existing pattern for NANGO_SECRET_KEY).

Both issues have clear fixes suggested in the inline comments.

Discarded (4)
Location Issue Reason Discarded
setup-optional.sh:227-239 Hardcoded SigNoz credentials visible in process list Local dev only; acceptable for dev automation
setup-optional.sh:26 $0 reference possibly missing Verified in source — diff rendering artifact, $0 is present
setup-optional.sh:26 Shell path resolution differs from sync-spicedb.sh Stylistic; $0 works correctly for executed (not sourced) scripts
.env.example:65 OTEL_SERVICE_NAME not in env.ts schema Env vars read directly by OTEL SDK don't need to be in the app schema
Reviewers (4)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-docs 1 0 0 0 1 0 0
pr-review-standards 3 1 1 0 1 0 0
pr-review-devops 10 0 0 0 0 0 4
pr-review-consistency 7 0 0 0 0 0 0
Total 21 1 1 0 2 0 4

Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Re-review: All Prior Feedback Addressed ✅

This delta review covers commit 8e72e2be ("fix: address PR review feedback"). All 3 issues from the previous review have been properly resolved:

Prior Issue Status Resolution
🟠 NANGO_HOSTNANGO_SERVER_URL in docs ✅ Fixed nango.mdx:91-96 now uses correct env var names
🟠 SigNoz PAT creation not idempotent ✅ Fixed setup-optional.sh:228-275 now checks for existing SIGNOZ_API_KEY before creating
🟡 sed replacement vulnerable to special chars ✅ Fixed setup-optional.sh:45-47 now escapes sed special characters

The implementation is clean and the fixes are correct. The script is now properly idempotent as claimed in the PR description.


✅ APPROVE

Summary: All prior review feedback has been addressed. The unified local dev setup script is well-structured, properly idempotent, and significantly improves the developer onboarding experience. Ship it! 🚀

Reviewers (0)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
Total 0 0 0 0 0 0 0

Note: Delta review — no sub-reviewers dispatched as all prior issues were resolved.

Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Re-review: Delta Changes Look Good ✅

This delta review covers 2 commits since the last approval (8e72e2be):

  • 17d85b90 — "fix: harden SigNoz PAT automation (password policy, JSON parsing)"
  • c6f7dc33 — "fix: quickstart devex baseline — correct CLI output, README, and docs"
Change Assessment
Password policy update (LocalDev123!LocalDev1234@) ✅ Necessary for SigNoz compatibility
curl flag change (-sf-s) ✅ Correct — allows response body capture for error handling
JSON parsing fix (d.get('data',d).get(...)) ✅ Robust handling of wrapped/unwrapped API responses
CLI output formatting (p.notep.log.success + p.log.message) ✅ Cleaner output
Command reference fix (pnpm setuppnpm setup-dev) ✅ Matches actual script names
README update (--skip-dockersetup-dev:cloud) ✅ Correct command reference
Docs polish (4 MDX files) ✅ Adds helpful prerequisite callouts, idempotency tips, troubleshooting

💭 Consider (1) 💭

💭 1) packages/create-agents/src/utils.ts:481 "When ran:" phrasing is grammatically awkward

Issue: The CLI output uses "When ran:" as a section header, which reads awkwardly compared to the original "Available services:" pattern.

Why: Minor UX polish — the meaning is clear, but "Services:" or "Available services:" would be more natural and consistent with CLI conventions.

Fix: Optional — consider reverting to "Available services:" or using "Services:" if you want to tighten the copy.

Refs: utils.ts:481


✅ APPROVE

Summary: The delta changes are all sound improvements — hardening the SigNoz automation, fixing command references, and polishing documentation. The only note is a minor phrasing preference in the CLI output ("When ran:" → "Services:"), which is entirely optional. Ship it! 🚀

Discarded (1)
Location Issue Reason Discarded
troubleshooting.mdx:86 Potentially broken link /quick-start/start-development Pre-existing issue — same link pattern exists elsewhere in the file (line 90) and predates this PR. LOW confidence.
Reviewers (3)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-docs 1 0 0 0 0 0 1
pr-review-devops 0 0 0 0 0 0 0
pr-review-consistency 1 0 1 0 0 0 0
Total 2 0 1 0 0 0 1

Note: Delta review — focused reviewer subset dispatched for docs/devops/consistency coverage.

Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Re-review: Delta Changes Look Good ✅

This delta review covers commit 44c31f68 ("fix: retrieve Nango secret key from DB and fix status/reset bugs") since the last approval (c6f7dc33).

Change Location Assessment
Remove --format flag from cmd_status L107-109 ✅ Compatibility fix — Go template syntax not available in all docker-compose versions
Clear stale keys in cmd_reset L122-124 ✅ Bug fix — prevents reset from leaving orphaned keys that skip re-generation
Retrieve Nango key from database L195-207 ✅ Improved approach — uses Nango's actual UUID key instead of injecting a random one
Fix SigNoz PAT role case L256 ✅ API compatibility — "admin""ADMIN"

Notable improvement: The Nango secret key retrieval change is a better architectural approach. The previous method generated a random key and tried to inject it via NANGO_SECRET_KEY_DEV. The new method queries Nango's internal database for the actual key it generated, ensuring consistency. The query has appropriate fallback handling if the database isn't accessible.


✅ APPROVE

Summary: All delta changes are sound improvements that fix real bugs (cmd_reset stale keys, cmd_status format incompatibility) and improve correctness (using Nango's actual key, SigNoz role case sensitivity). The unified local dev setup is ready to ship! 🚀

Reviewers (0)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
Total 0 0 0 0 0 0 0

Note: Delta review — orchestrator handled directly as changes were small and focused (single file, 4 discrete fixes).

Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

This is a re-review following 4 prior automated reviews that resulted in approvals. All issues from the initial review (env var name mismatch, SigNoz PAT idempotency, sed special character escaping) have been addressed in subsequent commits.

Summary

The unified local dev setup script is well-engineered:

Aspect Assessment
Idempotency ✅ Properly implemented — checks for existing keys before creating, graceful failures on re-run
Secret handling ✅ Nango key retrieved from DB, SigNoz PAT automated with appropriate fallbacks
Error handling ✅ Graceful degradation with manual fallback instructions
Documentation ✅ Comprehensive updates across 6 MDX files with clear automated + manual paths
AGENTS.md compliance ✅ New commands documented in quick reference

💭 Consider (2) 💭

💭 1) packages/create-agents/src/utils.ts:481 CLI output header phrasing

Issue: The section header On \pnpm dev`: uses a verb-phrase pattern, while other sections (Next steps:, Configuration:`) use noun phrases.

Why: Minor stylistic inconsistency with established CLI output conventions.

Fix: Optional — consider Services: to match the noun-phrase pattern used elsewhere.

Refs: utils.ts:481

💭 2) agents-docs/content/community/contributing/overview.mdx:101-125 Duplicate command without clarification

Issue: Both "Set up live traces" and "Set up credentials" sections show pnpm setup-dev:full without noting that one run sets up both services.

Why: A contributor reading sequentially might wonder if they need to run it twice.

Fix: Optional — add a note like "If you already ran pnpm setup-dev:full for traces, Nango is already configured."

Refs: overview.mdx:101-125


✅ APPROVE

Summary: This PR is ready to ship! The unified local dev setup significantly improves the developer onboarding experience by replacing 8+ manual steps with a single idempotent command. The script is well-structured with proper error handling, graceful degradation, and comprehensive documentation. All prior review feedback has been addressed. The two Consider items above are optional stylistic improvements — entirely up to you whether to address them. 🚀

Discarded (10)
Location Issue Reason Discarded
traces.mdx:89-111 Heading hierarchy asymmetry between Automated and Manual sections LOW confidence stylistic preference; both approaches are valid
nango.mdx:39-61 Duplicate video embed in automated section LOW confidence; video placement provides helpful context
upgrading.mdx:33-35 Wording could be more precise Functionally correct; adequate as-is
troubleshooting.mdx:76-87 New section structure Positive observation — well-structured
setup-optional.sh:249,259 python3 dependency undeclared Graceful degradation to manual instructions is appropriate
setup-optional.sh:234-235 Hardcoded SigNoz credentials Appropriate for local dev only; correctly implemented
AGENTS.md:10-12 New commands documentation Positive observation — correctly updated
.env.example:45-47 Optional services comment Positive observation — follows established pattern
package.json:75-78 npm scripts implementation Positive observation — correctly chains scripts
README.md:46 Command reference update Positive observation — accurate reference
Reviewers (4)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-standards 0 0 0 0 0 0 0
pr-review-docs 5 0 1 0 0 0 4
pr-review-devops 5 0 0 0 0 0 5
pr-review-consistency 4 0 1 0 0 0 3
Total 14 0 2 0 0 0 12

Note: Re-review after 4 prior approvals. All significant issues from initial review have been addressed.

@github-actions github-actions bot deleted a comment from claude bot Feb 16, 2026
Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(2) Total Issues | Risk: Low

🟡 Minor (1) 🟡

Inline Comments:

  • 🟡 Minor: scripts/setup-optional.sh:8 Usage docs suggest sh but script uses bash-specific echo -e

💭 Consider (1) 💭

💭 1) scripts/setup-optional.sh:33-34 External repo clone lacks optional integrity pinning

Issue: The bootstrap shim clones github.com/inkeep/agents-optional-local-dev over HTTPS without pinning to a specific commit, tag, or release. While the repo is first-party (same org), this means the setup script always pulls the latest main.

Why: For production or audited environments, reproducible setups are valuable. The risk is mitigated by same-org ownership and --ff-only pull preventing merge commits, so this is a defense-in-depth suggestion rather than a blocking concern.

Fix: Optional — consider adding a OPTIONAL_SERVICES_REF env var for users who want to pin:

COMPANION_REF="${OPTIONAL_SERVICES_REF:-main}"
git -C "$COMPANION_DIR" checkout "$COMPANION_REF" --quiet 2>/dev/null || true

Refs:

🕐 Pending Recommendations (1)

Delta Review Summary

This is the 14th automated review. The delta since the last review (290af679) consists of a single commit:

Commit Description Assessment
78f2189c refactor: replace setup-optional.sh with thin bootstrap shim ✅ Good architectural simplification

Architectural improvement: The refactor from a 300+ line self-contained script to a 57-line thin shim is a clean separation of concerns. The shim's responsibilities are now minimal:

  1. Clone the companion repo if needed
  2. Pull latest changes (with graceful degradation for local modifications)
  3. Verify companion script exists
  4. Delegate via exec bash

Positive observations from reviewers:

  • ✅ Clone failure cleanup handles partial directories correctly (line 37)
  • exec bash delegation preserves signal handling
  • ✅ lint-staged auto-sync maintains monorepo/template parity
  • CALLER_ENV_FILE and COMPANION_DIR exports provide clean interface to companion script

Prior Issues Status

All major issues from the initial review have been addressed in prior commits:

Prior Issue Status
🟠 NANGO_HOSTNANGO_SERVER_URL in docs ✅ Fixed
🟠 SigNoz PAT creation not idempotent ✅ Fixed (logic now in companion repo)
🟡 sed replacement vulnerable to special chars ✅ Fixed (logic now in companion repo)
🟠 Documentation mismatch (nango.mdx:52) 🕐 Pending

💡 APPROVE WITH SUGGESTIONS

Summary: The thin bootstrap shim is a clean architectural improvement that centralizes setup logic in the companion repo. The delta introduces one minor issue (sh vs bash compatibility for colored output) and one optional hardening suggestion (version pinning). The pending documentation issue at nango.mdx:52 should still be addressed — now that the shim delegates entirely to the companion repo, the docs are even more out of sync with reality. Ship it once the docs are updated! 🚀

Discarded (0)

No findings were discarded.

Reviewers (2)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-devops 4 0 1 0 0 0 0
pr-review-standards 1 0 0 0 1 0 0
Total 5 0 1 0 1 1 0

Note: Delta review — focused reviewer subset dispatched for devops/standards coverage. 3 INFO-level positive observations from pr-review-devops noted in summary.

@github-actions github-actions bot deleted a comment from claude bot Feb 16, 2026
- Replace `echo -e` with `printf '%b\n'` in bootstrap shim for POSIX
  compatibility when invoked via `sh` on dash-based systems
- Update nango.mdx to say "Generates a Nango secret key" instead of
  "Retrieves ... from the database" to match actual implementation
- Sync template copy of setup-optional.sh

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Re-review: All Prior Feedback Addressed ✅

This is the 15th automated review. The delta since the last review (78f2189c) consists of a single commit:

Commit Description Assessment
152e44b0 fix: address review feedback — POSIX echo and docs accuracy ✅ Both prior issues resolved

Delta Change Analysis:

Prior Issue Status Resolution
🟠 MAJOR: Documentation mismatch (nango.mdx:52) Fixed nango.mdx:52 now says "Generates a Nango secret key and wires it to your .env" — accurately reflects the env var override implementation
🟡 MINOR: POSIX compatibility (echo -e) Fixed setup-optional.sh:38,43,49 now uses printf '%b\n' — POSIX-compatible colored output

Verification performed:

  • ✅ Both setup-optional.sh copies are byte-for-byte identical (monorepo + quickstart template)
  • ✅ Documentation at nango.mdx:52 now accurately describes key generation behavior
  • printf '%b\n' is POSIX-compliant and will render colored output correctly on dash-based systems

🕐 Pending Recommendations (1)

  • 🟡 scripts/setup-optional.sh:8 Usage docs still say sh scripts/setup-optional.sh but the script ultimately delegates via exec bash — the shim itself uses POSIX-compatible constructs, so this works correctly. However, the package.json scripts also use sh invocation. This is acceptable since the shim's POSIX-compatible code runs first before delegating to bash for the companion script. No action required — leaving as informational context.

Summary of Full PR

The unified local dev setup feature has been thoroughly reviewed across 14 prior reviews. All issues have been addressed:

Aspect Assessment
Idempotency ✅ Checks for existing keys before creating
Secret handling ✅ Nango key generated via env var override, SigNoz PAT automated with idempotency check
Error handling ✅ Graceful degradation with manual fallbacks
POSIX compatibility ✅ Shim uses printf '%b\n' for portable colored output
Documentation ✅ Accurate description of key generation behavior
Template sync ✅ lint-staged auto-sync prevents drift
AGENTS.md ✅ New commands documented

✅ APPROVE

Summary: All prior review feedback has been addressed in this commit. The documentation now accurately describes the Nango key generation approach, and the shell script uses POSIX-compatible printf for colored output. The unified local dev setup feature is well-engineered and ready to ship! 🚀

Discarded (0)

No findings were discarded.

Reviewers (0)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
Total 0 0 0 0 0 1 0

Note: Delta review — no sub-reviewers dispatched. Delta changes were small (3 files) and addressed only prior review feedback. Orchestrator validated the fixes directly.

@github-actions github-actions bot deleted a comment from claude bot Feb 16, 2026
The companion repo renamed .env.example to .env.docker.example and
updated the placeholder from <REPLACE_WITH_BASE64_256BIT_ENCRYPTION_KEY>
to <REPLACE_WITH_NANGO_ENCRYPTION_KEY>. Also auto-generates
NANGO_DASHBOARD_PASSWORD, matching the Azure VM doc pattern.

Affected: docker-local, AWS EC2, Hetzner, GCP Compute Engine.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Full Review: All Changes Look Good ✅

This is a comprehensive full review (requested via --full-review) covering all 17 commits and 22 changed files. The PR has been through 15 prior delta reviews with all issues addressed — this full review validates the complete implementation.

Aspect Assessment
Architecture ✅ Clean separation — thin 57-line bootstrap shim delegates to external companion repo
Idempotency ✅ Properly implemented (verified in prior reviews)
POSIX Compliance ✅ Uses printf '%b\n' for portable colored output
Documentation ✅ 14 MDX files consistently updated with automated + manual setup paths
Template Sync ✅ lint-staged hooks prevent drift between monorepo and quickstart
AGENTS.md ✅ New commands documented in Quick Reference
CLI UX ✅ Clear "Next steps" flow: Start → Explore → Customize

Delta Since Last Review

The delta since the last automated review (152e44b0) consists of 1 commit:

Commit Description Assessment
b7bf87b9 fix: update stale .env.example references in 4 deployment docs ✅ Documentation accuracy fix

Delta Changes:

  • Updated .env.example.env.docker.example in 4 deployment docs (aws-ec2, docker-local, gcp-compute-engine, hetzner)
  • Updated placeholder names to match companion repo: <REPLACE_WITH_NANGO_ENCRYPTION_KEY>, <REPLACE_WITH_NANGO_DASHBOARD_PASSWORD>
  • Added auto-generation of NANGO_DASHBOARD_PASSWORD

These changes bring the 4 deployment docs in line with the existing azure-vm.mdx pattern and the actual companion repo file structure.

Summary of Full PR

The unified local dev setup significantly improves the developer onboarding experience:

Before: 8+ manual steps across multiple docs pages to set up Nango, SigNoz, OTEL, and Jaeger

After: Single command pnpm setup-dev:optional that:

  • Clones the companion repo (if not present)
  • Starts all services via Docker Compose
  • Auto-generates and wires 9 env vars to .env
  • Provides lifecycle commands (optional:stop/status/reset)

Key Design Decisions:

  1. Thin bootstrap shim — 57 lines in monorepo, 380 lines of logic in companion repo
  2. No chainingsetup-dev:optional is independent of setup-dev (users run both)
  3. lint-staged auto-sync — keeps monorepo and quickstart template scripts identical
  4. Graceful degradation — non-fatal waits with recovery guidance

Prior Issues (All Resolved)

Prior Issue Status
🟠 NANGO_HOSTNANGO_SERVER_URL in docs ✅ Fixed in 766203b5
🟠 SigNoz PAT creation not idempotent ✅ Fixed in 766203b5
🟡 sed replacement vulnerable to special chars ✅ Fixed in 766203b5
🟡 POSIX echo compatibility ✅ Fixed in 152e44b0
🟠 Documentation mismatch (nango.mdx) ✅ Fixed in 152e44b0

✅ APPROVE

Summary: This PR is ready to ship! The unified local dev setup is well-engineered with clean architecture, proper error handling, comprehensive documentation, and all prior review feedback addressed. The delta changes are straightforward documentation fixes. Ship it! 🚀

Reviewers (5)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-docs 1 0 0 0 0 0 0
pr-review-devops 0 0 0 0 0 0 0
pr-review-product 0 0 0 0 0 0 0
pr-review-consistency 0 0 0 0 0 0 0
pr-review-standards 0 0 0 0 0 0 0
Total 1 0 0 0 0 0 0

Note: Full review with 5 specialized reviewers dispatched. All returned clean — no actionable issues found. The 1 INFO-level finding from pr-review-docs confirms the delta changes are accurate.

@github-actions github-actions bot deleted a comment from claude bot Feb 16, 2026
- nango.mdx: Add missing .env creation step with NANGO_ENCRYPTION_KEY
  before starting Docker (Nango fails without it)
- nango.mdx: Fix docker-compose v1 → docker compose v2 syntax
- traces.mdx: Fix docker-compose v1 → docker compose v2 syntax
- traces.mdx: Replace misleading "comment out OTEL" instruction with
  correct local SigNoz endpoint (port 4318, not 14318)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Full Review: All Changes Look Good ✅

This is a comprehensive full review (requested via --full-review) covering all 18 commits and 22 changed files. The PR has been through 16 prior automated reviews with all issues addressed — this full review validates the complete implementation.

Aspect Assessment
Architecture ✅ Clean separation — thin 57-line bootstrap shim delegates to external companion repo
Idempotency ✅ Properly implemented (verified in prior reviews)
POSIX Compliance ✅ Uses printf '%b\n' for portable colored output
Documentation ✅ 14 MDX files consistently updated with automated + manual setup paths
Template Sync ✅ lint-staged hooks prevent drift between monorepo and quickstart
AGENTS.md ✅ New commands documented in Quick Reference
CLI UX ✅ Clear "Next steps" flow: Start → Explore → Customize

Delta Since Last Review

The delta since the last automated review (b7bf87b9) consists of 1 commit:

Commit Description Assessment
5c2dc4a3 docs: fix manual setup sections for Nango and traces ✅ Documentation accuracy improvements

Delta Changes:

  • Updated docker-composedocker compose (modern Docker CLI syntax)
  • Added local OTEL endpoint configuration instead of "comment out cloud config" instructions
  • Added missing Step 2 for configuring companion .env with Nango encryption key generation
  • Added <Warning> about NANGO_ENCRYPTION_KEY immutability

These changes improve the manual setup documentation paths, bringing them in line with the 4 deployment docs updated in the prior commit.

Summary of Full PR

The unified local dev setup significantly improves the developer onboarding experience:

Before: 8+ manual steps across multiple docs pages to set up Nango, SigNoz, OTEL, and Jaeger

After: Single command pnpm setup-dev:optional that:

  • Clones the companion repo (if not present)
  • Starts all services via Docker Compose
  • Auto-generates and wires 9 env vars to .env
  • Provides lifecycle commands (optional:stop/status/reset)

Key Design Decisions:

  1. Thin bootstrap shim — 57 lines in monorepo, setup logic in companion repo
  2. No chainingsetup-dev:optional is independent of setup-dev (users run both)
  3. lint-staged auto-sync — keeps monorepo and quickstart template scripts identical
  4. Graceful degradation — non-fatal waits with recovery guidance

Prior Issues (All Resolved)

Prior Issue Status
🟠 NANGO_HOSTNANGO_SERVER_URL in docs ✅ Fixed
🟠 SigNoz PAT creation not idempotent ✅ Fixed
🟡 sed replacement vulnerable to special chars ✅ Fixed
🟡 POSIX echo compatibility ✅ Fixed
🟠 Documentation mismatch (nango.mdx) ✅ Fixed

✅ APPROVE

Summary: This PR is ready to ship! The unified local dev setup is well-engineered with clean architecture, proper error handling, comprehensive documentation, and all prior review feedback addressed. The delta changes are straightforward documentation fixes that improve the manual setup paths. Ship it! 🚀

Reviewers (4)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-docs 0 0 0 0 0 0 0
pr-review-devops 0 0 0 0 0 0 0
pr-review-consistency 0 0 0 0 0 0 0
pr-review-product 0 0 0 0 0 0 0
Total 0 0 0 0 0 0 0

Note: Full review with 4 specialized reviewers dispatched. All returned clean — no actionable issues found. The delta changes are documentation improvements that all reviewers validated as correct.

@github-actions github-actions bot deleted a comment from claude bot Feb 16, 2026
Copy link
Contributor

@claude claude bot left a comment

Choose a reason for hiding this comment

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

PR Review Summary

(0) Total Issues | Risk: Low

Full Review: All Changes Look Good ✅

This is a comprehensive full review (18th automated review) covering all 19 commits and 22 changed files. The PR has been through 17 prior automated reviews with all issues addressed — this full review validates the complete implementation.

Aspect Assessment
Architecture ✅ Clean separation — thin 57-line bootstrap shim delegates to external companion repo
Idempotency ✅ Properly implemented (verified in prior reviews)
POSIX Compliance ✅ Uses printf '%b\n' for portable colored output
Documentation ✅ 14 MDX files consistently updated with automated + manual setup paths
Template Sync ✅ lint-staged hooks prevent drift between monorepo and quickstart
AGENTS.md ✅ New commands documented in Quick Reference
CLI UX ✅ Clear "Next steps" flow: Start → Explore → Customize

Delta Since Last Review

The delta since the last automated review (5c2dc4a3) consists of 2 commits:

Commit Description Assessment
de3293a1 Merge remote-tracking branch 'origin/main' ✅ Merge commit only
4a7e153f perf: enable Turbopack filesystem cache (#2045) ✅ CI infrastructure — unrelated to PR scope

Delta Changes:

  • .github/workflows/ci.yml — Added Next.js build cache step
  • .github/workflows/cypress.yml — Added Next.js build cache step
  • agents-manage-ui/next.config.ts — Added turbopackFileSystemCacheForBuild: true

These are CI performance improvements merged from main and are completely unrelated to the optional services setup feature.

Summary of Full PR

The unified local dev setup significantly improves the developer onboarding experience:

Before: 8+ manual steps across multiple docs pages to set up Nango, SigNoz, OTEL, and Jaeger

After: Single command pnpm setup-dev:optional that:

  • Clones the companion repo (if not present)
  • Starts all services via Docker Compose
  • Auto-generates and wires 9 env vars to .env
  • Provides lifecycle commands (optional:stop/status/reset)

Key Design Decisions:

  1. Thin bootstrap shim — 57 lines in monorepo, setup logic in companion repo
  2. No chainingsetup-dev:optional is independent of setup-dev (users run both)
  3. lint-staged auto-sync — keeps monorepo and quickstart template scripts identical
  4. Graceful degradation — non-fatal waits with recovery guidance

Prior Issues (All Resolved)

Prior Issue Status
🟠 NANGO_HOSTNANGO_SERVER_URL in docs ✅ Fixed
🟠 SigNoz PAT creation not idempotent ✅ Fixed
🟡 sed replacement vulnerable to special chars ✅ Fixed
🟡 POSIX echo compatibility ✅ Fixed
🟠 Documentation mismatch (nango.mdx) ✅ Fixed

✅ APPROVE

Summary: This PR is ready to ship! The unified local dev setup is well-engineered with clean architecture, proper error handling, comprehensive documentation, and all prior review feedback addressed. The delta changes are CI infrastructure improvements from merging main — completely unrelated to the PR's feature scope. Ship it! 🚀

Reviewers (4)
Reviewer Returned Main Findings Consider While You're Here Inline Comments Pending Recs Discarded
pr-review-docs 0 0 0 0 0 0 0
pr-review-devops 0 0 0 0 0 0 0
pr-review-consistency 0 0 0 0 0 0 0
pr-review-product 0 0 0 0 0 0 0
Total 0 0 0 0 0 0 0

Note: Full review with 4 specialized reviewers dispatched. All returned clean — delta changes are CI infrastructure from merge commit, unrelated to PR scope. The 17 prior reviews comprehensively covered the optional services feature.

@github-actions github-actions bot deleted a comment from claude bot Feb 16, 2026
@nick-inkeep nick-inkeep merged commit fb2fdf0 into main Feb 17, 2026
11 checks passed
@nick-inkeep nick-inkeep deleted the feat/local-dev-optional-services branch February 17, 2026 03:40
@github-actions
Copy link
Contributor

🔎💬 Inkeep AI search and chat service is syncing content for source 'Inkeep Agent Framework Docs'

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.

1 participant

Comments