feat(resource): implement ResourceHandler content_hash method #1066

Merged
hamza.khyari merged 1 commit from feature/resource-handler-content-hash into master 2026-04-01 13:41:52 +00:00
Member

Summary

Implements content_hash(resource, *, algorithm='sha256') -> str on the ResourceHandler protocol and all 4 concrete handlers plus the _DefaultHandler fallback.

Closes #837

Changes

Protocol (protocol.py)

New content_hash method added to ResourceHandler protocol.

Implementations

Handler Strategy Hash Source
BaseResourceHandler Default File content or directory entry names
GitCheckoutHandler git rev-parse HEAD Commit SHA re-hashed through algorithm
FsDirectoryHandler Recursive walk Sorted relative paths + file contents
DevcontainerHandler Config file .devcontainer/devcontainer.json
DatabaseResourceHandler Connection identity SQLite: file content; Remote: connection string
_DefaultHandler Delegates Uses BaseResourceHandler logic

Sentinel Value

EMPTY_CONTENT_HASH = SHA-256 of empty input. Returned for missing, empty, or inaccessible resources.

Algorithm Support

Configurable via algorithm parameter (default sha256). Accepts any hashlib.new()-compatible name.

Tests

10 Behave scenarios: sentinel hash, determinism, change detection, fs-directory recursive hash, git-checkout hash, configurable algorithm, protocol compliance.

Design Decisions

  • Content-only: Timestamps, permissions, and other metadata do not affect the hash
  • Deterministic: Same content always produces the same hash regardless of platform
  • Git handler: Uses commit SHA (not tree hash) because it captures the full state including history
  • Sentinel: SHA-256 of empty input is a natural choice (idempotent, well-known)
## Summary Implements `content_hash(resource, *, algorithm='sha256') -> str` on the `ResourceHandler` protocol and all 4 concrete handlers plus the `_DefaultHandler` fallback. Closes #837 ## Changes ### Protocol (`protocol.py`) New `content_hash` method added to `ResourceHandler` protocol. ### Implementations | Handler | Strategy | Hash Source | |---------|----------|-------------| | `BaseResourceHandler` | Default | File content or directory entry names | | `GitCheckoutHandler` | git rev-parse HEAD | Commit SHA re-hashed through algorithm | | `FsDirectoryHandler` | Recursive walk | Sorted relative paths + file contents | | `DevcontainerHandler` | Config file | `.devcontainer/devcontainer.json` | | `DatabaseResourceHandler` | Connection identity | SQLite: file content; Remote: connection string | | `_DefaultHandler` | Delegates | Uses BaseResourceHandler logic | ### Sentinel Value `EMPTY_CONTENT_HASH` = SHA-256 of empty input. Returned for missing, empty, or inaccessible resources. ### Algorithm Support Configurable via `algorithm` parameter (default `sha256`). Accepts any `hashlib.new()`-compatible name. ## Tests 10 Behave scenarios: sentinel hash, determinism, change detection, fs-directory recursive hash, git-checkout hash, configurable algorithm, protocol compliance. ## Design Decisions - **Content-only**: Timestamps, permissions, and other metadata do not affect the hash - **Deterministic**: Same content always produces the same hash regardless of platform - **Git handler**: Uses commit SHA (not tree hash) because it captures the full state including history - **Sentinel**: SHA-256 of empty input is a natural choice (idempotent, well-known)
freemo added this to the v3.6.0 milestone 2026-03-19 05:28:02 +00:00
Owner

Planning review (Day 42):

  • Incorrect label: This PR is labeled bug but the title and body describe a new feature implementation (content_hash method). Should be Type/Feature per CONTRIBUTING.md conventions.

Otherwise looks good: milestone set (v3.6.0), closes #837, 2 reviewers assigned (freemo + brent.edwards).

**Planning review (Day 42):** - **Incorrect label**: This PR is labeled `bug` but the title and body describe a new feature implementation (`content_hash` method). Should be `Type/Feature` per CONTRIBUTING.md conventions. Otherwise looks good: milestone set (v3.6.0), closes #837, 2 reviewers assigned (freemo + brent.edwards).
freemo approved these changes 2026-03-27 17:12:56 +00:00
Dismissed
freemo left a comment

Review: feat(resource): implement ResourceHandler content_hash method

Approved. Solid implementation with good test coverage.

