Skip to content

throw-if-null/molecular

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Molecular

This repository currently contains the molecular CLI.

The Silicon daemon/orchestrator and the older worker-based execution model have been purged and are being rebuilt.

Build

go build ./cmd/molecular

CLI usage

molecular submit --task-id <id> --prompt <text>
molecular status <task-id>
molecular list [--limit N]
molecular cancel <task-id>
molecular logs <task-id> [--tail N]
molecular cleanup <task-id>
molecular doctor [--json]
molecular version

The CLI currently targets an HTTP API at http://127.0.0.1:8711.

Local observability

This repo includes a local dev tracing stack (OpenTelemetry Collector + Jaeger) using Podman Quadlets (systemd-managed containers).

Jaeger runs as v2 (Jaeger v1 is EOL).

Images are pinned in quadlets/ for repeatable local dev.

Quickstart:

mkdir -p "$HOME/.config/containers/systemd/molecular"
cp quadlets/* "$HOME/.config/containers/systemd/molecular/"
systemctl --user daemon-reload
systemctl --user start molecular-jaeger.service
systemctl --user start molecular-otel-collector.service
systemctl --user start molecular-tracegen.service

Jaeger UI: http://127.0.0.1:16686

Verify services are showing up:

curl -fsS http://127.0.0.1:16686/api/services

Full runbook: docs/observability-local-dev.md.

Troubleshooting (quadlets)

Check which Molecular units are present and their state:

systemctl --user list-units --type=service | grep -E 'molecular-'
systemctl --user list-unit-files | grep -E '^molecular-'
podman ps --all | grep -E 'molecular-(jaeger|otel-collector)|telemetrygen'

If a unit failed, inspect status + logs:

systemctl --user status molecular-jaeger.service molecular-otel-collector.service
journalctl --user -u molecular-jaeger.service -n 200 --no-pager
journalctl --user -u molecular-otel-collector.service -n 200 --no-pager

Common fixes:

# Clear failed state and retry
systemctl --user reset-failed molecular-jaeger.service
systemctl --user start molecular-jaeger.service

# If you previously ran a compose stack, old containers may conflict with names
podman ps -a | grep -E '(^|[[:space:]])(jaeger|otel-collector)([[:space:]]|$)'
podman rm -f jaeger otel-collector 2>/dev/null || true

# Port conflicts (Jaeger UI)
ss -ltnp | grep -E ':16686'

# Podman image short-name prompts under systemd (non-interactive)
# If logs show: "short-name resolution enforced but cannot prompt without a TTY"
# ensure quadlets use fully-qualified image names (e.g. docker.io/...).

# If tracegen can't connect to the collector (connection refused)
# ensure the collector OTLP receiver binds to 0.0.0.0 (not 127.0.0.1) inside the container.

# If you can't exec into a container to debug
# some images don't ship with /bin/sh; use a debug container on the same network.
# Example:
# podman run --rm --network molecular-observability docker.io/busybox:latest sh -lc 'nc -zvw3 molecular-jaeger 4317'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors