Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
da2035d
feat: implement AST-based code intelligence indexing system
deanq Jan 28, 2026
2e96ea4
feat: implement MCP server for code intelligence integration with Cla…
deanq Jan 28, 2026
7a73745
chore: add MCP server configuration
deanq Jan 28, 2026
8284f2c
chore: allow PSF-2.0 license for MCP SDK dependencies
deanq Jan 28, 2026
ca71056
chore: expand allowed licenses for MCP and common dev dependencies
deanq Jan 28, 2026
23b0a14
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 28, 2026
efd9e26
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 28, 2026
affc5cc
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 29, 2026
3b707ab
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 29, 2026
b0e4855
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 29, 2026
daea6fa
fix: address PR #158 code review feedback
deanq Jan 29, 2026
6163131
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 30, 2026
20fc01b
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 30, 2026
0558c1c
Merge branch 'main' into deanq/ae-1923-code-intel-mcp-skill
deanq Jan 31, 2026
de7d0a5
feat: smart re-indexing and test output parser for code intel MCP
deanq Jan 31, 2026
1312641
feat: enforce MCP tool usage and eliminate bash command alternatives
deanq Jan 31, 2026
514fd68
feat: add Claude Code project-wide permissions and update project config
deanq Jan 31, 2026
8fb189b
build: update to allow-licenses
deanq Jan 31, 2026
733dce9
fix: add BSD license to allowed list for httpx dependency
deanq Jan 31, 2026
a581325
chore: remove dependency-review workflow
deanq Jan 31, 2026
f5581da
dev: CLAUDE.md ensures the use of mcp code intel for code exploration
deanq Feb 2, 2026
038cba2
fix: exclude NetworkVolume from undeploy list command
deanq Jan 31, 2026
1ace550
chore: remove deprecated handler generator files
deanq Feb 1, 2026
fcb0849
docs: remove deprecated handler file generation references
deanq Feb 1, 2026
036b3c1
test: remove deprecated handler_file references from test fixtures
deanq Feb 1, 2026
0b3bbe7
docs: remove deprecated handler file generation references
deanq Feb 1, 2026
c63c002
refactor(resources): centralize docker image configuration
deanq Feb 1, 2026
e75b447
chore(verify): add comprehensive verification scripts for image const…
deanq Feb 1, 2026
eabd28a
chore: format
deanq Feb 2, 2026
2d26f32
fix(tests): reload constants module in live load balancer tests
deanq Feb 2, 2026
5b234ea
fix: address PR 166 feedback comments
deanq Feb 2, 2026
072c1f9
feat: implement cross-platform preview support with arm64 detection
deanq Feb 2, 2026
20fb4e8
fix: mount archive at expected location for preview container startup
deanq Feb 2, 2026
28d882e
fix: map container port 80 instead of 8000 for preview
deanq Feb 2, 2026
32f926a
fix: use mothership from manifest in preview command
deanq Feb 2, 2026
1d73c1b
feat: integrate preview into build command with --preview option
deanq Feb 2, 2026
5cc7f37
Merge branch 'deanq/ae-1951-fix-deployment-hosting' into deanq/ae-196…
deanq Feb 2, 2026
f05b907
fix: address PR feedback comments on preview command implementation
deanq Feb 2, 2026
c28ec1a
build: remove platform-aware tag logic and use consistent tags
deanq Feb 2, 2026
20d3d0d
Merge branch 'main' into deanq/ae-1968-build-preview
deanq Feb 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 15 additions & 9 deletions docs/Flash_Deploy_Guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -1102,26 +1102,32 @@ On mothership boot:

## Testing & Debugging

### flash test-mothership
### flash build --preview

Local testing of mothership provisioning without deploying to RunPod.
Local testing of your distributed system without deploying to RunPod.

```bash
flash test-mothership
flash build --preview
```

**What it does**:
1. Loads flash_manifest.json from current directory
2. Creates temporary resource configs (prefixed with `tmp-`)
3. Simulates mothership provisioning locally
4. Displays resource creation output
5. Auto-cleanup on exit
1. Builds your project (creates archive, manifest)
2. Creates a Docker network for inter-container communication
3. Starts one Docker container per resource config:
- Mothership container (orchestrator)
- All worker containers (GPU, CPU, etc.)
4. Exposes mothership on `localhost:8000`
5. All containers communicate via Docker DNS
6. Auto-cleanup on exit (Ctrl+C)

**Use Cases**:
- Validate manifest structure before deployment
- Test resource provisioning logic
- Debug distributed function calls
- Test endpoint auto-discovery
- Verify container networking

**Code Reference**: `src/tetra_rp/cli/commands/test_mothership.py`
**Code Reference**: `src/tetra_rp/cli/commands/preview.py`

### Local Docker Testing

Expand Down
3 changes: 2 additions & 1 deletion scripts/verify-manifest-constants.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ BLUE='\033[0;34m'
NC='\033[0m'

REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
EXAMPLES_DIR="/Users/deanquinanola/Github/python/flash-examples/01_getting_started/01_hello_world"
: "${FLASH_EXAMPLES_DIR:="$REPO_ROOT/../flash-examples/01_getting_started/01_hello_world"}"
EXAMPLES_DIR="$FLASH_EXAMPLES_DIR"
TEST_RESULTS=()

echo -e "${BLUE}============================================================${NC}"
Expand Down
35 changes: 35 additions & 0 deletions src/tetra_rp/cli/commands/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,11 @@ def build_command(
"--use-local-tetra",
help="Bundle local tetra_rp source instead of PyPI version (for development/testing)",
),
preview: bool = typer.Option(
False,
"--preview",
help="Launch local test environment after successful build",
),
):
"""
Build Flash application for deployment.
Expand All @@ -214,6 +219,7 @@ def build_command(
flash build # Build with all dependencies
flash build --no-deps # Skip transitive dependencies
flash build --keep-build # Keep temporary build directory
flash build --preview # Build and launch local test environment
flash build -o my-app.tar.gz # Custom archive name
flash build --exclude torch,torchvision # Exclude large packages (assume in base image)
"""
Expand All @@ -226,6 +232,11 @@ def build_command(
console.print("Run [bold]flash init[/bold] to create a Flash project")
raise typer.Exit(1)

# Auto-enable keep_build if preview requested (preview needs build directory)
if preview:
keep_build = True
logger.debug("Preview mode: automatically enabling keep_build")

# Create build directory first to ensure clean state before collecting files
build_dir = create_build_directory(project_dir, app_name)

Expand Down Expand Up @@ -478,6 +489,30 @@ def build_command(
# Success summary
_display_build_summary(archive_path, app_name, len(files), len(requirements))

# Launch preview environment if requested
if preview:
console.print(
"\n[bold cyan]Launching multi-container preview...[/bold cyan]"
)
console.print("[dim]Starting all endpoints locally in Docker...[/dim]\n")

try:
from .preview import launch_preview

# Manifest is in .flash/flash_manifest.json
manifest_path = project_dir / ".flash" / "flash_manifest.json"

launch_preview(
build_dir=build_dir,
manifest_path=manifest_path,
)
except KeyboardInterrupt:
console.print("\n[yellow]Preview stopped by user[/yellow]")
except Exception as e:
console.print(f"[red]Preview error:[/red] {e}")
logger.exception("Preview launch failed")
raise typer.Exit(1)

except KeyboardInterrupt:
console.print("\n[yellow]Build cancelled by user[/yellow]")
raise typer.Exit(1)
Expand Down
Loading
Loading