Minor Suggestions

  • Base handler shallow dir hash: BaseResourceHandler.content_hash() only hashes sorted(os.listdir(path)) entry names, not content. All concrete handlers override this, but consider a more prominent warning in the docstring.
  • Private attribute mutation: _DefaultHandler.content_hash() creates a BaseResourceHandler() and mutates _default_strategy and _type_label — consider a factory method instead.
  • .gitignore exclusion: FsDirectoryHandler recursive walk hashes everything including .git/ directories. Consider excluding .git/ by default.

What's Good

  • Deterministic hashing per handler type: file content for fs, git rev-parse HEAD for git, devcontainer.json for devcontainer, connection-string for database.
  • Well-known sentinel EMPTY_CONTENT_HASH.
  • Chunked 64KB reads avoiding memory blowouts.
  • Configurable algorithm parameter.
  • 12 BDD scenarios covering sentinels, determinism, change detection, algorithm variation, and protocol compliance.
## Review: feat(resource): implement ResourceHandler content_hash method **Approved.** Solid implementation with good test coverage. ### Minor Suggestions - **Base handler shallow dir hash**: `BaseResourceHandler.content_hash()` only hashes `sorted(os.listdir(path))` entry names, not content. All concrete handlers override this, but consider a more prominent warning in the docstring. - **Private attribute mutation**: `_DefaultHandler.content_hash()` creates a `BaseResourceHandler()` and mutates `_default_strategy` and `_type_label` — consider a factory method instead. - **`.gitignore` exclusion**: `FsDirectoryHandler` recursive walk hashes everything including `.git/` directories. Consider excluding `.git/` by default. ### What's Good - Deterministic hashing per handler type: file content for fs, `git rev-parse HEAD` for git, devcontainer.json for devcontainer, connection-string for database. - Well-known sentinel `EMPTY_CONTENT_HASH`. - Chunked 64KB reads avoiding memory blowouts. - Configurable `algorithm` parameter. - 12 BDD scenarios covering sentinels, determinism, change detection, algorithm variation, and protocol compliance.
hamza.khyari force-pushed feature/resource-handler-content-hash from faba9a3ff3
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 16s
CI / lint (pull_request) Successful in 19s
CI / quality (pull_request) Successful in 29s
CI / typecheck (pull_request) Successful in 1m0s
CI / security (pull_request) Successful in 1m0s
CI / unit_tests (pull_request) Failing after 3m14s
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 3m39s
CI / e2e_tests (pull_request) Successful in 3m57s
CI / coverage (pull_request) Failing after 7m1s
CI / benchmark-regression (pull_request) Successful in 38m36s
to bb73838d93
Some checks failed
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 44s
CI / lint (pull_request) Successful in 3m40s
CI / quality (pull_request) Successful in 4m7s
CI / integration_tests (pull_request) Failing after 3m59s
CI / unit_tests (pull_request) Failing after 4m10s
CI / typecheck (pull_request) Successful in 4m27s
CI / security (pull_request) Successful in 4m38s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 8m54s
CI / e2e_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 11:27:48 +00:00
Compare
hamza.khyari dismissed freemo's review 2026-03-31 11:27:48 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

