Skip to content

feat: add PDD Connect observability dashboard - #2402

Draft
agarwal-ishaan wants to merge 19 commits into
promptdriven:mainfrom
agarwal-ishaan:feat/connect-observability
Draft

feat: add PDD Connect observability dashboard#2402
agarwal-ishaan wants to merge 19 commits into
promptdriven:mainfrom
agarwal-ishaan:feat/connect-observability

Conversation

@agarwal-ishaan

Copy link
Copy Markdown
Collaborator

Summary

  • Add a local /observability dashboard to PDD Connect for core-dump history and Dev Unit metadata.
  • Add a Connect navigation link and startup URL for the dashboard.
  • Keep report access project-scoped and redact environment and credential material from details.

Validation

  • pytest -q tests/server/routes/test_observability.py tests/commands/test_connect.py tests/server/test_app.py
  • npm run build (from pdd/frontend)
  • Live pdd connect smoke test: the frontend link opens /observability on the same local server.

Notes

The dashboard is read-only and intentionally uses no cloud telemetry.

agarwal-ishaan and others added 6 commits August 3, 2026 17:57
…t regeneration

pdd generate had an asymmetry: `_verify_public_surface_regression` only
ast.parse()s generated Python when existing_code is present (i.e. only
when regenerating a mature module). A brand-new file has no existing
code to compare against, so that gate is skipped entirely -- a prompt
whose content doesn't match its declared `_<language>` filename suffix
(e.g. `game_python.prompt` whose content actually describes an HTML
page) can silently write unparseable content into a freshly created
`.py` file with no error at all.

Add `_verify_generated_syntax`, called unconditionally alongside the
existing `_verify_architecture_conformance` check (which already runs
on every generation, first-time included). It ast.parse()s the output
against its declared language and raises ArchitectureConformanceError
on mismatch, reusing the same error type/UX the codebase already has
for conformance failures. Respects PDD_SKIP_CONFORMANCE. Tolerates a
surface markdown code fence (some response paths intentionally leave
one un-stripped) so it validates the real code rather than tripping on
cosmetic ``` wrapping.

Also updates a handful of existing incremental-generation tests whose
mock "generated code" fixtures were plain English placeholder strings
("Updated code", "Base-ref updated code", etc.) rather than valid
Python -- harmless before this fix since nothing validated first-time
output, but now correctly caught by the new check. Replaced with
trivial valid-Python snippets; the tests' actual assertions (control
flow, kwargs passed, cost/model returned) are unchanged.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…k their prompt

The repair_directive already told an agentic repair loop to check the
prompt against its declared language, but the actual user-facing
message (what a human sees on the CLI) didn't. Add an explicit,
plain-language prompt to double-check the requested content matches
the declared language suffix, since that's the most common real cause
of this error (verified via manual end-to-end testing against a real
prompt/response pair).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
_verify_generated_syntax was added directly to code_generator_main.py
(17048b3, 72afd9f) without updating its source-of-truth prompt. Add
section 5a1 to code_generator_main_python.prompt spelling out the gate
exactly as implemented, so the prompt and code stay in sync.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adding the observability module and its router factory to
pdd/server/routes/__init__.py left test_routes_module_exports asserting a
stale expected_all, so the test failed on this branch.

Project-scoped routers are exported as factories rather than module-level
router objects, so create_observability_router belongs in __all__ alongside
the module itself.
@agarwal-ishaan
agarwal-ishaan marked this pull request as draft August 14, 2026 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant