Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
b0085d6
Add Docker runtime observability foundation
Sep 22, 2026
2a0715f
Document runtime observability API and dashboard design
Sep 22, 2026
45ff7f7
feat(agents-api): expose runtime observations
Sep 22, 2026
0a10d5b
Add Runtime observability dashboard
Sep 22, 2026
ba847d8
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 22, 2026
745f51a
Extend Runtime observability dashboard
Sep 22, 2026
41ac24b
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 22, 2026
2b8dd07
Adapt Runtime observations to deployment providers
Sep 22, 2026
d74d6bd
Add microsandbox Runtime observations
Sep 22, 2026
2657a36
Merge remote-tracking branch 'origin/codex/runtime-observability-dock…
Sep 22, 2026
8e33f17
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 22, 2026
4bdecc5
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 22, 2026
ed326b1
Merge remote-tracking branch 'origin/codex/runtime-observability-dock…
Sep 22, 2026
f6381b4
Keep microsandbox metrics helper dependency-light
Sep 22, 2026
1f1a446
Fence microsandbox observation identity and deadline
Sep 22, 2026
7643824
Refine Runtime dashboard visualizations
Sep 22, 2026
c2fce9e
Fix microsandbox cumulative CPU observation
Sep 22, 2026
ff8d490
Add Runtime live-window trend charts
Sep 22, 2026
15cccdd
Fix Runtime observation error assertion
Sep 22, 2026
e2656aa
Derive live CPU utilization from cumulative samples
Sep 22, 2026
fd8a778
Add Runtime live range controls
Sep 22, 2026
07c8579
Document Runtime monitoring dashboard
Sep 22, 2026
8de7f12
Add bounded Runtime history export seam
Sep 22, 2026
fabcba4
Add optional OTLP Runtime history export
Sep 22, 2026
a1513ff
Add singleton Runtime history sampling
Sep 22, 2026
7169eab
Add bounded Runtime history query seam
Sep 22, 2026
2d48083
Expose bounded Runtime history API
Sep 22, 2026
1771074
Refine Runtime live dashboard trends
Sep 23, 2026
dd2eb57
Add durable ClickHouse Runtime history
Sep 23, 2026
29f646c
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 23, 2026
d6aef0d
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 23, 2026
30e9b0e
Merge remote-tracking branch 'origin/codex/runtime-observability-micr…
Sep 23, 2026
8015bc7
Fix managed Runtime base image digest
Sep 23, 2026
11f9285
Merge remote-tracking branch 'origin/codex/runtime-observability-micr…
Sep 23, 2026
7ecf1f3
Make Runtime trend charts interactive
Sep 23, 2026
c2b1cb8
Stabilize durable Runtime dashboard refreshes
Sep 23, 2026
3ad411f
Merge remote-tracking branch 'origin/codex/runtime-observability-micr…
Sep 23, 2026
af8d83f
Serialize Dashboard Runtime refreshes
Sep 23, 2026
c129744
Guard Runtime refresh trigger races
Sep 23, 2026
0361f94
Place timeline controls below each runtime chart
Sep 23, 2026
e7c6f7a
Adopt Grafana-style runtime chart zoom
Sep 23, 2026
b32a8c4
Show sparse runtime samples explicitly
Sep 23, 2026
ab60de2
Redraw updated runtime chart data
Sep 23, 2026
8635ead
Fix dense runtime metric chart scaling
Sep 23, 2026
5a26e1d
Keep runtime history continuous by allocation
Sep 23, 2026
17aff23
Merge remote-tracking branch 'origin/main' into codex/runtime-observa…
Sep 23, 2026
1d6cf99
Persist canonical Session token throughput
Sep 23, 2026
8cc7bcd
Merge remote-tracking branch 'origin/codex/runtime-observability-micr…
Sep 23, 2026
0fa62fa
Merge remote-tracking branch 'origin/main' into codex/pr30-postgres-h…
SaladDay Sep 23, 2026
0dafa92
Fix microsandbox metrics incarnation timing precision
SaladDay Sep 23, 2026
c1e669c
Recover native millisecond precision from CLI decimal rounding
SaladDay Sep 23, 2026
e8efa84
Document native runtime metrics incarnation contract
SaladDay Sep 23, 2026
4c0bf00
Allow Session token metrics through Collector
Sep 23, 2026
d07ce3f
Preserve sparse runtime history gaps and remove backend-specific UI copy
SaladDay Sep 23, 2026
4c58e12
test: add opt-in real-model runtime history acceptance
SaladDay Sep 23, 2026
66e73d8
Use Core database history by default with independent optional export
SaladDay Sep 23, 2026
094b0df
Persist bounded Runtime history in existing PostgreSQL store
SaladDay Sep 23, 2026
564b59f
Remove unused ClickHouse dependency closure
SaladDay Sep 23, 2026
78e3e24
Align history schema regression with canonical token metrics
SaladDay Sep 23, 2026
20da3b8
Verify PostgreSQL history and preserve explicit observation gaps
SaladDay Sep 23, 2026
1db70b5
Wait for deterministic live Runtime browser samples
SaladDay Sep 23, 2026
752bfa9
Reconcile PR head while removing obsolete Collector configuration
SaladDay Sep 23, 2026
0c86378
Keep historical charts limited to supported measurements
SaladDay Sep 23, 2026
e5b3247
Clarify retained history start metadata
SaladDay Sep 23, 2026
0708ec2
Fence live CPU deltas across restarts and omit derived historical uptime
SaladDay Sep 23, 2026
b0b08d0
Select review depth according to change risk
SaladDay Sep 23, 2026
a5767a1
Merge remote-tracking branch 'origin/main' into codex/pr30-postgres-h…
SaladDay Sep 23, 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
7 changes: 7 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ AGENTS_API_PROXY_TARGET=http://127.0.0.1:8091
# Preferred: plaintext execution-tenant bearer file read only by the local
# Vite server. If unset, Web also checks this conventional path automatically.
AGENTS_API_PROXY_TOKEN_FILE=~/.parsar/agents-api/web-token
# Optional server-only OTLP/HTTP Runtime history exporter configuration.
# When unset, current observations and the Dashboard require no telemetry backend.
# Runtime history uses the Core PostgreSQL database with 30-second periodic sampling.
# Optional sampling/OTLP export overrides: services/agents-api/runtime-history/README.md
# AGENTS_API_RUNTIME_HISTORY_FILE=/absolute/path/runtime-history.json
# Set sample_interval_seconds (5..300) in that server-only file to enable the
# execution-owner singleton sampler. Omit it for on-read export only.

