Files
qbit-db-performance/AGENTS.md
james.maesandClaude Opus 5.5 f8d25d1f7c feat(ui): plan viewer, db-performance UI API extension, app home widgets, help bundle and docs
Query plan record action and POST explain: plain or generic EXPLAIN,
and EXPLAIN (ANALYZE, BUFFERS) for single SELECTs in a rolled-back
READ ONLY transaction with statement_timeout, behind explain_analyze,
always audited, ANALYZE plans and parameters never stored. UI API
extension /qqq/v1/qbit/db-performance (overview, activity with live
text only for view_live_text, explain, statements/lookup) with a
committed OpenAPI fragment and contract test. Eight full-width typed
home widgets. Data-driven help bundle with a coverage test. README,
CHANGELOG and UPGRADE.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 12:06:37 -05:00

47 lines
2.2 KiB
Markdown

# AGENTS.md
This file provides guidance to Codex when working with code in this repository.
## Project Overview
**QBit DB Performance**: Database performance for QQQ apps in standard secured tables: PostgreSQL statement deltas, table and index analysis, live activity and blocking, connection capacity, audited read-only query plans, typed full-width dashboards, a versioned UI API and data-driven help. Collection and presentation are implemented; attribution, findings, alerts and health runtime integrations are developed separately. Design: docs/SPEC.md.
## Build Commands
```bash
./mvnw compile # Compile (always use the wrapper: Maven 3.10 cannot read the parent POM)
./mvnw test # Unit tests
./mvnw verify # Unit tests + JaCoCo gate (70% instructions, 90% classes)
```
## Architecture
**Entry point:** `DbPerfQBitProducer implements QBitMetaDataProducer<DbPerfQBitConfig>` in `com.kingsrook.qbits.dbperformance`. Component producers in this package (and below) are found by package scanning.
## Naming (owner rule)
- Tables are lowercase snake_case prefixed with the full qbit name: `db_perf_<name>`. The QQQ table name and the backend (SQL) name are identical; possible-value sources take the table name.
- Permissions use the full qbit name: `db_performance.<action>` (for example `db_performance.view`, `db_performance.manage_settings`).
- Qbit data lives in standard, visible QQQ tables, secured by permissions and record security locks, never hidden.
- Processes run as table or record actions, never in the nav.
## Code Style
- 3-space indentation, opening braces on the next line, `return (x);`.
- Javadoc flower-box comments (`/*****` with `**` lines) on every class and method.
- Fluent setters (`withX()`).
- Wrapper types (`Integer`, `Boolean`) in config and entities.
## Dependencies
- Java 21.
- Parent `com.kingsrook:qbit-build-parent:2.0.0` (qqq 4.0.0). The default-active `qqq-snapshot` profile imports `qqq-bom-pom:4.1.0-RC.11` ahead of it, as in qbit-quick-search (ADR-0007). Remove that activation when the parent moves to 4.1.
- Tests: JUnit 5, AssertJ.
## Release
- CircleCI qqq-orb 0.6.9.
- `develop` publishes SNAPSHOTs.
- A `release/*` branch publishes RCs (the orb bumps the version).
- A `v*` tag publishes the release.