Repository navigation
Correct two changelog entries and say "work item" in the P8 row - #843
Conversation
The P8 row of the native feature parity table said its open questions are verified "inside the lane that touches each", using "lane" for a unit of work. The rest of the page keeps "lane" for its design sense (the Lane column and the kernel lanes), so this row now says "work item". Only that one cell changes. Documentation sentences this change removes or rewrites: - docs/design/native-feature-parity.md, row P8, last column: "verify inside the lane that touches each" now reads "verify inside the work item that touches each". Co-Authored-By: Claude Opus 5.5 <[email protected]>
The unreleased changelog said that a timezone name the engine does not accept now raises pine_timezone_error instead of silently reading UTC. That holds for the engine's own calendar functions. Code that the transpiler generates for timestamp() with a zone, and for the date and time fields (year, month, dayofmonth, dayofweek, weekofyear, hour, minute, second) given a zone, still reads such a zone as UTC; the entry now says so, and that this is fixed in a later release. Documentation sentences this change removes or rewrites: - CHANGELOG.md, Unreleased: "A timezone name written in a script that the engine does not accept now raises `pine_timezone_error` with the function and zone instead of silently reading UTC." now reads "A timezone name written in a script that the engine's own calendar functions do not accept now raises `pine_timezone_error` with the function and zone instead of silently reading UTC.", followed by the new sentence on the generated code. Co-Authored-By: Claude Opus 5.5 <[email protected]>
The 1.12.0 entry for invalid `--syminfo` values said they produce typed refusals but named neither shape. It now says that an invalid `mintick` is refused as `symbol_feeds_refused` with reason `syminfo_mintick_invalid`, and that an invalid point value uses the existing symbol metadata error, `symbol_metadata_rejected` with field `point_value`, as docker/run_json.py raises them. The entry keeps its line count. Co-Authored-By: Claude Opus 5.5 <[email protected]>
There was a problem hiding this comment.
Graphify reviewed this change.
No issues found by static checks — no coupling regressions or blocking issues in the code graph. That is not the same as safe to merge: see what was not checked.
Not checked: tests were not run; no formal proof of the changed code.
Graphify review — findings
Narrows the changelog's pine_timezone_error entry to timezone names the engine's own calendar functions reject, and notes that transpiler-generated code for timestamp() with a zone, and for year, month, dayofmonth, dayofweek, weekofyear, hour, minute and second given a zone, still reads such a zone as UTC until a later release. It also spells out the --syminfo refusals: an invalid mintick is refused as symbol_feeds_refused with reason syminfo_mintick_invalid, and an invalid point value as symbol_metadata_rejected with field point_value. In the native-feature-parity design doc, one word in the P8 process-risk row changes from "lane" to "work item" and nothing else in the doc changes.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 129 functions depend on the 129 functions this change touches.
Health — grade A; no new coupling hotspots.
Verification — 129 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 129 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
1425 of 1425 test file(s) selected (100%) via static blast radius.
Escalated to a full run for safety (
noncode-change,uncovered-code) — the selection is not trustworthy on its own (see below). CI should run the whole suite.
benchmarks/tests/test_aggregate.py— full-run-safetybenchmarks/tests/test_check_provenance.py— full-run-safetybenchmarks/tests/test_compare.py— full-run-safetybenchmarks/tests/test_public_names.py— full-run-safetybenchmarks/tests/test_run_all.py— full-run-safetybenchmarks/tests/test_run_strategy_feeds.py— full-run-safetydocker/pineforge_sink_finalize_test.py— full-run-safetydocker/pineforge_sink_replay_rq_test.py— full-run-safetydocker/pineforge_sink_replay_test.py— full-run-safetydocker/pineforge_sink_to_json_test.py— full-run-safetydocker/quota_columns_test.py— full-run-safetydocker/quota_convert_test.py— full-run-safetydocker/quota_finalize_test.py— full-run-safetydocker/replay_rq_engine_test.py— full-run-safetydocker/run_json_artifact_window_test.py— full-run-safetydocker/run_json_bin_test.py— full-run-safetydocker/run_json_bounded_transport_test.py— full-run-safetydocker/run_json_bulk_equity_fuzz_test.py— full-run-safetydocker/run_json_bulk_equity_test.py— full-run-safetydocker/run_json_codes_test.py— full-run-safetydocker/run_json_converter_metadata_test.py— full-run-safetydocker/run_json_converter_session_test.py— full-run-safetydocker/run_json_diagnostics_test.py— full-run-safetydocker/run_json_equity_scan_test.py— full-run-safetydocker/run_json_fused_test.py— full-run-safetydocker/run_json_harnesses_test.py— full-run-safetydocker/run_json_metrics_only_test.py— full-run-safetydocker/run_json_misc2_test.py— full-run-safetydocker/run_json_misc_test.py— full-run-safetydocker/run_json_pfbar_test.py— full-run-safetydocker/run_json_provenance_test.py— full-run-safetydocker/run_json_quota_supervisor_test.py— full-run-safetydocker/run_json_replay_test.py— full-run-safetydocker/run_json_selected_sink_test.py— full-run-safetydocker/run_json_sink_lexical_test.py— full-run-safetydocker/run_json_sink_summary_test.py— full-run-safetydocker/run_json_sink_test.py— full-run-safetydocker/run_json_sink_vectors_test.py— full-run-safetydocker/run_json_spool_work_test.py— full-run-safetydocker/run_json_stringio_test.py— full-run-safetydocker/run_json_symbol_feeds_test.py— full-run-safetydocker/run_json_syminfo_test.py— full-run-safetydocker/run_json_trade_scan_test.py— full-run-safetydocker/run_json_window_budget_test.py— full-run-safetydocker/run_json_wrapper_work_test.py— full-run-safetyinclude/pineforge/native_run_spec.hpp— full-run-safetyscripts/derive_corpus_feeds_self_test.py— full-run-safetyscripts/fingerprint_self_test.py— full-run-safetyscripts/run_corpus_self_test.py— full-run-safetyscripts/test_abi_receipt_skips.py— full-run-safety- … and 1375 more
non-code file(s) changed (
CHANGELOG.md,docs/design/native-feature-parity.md) → running the full suite for safety (a code graph can't see config/fixture/data deps)
changed code file(s) with no mapped test (
CHANGELOG.md,docs/design/native-feature-parity.md) — a coverage gap or a missing link — running the full suite rather than only the selected tests
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
The changelog entry said that code the transpiler generates for timestamp() with a zone, and for the date and time fields given a zone, still reads a zone the engine does not accept as UTC. Measured on the release pair, a zone that the host cannot load stops the date and time field reads with pine_timezone_error; only the generated timestamp() reads such a zone as UTC without an error, with a zone argument and without one on a symbol whose zone is not UTC. The entry now says that, on the same line. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Engine main took a documentation change (#843) that rewrites two changelog entries and says "work item" in row P8 of docs/design/native-feature-parity.md. This branch edits the same P8 line, where it moves the set_risk_direction anchor to pine_adapter.cpp:27363. The merge keeps both edits on that line; every other path merges without a conflict. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Docs-only change: two changelog entries and one table cell.
What changes
CHANGELOG.md, Unreleased:pine_timezone_errorinstead of silently reading UTC. That holds for the engine's own calendar functions.timestamp()still reads a zone that the host cannot load as UTC, without an error: with a zone argument, and without one on a symbol whose zone is not UTC. Measured on the release pair, the date and time field reads stop withpine_timezone_errorfor such a zone. The entry now says so, and that this is fixed in a later release.--syminfovalues said they now produce typed refusals but named neither refusal. It now names them asdocker/run_json.pyraises them: an invalidmintickis refused assymbol_feeds_refusedwith reasonsyminfo_mintick_invalid, and an invalid point value uses the existing symbol metadata error,symbol_metadata_rejectedwith fieldpoint_value. The entry keeps its line count.docs/design/native-feature-parity.md, row P8:Nothing else changes.
Squash commit message
🤖 Generated with Claude Code