feat(resource): add handler runtime for git-checkout and fs-directory #383

Merged
hamza.khyari merged 4 commits from feature/m1-resource-handlers into develop-hamza-2 2026-02-23 16:05:09 +00:00

4 Commits

Author SHA1 Message Date
khyari hamza 90a9e5a7d2 fix(test): use StaticPool for skill registry in-memory db
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / lint (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 32s
CI / security (pull_request) Successful in 37s
CI / integration_tests (pull_request) Successful in 4m37s
CI / unit_tests (pull_request) Successful in 17m42s
CI / docker (pull_request) Successful in 1m1s
CI / benchmark-regression (pull_request) Successful in 18m21s
CI / coverage (pull_request) Successful in 40m20s
The default SingletonThreadPool for sqlite:///:memory: can
non-deterministically lose flushed data when multiple sessions are
created without closing (as in the bulk-register table step).
Under CI with coverage --parallel-mode and behave-parallel --processes 32,
this caused list_all() to return 2 skills instead of 3.

StaticPool guarantees all sessions share the exact same DBAPI connection,
which is the SQLAlchemy-recommended pattern for :memory: test databases.
2026-02-23 15:20:38 +00:00
khyari hamza 544f4ffc00 refactor(resource): address PR review feedback for handler runtime
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 15s
CI / quality (pull_request) Successful in 29s
CI / security (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 31s
CI / integration_tests (pull_request) Successful in 4m8s
CI / unit_tests (pull_request) Successful in 6m32s
CI / docker (pull_request) Successful in 1m1s
CI / benchmark-regression (pull_request) Successful in 17m2s
CI / coverage (pull_request) Failing after 31m57s
- extract BaseResourceHandler to eliminate ~90% duplication between
  GitCheckoutHandler and FsDirectoryHandler
- raise RuntimeError when sandbox.context is None instead of silent
  empty string fallback
- add threading.Lock to resolver handler cache for thread safety
- type resource_lookup/type_lookup as Callable instead of Any
- log original HandlerResolutionError at DEBUG before fallback
- use behave.runner.Context in step definitions per repo convention
2026-02-23 14:21:44 +00:00
khyari hamza b0f5722015 docs(plan): mark M1.resource-handlers checkboxes complete
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 15s
CI / build (pull_request) Successful in 20s
CI / quality (pull_request) Successful in 27s
CI / security (pull_request) Successful in 32s
CI / typecheck (pull_request) Successful in 53s
CI / integration_tests (pull_request) Successful in 3m43s
CI / unit_tests (pull_request) Successful in 6m57s
CI / docker (pull_request) Successful in 38s
CI / coverage (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-02-23 14:09:41 +00:00
khyari hamza c6f5e5805e feat(resource): add handler runtime for git-checkout and fs-directory
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 14s
CI / build (pull_request) Successful in 23s
CI / quality (pull_request) Successful in 29s
CI / security (pull_request) Successful in 34s
CI / typecheck (pull_request) Successful in 40s
CI / integration_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-02-23 14:06:05 +00:00