Repository navigation
Attribute HTTP client instances and synchronize worker observations - #281
Conversation
|
|
Owner review at exact90076594a1b9c46d380ba7b237479af557e992dd/treece945f29030981072fa158c47627bfbca4aaf18f, base83f931c1: all20 exact-head ordinary checks are terminal SUCCESS, including CI42095230093, all six supported Python versions, integration/target qualification, Sonar, CodeQL and public boundary. Forty-seven local source tests, touched-file Ruff and mypy42 source files pass. Normal refresh preserved the three tested observer/test/README blobs exactly. Reviewed the bounded weak-reference lifetime/ID-reuse behavior, explicit overflow state, and lock coverage for shared counters/buffers/milestones and deep-copy reports. HTTP awaits and metadata parsing remain outside the lock. Tests cover distinct additional clients, stable route counts, collection/reused IDs, overflow without conflation, two-thread in-flight/final snapshots and prior primary-error/stream/redaction behavior. HTTP instance identity is explicitly narrower than clone-parent, registration, phase or end-to-end completeness. No SDK product, workflow, timeout or probe changes. Publication followers checked: no workflow_run publisher or tag/manual publish event, and these test-only paths exclude docs deployment; the accepted stable-tag guard is unchanged. Proceeding through exact-head normal owner merge and actual-main/branch follow-through. No historical/frozen tuple, publication, installed proof or #184 action is admitted by this source checkpoint. |
|
#281 actual-main follow-through is complete. Merge 62bfe19 has reviewed tree ce945f29030981072fa158c47627bfbca4aaf18f, ordered parents[83f931c,90076594]. All18 actual-main checks and all four workflows pass: CI42096533641, Sonar42096533570, CodeQL42096533284 and public-boundary42096533620. The longer Server-stack startup finished within the existing run; no deadline extension or replacement run was used. No docs/publication workflow was selected by the test-only paths. Fresh five-page live hashes and byte counts match restored published2.14.1 artifact13380779871, with all five docs-writer status counts zero. The exact merged branch90076594 was deleted/readback404; its clean isolated worktree and local branch were removed. Shared main is clean at62bfe195. These are source-only HTTP-instance/observer consistency controls, not clone-parent/private-claim, historical/runtime or frozen/publication qualification. #123 stays open. Draft#282 carries the next scoped task/HTTP identity source; sdk-python owns normal checks/integration/main/cleanup and remaining bounded SQL/API/private comparator preparation. #184's specific policy-blocked review remains set aside without a disposition or operating authority. |



The worker HTTP observer grouped every additional client together, so separate discovery/query-poll streams could not be attributed to one HTTP instance. Its shared mutable buffers were also read from the workflow loop while the query thread could update them. The recorder now assigns stable instance labels through a bounded weak-reference registry and synchronizes updates/snapshot copies across threads. Network awaits and response parsing stay outside the lock; Client and Worker behavior are unchanged.
Existing role labels remain. A reused integer object ID cannot inherit another client's instance label, collected clients are not retained, and lifetime attribution overflow has a null instance and explicit truncated state. Per-instance route counters are bounded; known instances remain identifiable after overflow. These HTTP identities do not prove a worker clone's parent or the presence of an expected-but-unobserved clone. The reconstruction README preserves that limit and all pending SQL/API/phase/runtime requirements.
Validation: 47 focused source tests pass, including distinct/repeated clients, weak lifetime and forced ID reuse, overflow without conflation, and two-thread in-flight/final snapshots with drainage. Inert baseline control reproduces the old role conflation with identical request counts. Ruff on both changed Python files, mypy42 SDK source files, diff and credential-pattern checks pass. Normal source CI follows; no historical/frozen/package/operating acceptance is implied.
Part of #123; source observation only. Base83f931c1 is the normally merged unexecuted SQL proposal; actual-main qualification is tracked separately. No SDK product, workflow, timeout, probe or #184 operating gate is changed.