tractor/ai/prompt-io/20261011T053737Z_a966928d_p...

143 lines
6.4 KiB
Markdown

---
created_at: 2026-10-11T05:37:37Z
generated_by:
harness: opencode
provider: openai
model: openai/gpt-6.1-sol
git_ref: wkt/address_logging_levels
scope: code
substantive: true
raw_file: 20261011T053737Z_a966928d_prompt_io.raw.md
---
## Prompt
The user supplied this original request:
> maybe we can add a commit to tractor on top of addr_unpacking,
> also scan for any other downstream from main logging history and
> cherry it there and then add your fix, and finally move piker_pin
> to that? rather not hackaround bug alreadypinningnonmain
The current instruction narrowed execution to a managed Tractor
worktree, `wkt/address_logging_levels`, starting at the verified
`addr_unpacking` OID a966928dead4cbf369ad244834ce9dbe988ac8ca.
Scan local logging history, preserve relevant originals where
possible, implement the standard-name fix with meaningful tests,
and verify Piker's original cache-hit regression through an import
overlay. Leave changes uncommitted for human review and leave
`piker_pin`, Piker's workaround, environments, and lockfiles intact.
## Response summary
Created the managed worktree and recorded approved local discovery
in Git administrative storage. No equivalent name-resolution fix
or additional prerequisite was found. Patch-ID comparisons of
`tractor/log.py` and `tests/test_log_sys.py` identified these
already-landed equivalents:
- d653cd2c -> a2c8af55: fast caller lookup.
- 4f811a87 -> d1d3fc58: lazy optional imports.
- 361f6fcc and other copies -> bb0b2ffa: custom-level factory.
- 11b9a870 and other copies -> b6bf865f: nested logger names.
- 74784780 and other copies -> 8bb9df9e: logging-spec API.
The base also includes 88cc68ed (custom-level re-registration),
67280c28 (disable-aware guards), and 089e158d (dynamic caller
fallback). The non-equivalent 53e10861 thread-header change is
unrelated and was excluded. No cherry-pick was needed.
The source fix uses public stdlib name resolution after Tractor's
custom-level lookup. It keeps the existing `KeyError` contract
instead of introducing a `ValueError` compatibility change.
## Files changed
- `tractor/log.py`: standard/application name resolution and
integer-capable adapter annotation.
- `tests/test_log_sys.py`: 62 raw/adapted regression cases with
detailed failure-mechanism documentation and isolated log state.
- `ai/prompt-io/README.md`: shared provenance policy.
- This structured record and its immutable raw partner.
## Verification
Run from the new Tractor worktree:
```xsh
env PYTHONPATH=/home/goodboy/repos/tractor/wkts/address_logging_levels /home/goodboy/repos/tractor/py313/bin/python -m pytest tests/test_log_sys.py -k at_least_level
```
Before the source fix: 30 failed, 32 passed, 8 deselected. Failures
were name-lookup `KeyError`s, including INFO and NOTSET.
```xsh
env PYTHONPATH=/home/goodboy/repos/tractor/wkts/address_logging_levels /home/goodboy/repos/tractor/py313/bin/python -m pytest tests/test_log_sys.py
/nix/store/qmrz7inmmlfmx1nghix8ymghh5yd9gnv-ruff-0.15.22/bin/ruff check tractor/log.py tests/test_log_sys.py
git diff --check
```
After the fix: 70 passed; Ruff and whitespace checks passed.
Tractor tests used CPython 3.13.11 and pytest 9.1.0. Source imports
were asserted beneath the new worktree. The inherited VIRTUAL_ENV
named Modden, but the explicit Tractor interpreter was used;
TRACTOR_SPAWN_METHOD and TRACTOR_LOGLEVEL were unset.
The existing `modern_consumer_probe.py` was run through an isolated
wrapper with the new Tractor source and Piker's existing
`land_flake_update/py313` interpreter (CPython 3.13.14). Original
Piker Git-tree modules and tests were overlaid only in memory;
the `--standard-level-fix` option was absent. All 8 cases passed,
including both cache-miss and cache-hit variants from b691422b.
The installed Tractor distribution metadata still identifies the
base OID; import assertions independently verified that executable
Tractor and its logging module came from the new source worktree.
Direct Piker imports first failed for missing native libraries
(libstdc++, then libzstd). A process-local LD_LIBRARY_PATH containing
already-present library outputs resolved from Piker's locked Nix
input fixed those imports. No shell hook, dependency installation,
environment synchronization, live broker, or actor suite was run.
## Human edits
The human directed the upstream Tractor fix instead of a Piker
workaround, selected the exact stack base and local discovery scope,
required compatibility and consumer verification, and reserved
commits and ref publication for review. These are human-directed
agent changes; no subsequent manual edits or acceptance are recorded.
Subsequent local Tuicr review supplied 17 human-selected comments in
`address_logging_levels@wkt-address_logging_levels/staged/a966928`.
The reviewer directed explicit INFO(20) fixture documentation,
boolean selector meanings, the `is_info_level_enabled` callable
name, threshold comments at numeric values, and precise API and
failure descriptions instead of vague terms or Piker-specific
context. The agent applied those directions and replaced the custom
level membership/subscript pair with `CUSTOM_LEVELS.get(name)` plus
a lazy stdlib fallback on `None`, preserving zero and `KeyError`.
The registered-level regression now uses 35, between WARNING(30)
and ERROR(40), and tests it at INFO(20) then ERROR(40).
After these review adjustments, all 70 logging tests passed with
the same source-verified Tractor CPython 3.13.11 environment.
Targeted Ruff and `git diff --check` also passed. The staged index
was preserved; review adjustments remain unstaged for human review.
The original `.raw.md` watermark and response capture are unchanged.
A second review selected three follow-up comments about the logger
registration hook, fixture parameter meaning, and the INFO-specific
query name after changing the logger's threshold to ERROR. The
fixture now distinguishes instance-local level/disabled settings
from temporary registration and the process-global disable cutoff,
and includes a short consumer example. Each fixture case allocates
a fresh raw logger; only the query form varies between the module
function and an adapter method wrapping that logger. The test which
changes the threshold now names its query `is_level_enabled`.
All 70 logging tests passed again with source imports verified in
this worktree under Tractor's CPython 3.13.11 interpreter. Targeted
Ruff and whitespace checks passed. These follow-up adjustments are
unstaged; the current human-staged baseline and original raw prompt
record are preserved.