Menu
popagent
publicLatest change b818f7a5b3d0cc81e44c1449fde912c0c2f1a916 - Move observability PostgreSQL to port 5435 by AkurAI Build
# Repository rules ## Run - `bun run dev` (watch) / `bun run start` serves UI and API on `PORT` (default 3000). - The Bun process requires `DATABASE_URL` and the isolated `OBSERVABILITY_DATABASE_URL`. Secret-tool operations additionally require `POPAGENT_SECRET_KEY`; `POSTGRES_PASSWORD` and `OBSERVABILITY_POSTGRES_PASSWORD` bootstrap the Compose databases. 9Router, SearXNG, retention, environment, and managed-hook settings are documented in `.env.example`. - `bun test <file>` is the preferred inner loop for the changed contract. `bun test` runs the full suite before handoff. Run isolated protocol/UI-helper tests, TypeScript checks, and other deterministic toolchain checks locally for fast feedback. Use disposable local PostgreSQL when a storage test needs it. - Tests that call live 9Router models or shared services run on Titan. Start narrow, expand to the affected suite after green, and run the full suite once at the end; do not repeatedly pay for project-wide verification while editing. - Domain files name contract owners and environment-specific exceptions only; keep this test sequence canonical instead of repeating it per subsystem. - The running instance is `http://192.168.1.10:5180` on Titan. PostgreSQL container `popagent-postgres` binds only `127.0.0.1:5433`; durable data is in volume `popagent-postgres`. Observability PostgreSQL container `popagent-observability-postgres` binds only `127.0.0.1:5435` with durable state in volume `popagent-observability-postgres`. The `omniroute` container provides 9Router on `127.0.0.1:20128` with durable state in volume `omniroute-data`. SearXNG container `popagent-searxng` binds only `127.0.0.1:8889` and provides the agents' JSON web-search API. ## Source workflow - Git is local-only for this repository. Commit changes locally; do not push. - Local checks are the development loop. Copy changed files to `/home/olibuijr/Projects/popagent` on Titan only for live-service integration, authoritative full-suite verification, or deployment. - Restart `popagent.service` after backend route changes; Bun hot reload covers UI source changes but does not reliably replace the running `Bun.serve` route table. - Credentials belong in the ignored `.env`; application-managed secrets belong in PostgreSQL through the secret tools. Do not create or use `.secrets/`. - Every behavior, architecture, configuration, or operating-rule change must update the relevant `AGENTS*.md` domain file in the same change. Remove stale facts instead of preserving historical guidance or duplicating another domain. ## Documentation layout - `AGENTS.md` is an index only. Put operating rules and durable domain facts in the linked domain files. - `.agents/skills/` contains task-triggered, repeatable workflows. Skills must reference the canonical domain files instead of copying architecture or policy into their instructions. - Keep safety boundaries and facts required for every related change in the domain files; do not hide them exclusively in a skill whose loading is conditional. - Keep each `AGENTS*.md` file at or below 500 lines. Split any file that exceeds 500 lines into focused `AGENTS_$DOMAIN.md` files and add each new file to the index. ## Style Ponytail: use the smallest solution that works; prefer native or installed capabilities over new code; avoid speculative abstractions. Add tests for new observable contracts.