Verified durable-evidence defect
Canonical People mutation owner is PR #64. Its predecessor validated selection-decision timestamps with an isinstance(value, datetime) path that could invoke caller-defined tzinfo.utcoffset() before durable provenance was accepted. This was the People/hire counterpart of the standard-library timezone-provider boundary in shared HRIS-kernel and Job Analysis.
Test-first repair lineage
Current acceptance state
Exact #64 is open · Draft · mergeable at adab34478eb8fbaed570b8a620739baa48e6c2f2 over protected develop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. Foundation CI 33916898658 / Repository quality 101166034943 plus CodeQL PR 33916898686, Security Scan 33916898671, and SAST Semgrep 33916898683 remain non-terminal before checkout. Hosted GREEN/100% coverage and current-head independent approval are not claimed.
Keep this issue open through exact-current-head hosted/review evidence and ordinary protected integration. No mutable source copy, self-approval, administrator bypass, force-push, destructive rebase, gate weakening, or predecessor-evidence transfer.
Verified durable-evidence defect
Canonical People mutation owner is PR #64. Its predecessor validated selection-decision timestamps with an
isinstance(value, datetime)path that could invoke caller-definedtzinfo.utcoffset()before durable provenance was accepted. This was the People/hire counterpart of the standard-library timezone-provider boundary in shared HRIS-kernel and Job Analysis.Test-first repair lineage
cde8df27fcffc0b4abee57178085ee0f2153c571requires customtzinfoand executabledatetimesubtypes to fail without callbacks while exactdatetime.timezone/zoneinfo.ZoneInforemain accepted.98882232244920f919c0fdaf9b7a2c6ee67879c9introduced the exact outer/provider gate. That full-file edit accidentally changed two unrelated insert-contract lines; the mistake was retained in history rather than rewritten.61cba0fe82107c07b979a42e57f6cd64e75cdf8arestored the two unrelated SQL lines;42d988a7293c083f0d2160e770b4b1cedeb18d52only added the missing tripwire initializer docstring.fetchmany()batch/row containers through test-first5514b745233da940dd730d2c9dfdb8aaf8630e99and production/current fix(people): protect governed mutation runtime types #64 headadab34478eb8fbaed570b8a620739baa48e6c2f2. security(people): reject executable hire decision timestamps before offset resolution #215 remains intact in ancestry.Current acceptance state
Exact #64 is open · Draft · mergeable at
adab34478eb8fbaed570b8a620739baa48e6c2f2over protecteddevelop@eb9757f8649aaad026a9865508d9aad50c1a7a4f. Foundation CI33916898658/ Repository quality101166034943plus CodeQL PR33916898686, Security Scan33916898671, and SAST Semgrep33916898683remain non-terminal before checkout. Hosted GREEN/100% coverage and current-head independent approval are not claimed.Keep this issue open through exact-current-head hosted/review evidence and ordinary protected integration. No mutable source copy, self-approval, administrator bypass, force-push, destructive rebase, gate weakening, or predecessor-evidence transfer.