Skip to content

Commit 8938eb7

Browse files
authored
docs: replace Jaeger screenshot TODO with section scaffold (#105)
* docs: replace Jaeger screenshot TODO with section scaffold (#92) The observability story in README has one visible loose end: a TODO block where the Jaeger trace screenshot should go. The rest of the section reads cleanly, so the TODO sticks out. Promotes the placeholder to a real subsection ("Jaeger trace") with the explanatory caption already written: what boots the stack, what endpoint produces the trace, where to view it, and that span attributes use only the constant-defined semconv keys from src/observability/spans.py. The image itself still needs to be captured. The original capture recipe is preserved as an HTML comment so it remains discoverable, and the comment includes the exact one-line markdown to paste in once docs/images/jaeger-trace.png lands. Hiding the placeholder inside an HTML comment (rather than a broken-image ref) keeps the rendered README clean while the PNG is outstanding. The image-capture step itself is a follow-up — needs the maintainer to run docker compose locally and take the screenshot. Closes #92 (capture step tracked separately as a single-line README edit when the PNG is committed). * chore: bump version to 0.2.11
1 parent 7c84f18 commit 8938eb7

3 files changed

Lines changed: 16 additions & 10 deletions

File tree

README.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,23 @@ The scaffold's React page hits `/api/v1/health` on load and renders the version
8181

8282
![Hello page](docs/images/hello-page.png)
8383

84+
### Jaeger trace (`docker compose up` + `/api/v1/health`)
85+
86+
The full stack — backend, frontend, Jaeger collector — boots with `docker compose up`. Hitting `/api/v1/health` once produces an OpenTelemetry trace exported via OTLP/gRPC; the span hierarchy is visible at <http://localhost:16686> under the `harness-python-react` service, with `agent_span(...)` attributes attached using only the keys constant-defined at the top of [`src/observability/spans.py`](src/observability/spans.py).
87+
8488
<!--
85-
TODO (#28): one capture left — Jaeger trace.
89+
Screenshot pending: docs/images/jaeger-trace.png
90+
91+
Capture recipe (run once and commit the PNG to docs/images/):
92+
1. docker compose up
93+
2. curl http://localhost:8000/api/v1/health
94+
3. open http://localhost:16686 -> select service "harness-python-react"
95+
4. click the most recent trace
96+
5. screenshot the span timeline, save as docs/images/jaeger-trace.png
8697
87-
docs/images/jaeger-trace.png
88-
With the full stack running (`docker compose up`), hit /api/v1/health
89-
once, then open http://localhost:16686, select service
90-
`harness-python-react`, click the most recent trace, screenshot the
91-
span timeline.
98+
When the PNG is committed, replace this whole comment with:
9299
93-
When the PNG lands in docs/images/, replace this comment with a section
94-
analogous to "Hello page" above.
100+
![Jaeger trace — span timeline for GET /api/v1/health](docs/images/jaeger-trace.png)
95101
-->
96102

97103
## Why a harness

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "harness-python-react"
3-
version = "0.2.16"
3+
version = "0.2.17"
44
description = "Production-quality LLM-driven coding harness — Python (FastAPI) backend, Vite + React + TypeScript frontend."
55
readme = "README.md"
66
requires-python = ">=3.14"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)