Skip to content

Conversation

@jrepp
Copy link
Owner

@jrepp jrepp commented Nov 20, 2025

User request: "look at all local branches for unmerged commits, create PRs if they are found by first merging origin/main and submitting the commit data"

This branch contains 7 unmerged commit(s). Ultra-aggressive resolution applied.

Co-Authored-By: Claude [email protected]

jrepp and others added 7 commits October 16, 2025 22:51
…rchestration

User request: "let's make a nomad setup memo - look at the current local binary testing setup and think about how to convert it to nomad - we still want it to be easy to run"

Created comprehensive Nomad setup guide covering:

1. **Why Nomad for Local Development**
   - Production parity (same orchestrator dev → prod)
   - Automatic supervision, health checks, service discovery
   - Resource limits, restart policies, rolling deployments
   - Comparison table: prismctl local vs prismctl nomad

2. **Easy-to-Use Wrapper: prismctl nomad**
   - `prismctl nomad start` - One-command stack startup
   - `prismctl nomad status` - Job and allocation status
   - `prismctl nomad logs <task>` - View task logs
   - `prismctl nomad ui` - Open Nomad web UI
   - `prismctl nomad stop` - Clean shutdown

3. **Nomad Job Specifications**
   - Complete job spec with 3 groups (admin, launcher, keyvalue)
   - Resource limits (CPU/memory), health checks, restart policies
   - Service discovery via Consul integration
   - Alternative Docker-based job spec for containers

4. **Implementation Guide**
   - Install instructions (macOS, Linux)
   - Job file structure and syntax
   - Go code for prismctl nomad command wrapper
   - Service dependency handling with templates

5. **Advanced Features**
   - Rolling deployments with auto-revert
   - Canary deployments for gradual rollouts
   - Multi-region setup for distributed deployments
   - Vault integration for secrets management

6. **Migration Path**
   - Phase 1: Hybrid (both local and nomad)
   - Phase 2: Nomad by default
   - Phase 3: Production deployment with same job files

7. **Troubleshooting Guide**
   - Nomad not starting, job allocation failures
   - Consul service discovery issues
   - Health check failures, resource constraints
   - Performance tuning recommendations

Key design goals:
- Maintain same ease of use as prismctl local start
- Enable production-like orchestration locally
- Support smooth migration from direct process execution
- Provide path from dev → staging → production

Benefits over current setup:
- Automatic process supervision and restart
- Built-in health checks and service discovery
- Resource isolation and limits
- Rolling deployments and canary releases
- Better matches production environment

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
… service selection

User request: "evaluate @docs-cms/memos/MEMO-035-nomad-local-development-setup.md for simplicity and time to value for a developer, we want to make it configurable at install time and runtime easily by any developer. rewrite as necessary - be creative to make multi-service flexible and fun"

Complete transformation focusing on developer experience:

**Time to Value: 30+ minutes → 60 seconds**
- Replaced manual Nomad/Consul installation with auto-installer
- Eliminated 470+ lines of static HCL with dynamic job generation
- Added `prismctl dev init` for one-time setup
- Added `prismctl dev start` with interactive service picker

**Interactive Configuration System**
- TUI service picker with live preview (fzf-style)
- Profile system: save/load/share favorite configurations
- Built-in presets: minimal, redis, messaging, postgres, full
- Configuration hierarchy: CLI flags → Interactive → Profiles → Presets
- Real-time estimates for startup time and memory usage

**Beautiful Developer Experience**
- Live TUI dashboard with real-time metrics (RPS, memory, health)
- Log streaming with one-key service selection
- Quick actions: restart, scale, open UIs with keyboard shortcuts
- Color-coded health status (green/yellow/red)
- Auto-troubleshooting with helpful error messages

**Runtime Flexibility**
- Hot add/remove services without full restart
- Dynamic scaling: `prismctl dev scale redis 3`
- Extensible service catalog (add ClickHouse, Grafana, custom tools)
- Watch mode for auto-reload on code changes
- CI mode with `--no-dashboard` flag

**Fun Extras**
- Easter eggs: random preset, chaos mode, demo data
- ASCII art on startup
- Stats tracking with achievements
- Startup time leaderboard

**Implementation Roadmap**
- 8-week plan with 6 phases (core CLI → dashboard → profiles → polish)
- Detailed CLI reference with all commands
- Extensibility guide for custom services

Document stats:
- 1107 lines → 780 lines (29% reduction despite more features)
- Setup complexity: High → Zero
- Fun factor: 😐 → 🚀

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
User request: "resolve conflicts on jrepp/nomad-dev-cluster and push updates to the branch"

Resolved conflict in MEMO-035-nomad-local-development-setup.md by keeping the enhanced
"Zero to Hero in 60 Seconds" version with interactive service picker, TUI dashboard,
and profile system (from jrepp/nomad-dev-cluster branch).

Changes from main:
- Remove build artifacts from git tracking (#7)
- Optimize prismctl local start with health checks and parallel startup (#5)
- Updated .gitignore to exclude docs/ build output
- Enhanced cmd/prismctl/cmd/local.go with improved local start functionality

The merged MEMO-035 focuses on developer experience with one-command setup,
interactive service selection, and production-like orchestration using Nomad.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
User request: "resolve conflicts on jrepp/nomad-dev-cluster and push updates to the branch"

Additional cleanup after merge:
- Truncated MEMO-035 to remove duplicate content from old version
- Removed docs/.nojekyll (build artifact)

The file now properly ends at Revision History section with the enhanced
"Zero to Hero in 60 Seconds" content.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <[email protected]>
Copilot AI review requested due to automatic review settings November 20, 2025 22:14
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR removes the entire MEMO-035 documentation file that described a proposed Nomad-based local development setup for the Prism stack. The memo detailed converting from direct binary execution (prismctl local start) to HashiCorp Nomad orchestration, including Nomad job specifications, CLI wrapper commands, and migration strategies.

Key Changes

  • Complete removal of MEMO-035 Nomad local development documentation
  • Eliminates proposed prismctl nomad command specifications
  • Removes Nomad job configuration examples and integration guides

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@mergify mergify bot added documentation Improvements or additions to documentation size/xs labels Nov 20, 2025
@codecov-commenter
Copy link

codecov-commenter commented Nov 20, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 30.59%. Comparing base (e862bec) to head (2dcc422).

❗ There is a different number of reports uploaded between BASE (e862bec) and HEAD (2dcc422). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (e862bec) HEAD (2dcc422)
python-client 1 0
Additional details and impacted files
@@             Coverage Diff             @@
##             main     #207       +/-   ##
===========================================
- Coverage   86.52%   30.59%   -55.94%     
===========================================
  Files          10        8        -2     
  Lines         631      572       -59     
  Branches       63        0       -63     
===========================================
- Hits          546      175      -371     
- Misses         77      397      +320     
+ Partials        8        0        -8     
Flag Coverage Δ
acceptance 30.59% <ø> (?)
integration 30.59% <ø> (?)
python-client ?
unittests 30.59% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mergify
Copy link

mergify bot commented Nov 20, 2025

🧪 CI Insights

Here's what we observed from your CI run for 2dcc422.

🟢 All jobs passed!

But CI Insights is watching 👀

Copy link

@mergify mergify bot left a comment

Choose a reason for hiding this comment

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

Automatically approving PR from repo owner

@mergify mergify bot added the queued label Nov 20, 2025
mergify bot added a commit that referenced this pull request Nov 20, 2025
mergify bot added a commit that referenced this pull request Nov 20, 2025
@mergify
Copy link

mergify bot commented Nov 21, 2025

This pull request has been removed from the queue for the following reason: checks failed.

The merge conditions cannot be satisfied due to failing checks:

You can check the last failing draft PR here: #210.

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio requeue comment.

@mergify mergify bot added dequeued and removed queued labels Nov 21, 2025
@mergify
Copy link

mergify bot commented Nov 24, 2025

Merge Queue Status Beta

🚫 The pull request has left the queue (rule: default)

This pull request spent 2 hours 59 minutes 18 seconds in the queue, including 1 hour 31 minutes 20 seconds waiting for CI.
The checks were run on draft #210.

Required conditions to merge
  • any of [🛡 GitHub branch protection]:
    • check-neutral = PR Status Check
    • check-skipped = PR Status Check
    • check-success = PR Status Check
  • any of [🛡 GitHub repository ruleset rule]:
    • check-neutral = PR Status Check
    • check-skipped = PR Status Check
    • check-success = PR Status Check
  • #review-threads-unresolved = 0 [🛡 GitHub repository ruleset rule]

Reason

The merge conditions cannot be satisfied due to failing checks

Failing checks:

Hint

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio requeue comment.

@mergify mergify bot removed the dequeued label Nov 25, 2025
@mergify
Copy link

mergify bot commented Nov 25, 2025

Merge Queue Status Beta

🚫 The pull request has left the queue (rule: default)

This pull request spent 31 minutes 29 seconds in the queue, including 27 minutes 50 seconds waiting for CI.
The checks were run on draft #226.

Required conditions to merge
  • any of [🛡 GitHub branch protection]:
    • check-neutral = PR Status Check
    • check-skipped = PR Status Check
    • check-success = PR Status Check
  • any of [🛡 GitHub repository ruleset rule]:
    • check-neutral = PR Status Check
    • check-skipped = PR Status Check
    • check-success = PR Status Check
  • #review-threads-unresolved = 0 [🛡 GitHub repository ruleset rule]

Reason

The merge conditions cannot be satisfied due to failing checks

Failing checks:

Hint

You may have to fix your CI before adding the pull request to the queue again.
If you update this pull request, to fix the CI, it will automatically be requeued once the queue conditions match again.
If you think this was a flaky issue instead, you can requeue the pull request, without updating it, by posting a @mergifyio requeue comment.

@mergify mergify bot added the queued label Nov 25, 2025
mergify bot added a commit that referenced this pull request Nov 25, 2025
mergify bot added a commit that referenced this pull request Nov 25, 2025
@mergify mergify bot added dequeued and removed queued labels Nov 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dequeued documentation Improvements or additions to documentation size/xs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants