fix(tui): fix thread-safety race in reference_parser catalog cache #8269

Open
HAL9000 wants to merge 9 commits from fix/concurrency-catalog-cache-lock-7590 into master

9 Commits

Author SHA1 Message Date
controller-ci-rerun 494da85edd chore: re-trigger CI [controller]
CI / load-versions (pull_request) Successful in 17s
CI / push-validation (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 51s
CI / quality (pull_request) Successful in 51s
CI / build (pull_request) Successful in 53s
CI / helm (pull_request) Successful in 54s
CI / security (pull_request) Successful in 1m11s
CI / unit_tests (pull_request) Successful in 5m23s
CI / docker (pull_request) Successful in 2m6s
CI / integration_tests (pull_request) Successful in 8m40s
CI / typecheck (pull_request) Failing after 13m34s
CI / coverage (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
2026-06-18 10:19:40 -04:00
controller-ci-rerun 9c3fd674d0 chore: re-trigger CI [controller]
CI / load-versions (pull_request) Successful in 16s
CI / push-validation (pull_request) Successful in 27s
CI / lint (pull_request) Successful in 43s
CI / build (pull_request) Successful in 41s
CI / quality (pull_request) Successful in 54s
CI / typecheck (pull_request) Successful in 1m10s
CI / security (pull_request) Successful in 1m26s
CI / helm (pull_request) Successful in 40s
CI / unit_tests (pull_request) Successful in 5m14s
CI / docker (pull_request) Successful in 2m41s
CI / integration_tests (pull_request) Failing after 18m48s
CI / coverage (pull_request) Failing after 22m23s
CI / status-check (pull_request) Has been cancelled
2026-06-18 09:43:10 -04:00
controller-ci-rerun 1737921628 chore: re-trigger CI [controller]
CI / load-versions (pull_request) Successful in 14s
CI / push-validation (pull_request) Successful in 24s
CI / lint (pull_request) Successful in 45s
CI / build (pull_request) Successful in 42s
CI / unit_tests (pull_request) Failing after 53s
CI / quality (pull_request) Successful in 55s
CI / docker (pull_request) Has been skipped
CI / typecheck (pull_request) Successful in 1m17s
CI / security (pull_request) Successful in 1m18s
CI / coverage (pull_request) Has been skipped
CI / helm (pull_request) Successful in 40s
CI / integration_tests (pull_request) Successful in 8m45s
CI / status-check (pull_request) Failing after 3s
2026-06-18 09:32:52 -04:00
controller-ci-rerun 6d603ee33d chore: re-trigger CI [controller]
CI / load-versions (pull_request) Successful in 15s
CI / push-validation (pull_request) Successful in 31s
CI / lint (pull_request) Successful in 56s
CI / typecheck (pull_request) Successful in 1m21s
CI / build (pull_request) Successful in 49s
CI / security (pull_request) Successful in 1m14s
CI / helm (pull_request) Successful in 45s
CI / unit_tests (pull_request) Failing after 1m16s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / quality (pull_request) Successful in 1m18s
CI / integration_tests (pull_request) Successful in 8m56s
CI / status-check (pull_request) Failing after 12s
2026-06-18 09:19:03 -04:00
controller-ci-rerun 703a5aa725 chore: re-trigger CI [controller] 2026-06-18 09:19:03 -04:00
controller-ci-rerun fe52983aef chore: re-trigger CI [controller] 2026-06-18 09:19:03 -04:00
HAL9000 c7c7817fcd fix(tui): apply ruff format to tdd_reference_parser_catalog_lock_steps.py 2026-06-18 09:19:03 -04:00
controller-ci-rerun d02aa69924 chore: re-trigger CI [controller] 2026-06-18 09:19:03 -04:00
HAL9000 e54f28d0a1 fix(tui): fix thread-safety race in reference_parser catalog cache
Added threading.Lock to prevent race conditions in _catalog_cache dict.
Two concurrent threads calling _catalog() while cache was stale could
both walk the filesystem and write results simultaneously, causing partial
dict updates or RuntimeError on concurrent iteration.

Changes:
- Added import threading and from threading import Lock
- Added _catalog_lock: Lock = threading.Lock() at module level
- Wrapped entire _catalog() body in with _catalog_lock: for atomic access
- Added 4 BDD scenarios in tdd_reference_parser_catalog_lock.feature
- Updated CHANGELOG.md with fix entry under [Unreleased] > Fixed
- Updated CONTRIBUTORS.md with contribution entry

ISSUES CLOSED: #7590
2026-06-18 09:19:03 -04:00