hamza.khyari force-pushed feature/resource-handler-content-hash from bb73838d93
Some checks failed
CI / build (pull_request) Successful in 16s
CI / helm (pull_request) Successful in 44s
CI / lint (pull_request) Successful in 3m40s
CI / quality (pull_request) Successful in 4m7s
CI / integration_tests (pull_request) Failing after 3m59s
CI / unit_tests (pull_request) Failing after 4m10s
CI / typecheck (pull_request) Successful in 4m27s
CI / security (pull_request) Successful in 4m38s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 8m54s
CI / e2e_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
to 88334bfd33
Some checks failed
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 47s
CI / quality (pull_request) Successful in 3m43s
CI / security (pull_request) Successful in 4m6s
CI / integration_tests (pull_request) Failing after 6m22s
CI / unit_tests (pull_request) Failing after 6m35s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 9m3s
CI / e2e_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 11:49:54 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from 88334bfd33
Some checks failed
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 27s
CI / typecheck (pull_request) Successful in 47s
CI / quality (pull_request) Successful in 3m43s
CI / security (pull_request) Successful in 4m6s
CI / integration_tests (pull_request) Failing after 6m22s
CI / unit_tests (pull_request) Failing after 6m35s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 9m3s
CI / e2e_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
to 3d7d32f671
Some checks failed
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 22s
CI / lint (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m43s
CI / integration_tests (pull_request) Failing after 3m51s
CI / typecheck (pull_request) Successful in 4m3s
CI / security (pull_request) Successful in 4m14s
CI / unit_tests (pull_request) Failing after 4m27s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 8m43s
CI / e2e_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 12:01:28 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from 3d7d32f671
Some checks failed
CI / build (pull_request) Successful in 15s
CI / helm (pull_request) Successful in 22s
CI / lint (pull_request) Successful in 3m18s
CI / quality (pull_request) Successful in 3m43s
CI / integration_tests (pull_request) Failing after 3m51s
CI / typecheck (pull_request) Successful in 4m3s
CI / security (pull_request) Successful in 4m14s
CI / unit_tests (pull_request) Failing after 4m27s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 8m43s
CI / e2e_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
to ec249298fd
Some checks failed
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 35s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m49s
CI / integration_tests (pull_request) Failing after 3m51s
CI / typecheck (pull_request) Successful in 3m58s
CI / unit_tests (pull_request) Failing after 4m13s
CI / coverage (pull_request) Failing after 8m58s
CI / e2e_tests (pull_request) Successful in 21m4s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Failing after 55s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 12:19:03 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from ec249298fd
Some checks failed
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 35s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m49s
CI / integration_tests (pull_request) Failing after 3m51s
CI / typecheck (pull_request) Successful in 3m58s
CI / unit_tests (pull_request) Failing after 4m13s
CI / coverage (pull_request) Failing after 8m58s
CI / e2e_tests (pull_request) Successful in 21m4s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Failing after 55s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
to f2bf356fbc
Some checks failed
CI / build (pull_request) Successful in 21s
CI / helm (pull_request) Successful in 23s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Failing after 1m2s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m50s
CI / typecheck (pull_request) Successful in 3m56s
CI / e2e_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
2026-03-31 14:12:59 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from f2bf356fbc
Some checks failed
CI / build (pull_request) Successful in 21s
CI / helm (pull_request) Successful in 23s
CI / benchmark-publish (pull_request) Has been skipped
CI / security (pull_request) Failing after 1m2s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m50s
CI / typecheck (pull_request) Successful in 3m56s
CI / e2e_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
to a7e0c4094a
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 43s
CI / lint (pull_request) Successful in 3m18s
CI / typecheck (pull_request) Successful in 3m56s
CI / security (pull_request) Successful in 4m6s
CI / unit_tests (pull_request) Successful in 7m8s
CI / integration_tests (pull_request) Successful in 7m52s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Failing after 8m49s
CI / e2e_tests (pull_request) Successful in 20m34s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 14:19:04 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from a7e0c4094a
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 17s
CI / helm (pull_request) Successful in 21s
CI / quality (pull_request) Successful in 43s
CI / lint (pull_request) Successful in 3m18s
CI / typecheck (pull_request) Successful in 3m56s
CI / security (pull_request) Successful in 4m6s
CI / unit_tests (pull_request) Successful in 7m8s
CI / integration_tests (pull_request) Successful in 7m52s
CI / docker (pull_request) Successful in 1m23s
CI / coverage (pull_request) Failing after 8m49s
CI / e2e_tests (pull_request) Successful in 20m34s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
to fc8b943db7
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 20s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m50s
CI / typecheck (pull_request) Successful in 3m54s
CI / integration_tests (pull_request) Successful in 3m58s
CI / security (pull_request) Successful in 4m6s
CI / unit_tests (pull_request) Successful in 4m30s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Failing after 8m42s
CI / e2e_tests (pull_request) Successful in 22m18s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
2026-03-31 14:49:15 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from fc8b943db7
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 20s
CI / lint (pull_request) Successful in 3m19s
CI / quality (pull_request) Successful in 3m50s
CI / typecheck (pull_request) Successful in 3m54s
CI / integration_tests (pull_request) Successful in 3m58s
CI / security (pull_request) Successful in 4m6s
CI / unit_tests (pull_request) Successful in 4m30s
CI / docker (pull_request) Successful in 1m31s
CI / coverage (pull_request) Failing after 8m42s
CI / e2e_tests (pull_request) Successful in 22m18s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been cancelled
to 027cee36ad
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 20s
CI / typecheck (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 3m43s
CI / security (pull_request) Successful in 4m7s
CI / integration_tests (pull_request) Successful in 6m20s
CI / unit_tests (pull_request) Failing after 6m31s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 9m25s
CI / benchmark-regression (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
2026-03-31 15:22:21 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from 027cee36ad
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 18s
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 20s
CI / typecheck (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 3m43s
CI / security (pull_request) Successful in 4m7s
CI / integration_tests (pull_request) Successful in 6m20s
CI / unit_tests (pull_request) Failing after 6m31s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 9m25s
CI / benchmark-regression (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
to f57851c0ff
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 46s
CI / security (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 3m51s
CI / integration_tests (pull_request) Successful in 3m53s
CI / unit_tests (pull_request) Failing after 4m23s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 8m37s
CI / e2e_tests (pull_request) Successful in 22m25s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Successful in 55m13s
2026-03-31 15:42:28 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from f57851c0ff
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 19s
CI / helm (pull_request) Successful in 21s
CI / lint (pull_request) Successful in 26s
CI / typecheck (pull_request) Successful in 46s
CI / security (pull_request) Successful in 1m0s
CI / quality (pull_request) Successful in 3m51s
CI / integration_tests (pull_request) Successful in 3m53s
CI / unit_tests (pull_request) Failing after 4m23s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Failing after 8m37s
CI / e2e_tests (pull_request) Successful in 22m25s
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Successful in 55m13s
to 56382af264
Some checks failed
CI / benchmark-publish (pull_request) Waiting to run
CI / build (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 49s
CI / helm (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 3m55s
CI / benchmark-regression (pull_request) Waiting to run
CI / security (pull_request) Successful in 4m8s
CI / unit_tests (pull_request) Successful in 6m28s
CI / docker (pull_request) Successful in 1m21s
CI / integration_tests (pull_request) Successful in 9m28s
CI / coverage (pull_request) Failing after 8m55s
CI / e2e_tests (pull_request) Successful in 21m23s
CI / status-check (pull_request) Failing after 1s
2026-04-01 12:34:34 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from 56382af264
Some checks failed
CI / benchmark-publish (pull_request) Waiting to run
CI / build (pull_request) Successful in 19s
CI / lint (pull_request) Successful in 26s
CI / quality (pull_request) Successful in 49s
CI / helm (pull_request) Successful in 50s
CI / typecheck (pull_request) Successful in 3m55s
CI / benchmark-regression (pull_request) Waiting to run
CI / security (pull_request) Successful in 4m8s
CI / unit_tests (pull_request) Successful in 6m28s
CI / docker (pull_request) Successful in 1m21s
CI / integration_tests (pull_request) Successful in 9m28s
CI / coverage (pull_request) Failing after 8m55s
CI / e2e_tests (pull_request) Successful in 21m23s
CI / status-check (pull_request) Failing after 1s
to 9e108eda1d
Some checks failed
CI / lint (pull_request) Successful in 23s
CI / build (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 47s
CI / quality (pull_request) Successful in 48s
CI / security (pull_request) Successful in 55s
CI / helm (pull_request) Successful in 24s
CI / coverage (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
2026-04-01 13:01:19 +00:00
Compare
hamza.khyari force-pushed feature/resource-handler-content-hash from 9e108eda1d
Some checks failed
CI / lint (pull_request) Successful in 23s
CI / build (pull_request) Successful in 16s
CI / typecheck (pull_request) Successful in 47s
CI / quality (pull_request) Successful in 48s
CI / security (pull_request) Successful in 55s
CI / helm (pull_request) Successful in 24s
CI / coverage (pull_request) Has been cancelled
CI / e2e_tests (pull_request) Has been cancelled
CI / integration_tests (pull_request) Has been cancelled
CI / unit_tests (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
to 18b9d61e35
All checks were successful
CI / build (pull_request) Successful in 20s
CI / lint (pull_request) Successful in 30s
CI / quality (pull_request) Successful in 42s
CI / helm (pull_request) Successful in 26s
CI / security (pull_request) Successful in 1m9s
CI / typecheck (pull_request) Successful in 3m59s
CI / benchmark-publish (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 9m25s
CI / e2e_tests (pull_request) Successful in 17m19s
CI / integration_tests (pull_request) Successful in 21m10s
CI / unit_tests (pull_request) Successful in 6m0s
CI / docker (pull_request) Successful in 2m22s
CI / status-check (pull_request) Successful in 1s
CI / benchmark-regression (pull_request) Successful in 54m57s
2026-04-01 13:02:48 +00:00
Compare
hamza.khyari scheduled this pull request to auto merge when all checks succeed 2026-04-01 13:40:02 +00:00
hamza.khyari deleted branch feature/resource-handler-content-hash 2026-04-01 13:41:59 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core!1066
No description provided.