# Alternative server-side value. Never use a VITE_ prefix, and do not set this
# together with AGENTS_API_PROXY_TOKEN_FILE.
Expand Down
6 changes: 3 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ execution truth or expose server-side credentials in the browser. Update
architecture and generated contracts with changes. Run `make check` before
reporting completion.

After implementation and verification, request an independent blind review with
only requirements, acceptance criteria, boundaries, repository path and baseline.
Fix in-scope blockers and review again. Never use `codex exec` for this review.
Choose independent blind review according to change risk; follow CONTRIBUTING.md
for reviewer context and re-review criteria. Small, verified fixes may use self-review.
Never use `codex exec` as a substitute reviewer.

Documentation and code comments are English; user-facing copy may be bilingual.
40 changes: 36 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,13 @@ hashes. Do not automatically sync or delete the original repository's Core.

Develop in an isolated worktree on a feature branch and submit a PR. Do not edit
or commit implementation directly on main. An empty repository bootstrap commit
is only the comparison base for the first import PR. After validation, conduct an
independent blind review using only requirements, acceptance criteria, boundaries,
repository path and comparison baseline. Fix in-scope blockers before delivery.
Do not use `codex exec` as a substitute reviewer.
is only the comparison base for the first import PR. Choose review depth by risk. Substantial changes and changes involving security,
shared lifecycle ownership or uncertain cross-package behavior need an independent
blind review after validation. Give the reviewer only requirements, acceptance
criteria, boundaries, repository path and comparison baseline. Small, verified
fixes may use self-review, including focused corrections after a blind review;
repeat independent review when a correction materially changes the design or risk.
Fix in-scope blockers before delivery. Do not use `codex exec` as a substitute reviewer.

The Core Web is an administrator console for execution and resource operations;
business collaboration remains in Parsar. Environment Template management shares
Expand Down Expand Up @@ -291,6 +294,35 @@ starts the Runtime and its daemon authenticates and initiates the Core connectio
Core verifies principal ownership and the exact Environment binding. These are
management responsibilities, not separate execution architectures.

Runtime telemetry uses a separate read-only service boundary documented in
[`contracts/agents-api/runtime-observability.md`](contracts/agents-api/runtime-observability.md).
Resolve durable Session, Environment and Runtime-instance identity before selecting
a provider source. Observation never extends a lease or changes compute lifecycle.
Keep observed zero, unavailable data and unsupported Runtime modes distinct. Metrics
may inform operators, but automatic suspension requires durable Core-owned activity
state and must not use a monitoring backend as lifecycle authority.
Managed Docker observes one non-streaming Inspect/Stats sample. Managed microsandbox
observes the exact persisted compute generation through the existing one-shot helper
and pinned native CLI metrics report, with SDK identity checks before and after
observation. Derive compute start from the same native sample timestamp and precise
uptime; never subtract rounded uptime from a new wall-clock timestamp. Preserve
cumulative CPU seconds, memory usage/limit and
compute uptime semantics across both. Do not use microsandbox's instantaneous CPU
percent, wake suspended compute, or expose provider-native identifiers to fill a
common field.

Runtime history uses the existing Core PostgreSQL database: one sanitized row per
periodic observation, seven-day retention and bounded reads. It is best-effort
operational evidence, not execution or Usage authority. The execution owner samples
by default every 30 seconds. Existing canonical Session Usage supplies token
snapshots; never aggregate provider counters as model tokens. Preserve missing data
and reset CPU derivation across compute incarnations or counter regressions.
The bounded asynchronous database writer and optional OTLP exporter have independent
queues; external telemetry outages must not stall local history or execution.
Retention cleanup also runs without active Runtimes. The browser queries only Core,
never storage or a Collector, and stays a lightweight administrator console.
No additional metrics database or Collector is required for retained charts.

In V1, our daemon fills the user-side executor role. Users deploy daemon, the
selected harness, local tools and workspace together. Do not require Codex
`exec-server`, a service-side harness, registry/Noise transport or remote tool
Expand Down
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ openapi:
-g cmd/server/main.go --dir ./services/agents-api,./contracts/agents-api/v1 \
--output "$$output" \
--outputTypes yaml --parseInternal; \
python3 scripts/patch-agents-openapi.py "$$output/swagger.yaml"; \
mv "$$output/swagger.yaml" contracts/agents-api/openapi.yaml

check-sqlc:
Expand Down
Loading
Loading