Skip to content

test(task): add remote cache compatibility suite - #11629

Merged
jdx merged 4 commits into
agent/task-cache-trust-docsfrom
agent/task-cache-server-compat
Aug 3, 2026
Merged

jdx merged 4 commits into
agent/task-cache-trust-docsfrom
agent/task-cache-server-compat

Conversation

@jdx

@jdx jdx commented Aug 2, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • add an executable protocol-v1 compatibility suite for self-hosted remote cache servers
  • cover discovery, byte-preserving uploads/downloads, namespace isolation, immutable conflicts, and deletion
  • document bearer-authenticated and environment-driven suite usage
  • specify idempotent manifest-first deletion behavior in the protocol

Tests

  • shfmt -d scripts/task-cache-remote-compat.sh
  • shellcheck scripts/task-cache-remote-compat.sh
  • markdownlint-cli2 docs/tasks/remote-cache-protocol.md TASK_CACHE_PARITY.md
  • prettier --check docs/tasks/remote-cache-protocol.md TASK_CACHE_PARITY.md

AI-assisted — Tool: Codex; model: unavailable/unavailable; version: unavailable.


Note

Low Risk
Test-only shell script and documentation checkbox; no runtime cache client or server behavior changes in this diff.

Overview
Adds scripts/task-cache-remote-compat.sh, an executable conformance harness operators can run against a self-hosted remote cache using a disposable namespace (CLI args or MISE_TASK_CACHE_COMPAT_* env vars, optional bearer token).

The script exercises protocol v1 end-to-end: /v1/status and /v1/capabilities, blobs:missing, immutable blob uploads with If-None-Match: *, action-result commit (201 then 204 on replay), result fetch, artifact download (including HTTPS redirect handling), namespace isolation (403/404), and 412 when overwriting a blob without the immutable precondition.

TASK_CACHE_PARITY.md marks the remote-cache tracker item “Provide a self-hosting reference or compatibility test suite” as complete.

Reviewed by Cursor Bugbot for commit cac23fc. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: 3f452930-9c66-4c94-bc62-3eedc2d457fa

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread scripts/task-cache-remote-compat.sh Resolved
@greptile-apps

greptile-apps Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds an executable protocol-v1 compatibility suite for self-hosted task-cache servers and marks the corresponding parity item complete.

  • Exercises discovery, content-addressed blob transfer, action-result commits, namespace isolation, redirects, and immutable preconditions.
  • Supports argument- or environment-driven endpoint configuration and optional bearer authentication.

Confidence Score: 4/5

The PR should not merge until the outstanding immutable-blob compatibility coverage is completed.

The suite never retries an identical blob upload or sends mismatched bytes under a declared digest, allowing servers that violate immutable blob-write semantics to pass the advertised compatibility checks.

Files Needing Attention: scripts/task-cache-remote-compat.sh

Important Files Changed

Filename Overview
scripts/task-cache-remote-compat.sh Adds the remote-cache protocol compatibility runner and its end-to-end request assertions.
TASK_CACHE_PARITY.md Marks the self-hosting compatibility-suite milestone complete.

Reviews (16): Last reviewed commit: "test(task): validate content-addressed c..." | Re-trigger Greptile

Comment thread scripts/task-cache-remote-compat.sh Resolved
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from c8ceff1 to 200996c Compare August 2, 2026 03:56
Comment thread scripts/task-cache-remote-compat.sh Resolved
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 200996c to 9c346a5 Compare August 2, 2026 03:59
Comment thread scripts/task-cache-remote-compat.sh Resolved
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 9c346a5 to 45d533c Compare August 2, 2026 04:02
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 45d533c to 5676bce Compare August 2, 2026 13:10
Comment thread scripts/task-cache-remote-compat.sh Resolved
@github-actions

github-actions Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

Instruction counts

benchmark trend instructions Δ wall (min) Δ
env ▃▅▂▁▁▂▄▄▄█ 80,074,952 → 80,158,718 +0.10% 17.64 → 17.62ms -0.14%
hook-env ▅▄▁▃▂▂▃▂▄█ 82,190,914 → 82,387,428 +0.24% 18.34 → 21.26ms +15.95%
ls ▄▃▁▁▁▅▅▅▅█ 73,127,800 → 73,226,372 +0.13% 15.71 → 16.39ms +4.34%
registry ▁▁▂▂▃▆▆█▂▅ 49,102,713 → 49,151,651 +0.10% 11.64 → 12.07ms +3.63%
startup ▃▃▁▂▂▁▁▂▂█ 15,784,751 → 15,847,681 +0.40% 9.04 → 9.09ms +0.50%

No instruction-count regression above 1%.

Only instruction counts gate. Wall clock is shown for context — on identical hardware it moves 4-20% run to run.

Measured by tak — instruction-counted CLI benchmarks, stored in this repository's git notes.

cac23fc49bfc vs e5230aa14775 · measured on the runner, not pushed to the history.

@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 5676bce to d86df80 Compare August 2, 2026 15:18
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch 2 times, most recently from 376212d to 809b726 Compare August 2, 2026 15:27
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 809b726 to c79fc1e Compare August 2, 2026 17:33
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from c79fc1e to 2b51a16 Compare August 2, 2026 18:18
Comment thread scripts/task-cache-remote-compat.sh Resolved
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 2b51a16 to ef4accb Compare August 2, 2026 18:21
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from ef4accb to 695b368 Compare August 2, 2026 18:58
Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from 695b368 to 5ee51bd Compare August 2, 2026 19:10

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 5ee51bd. Configure here.

Comment thread scripts/task-cache-remote-compat.sh Resolved
@jdx
jdx force-pushed the agent/task-cache-server-compat branch 2 times, most recently from 0fc5cc4 to df5bdfc Compare August 3, 2026 00:38
@jdx
jdx force-pushed the agent/task-cache-server-compat branch from df5bdfc to cac23fc Compare August 3, 2026 00:46
@jdx
jdx merged commit 0c809d4 into main Aug 3, 2026
37 of 43 checks passed
@jdx
jdx deleted the agent/task-cache-server-compat branch August 3, 2026 03:04
donbeave pushed a commit to donbeave/mise that referenced this pull request Aug 3, 2026
## Summary
- add an executable protocol-v1 compatibility suite for self-hosted
remote cache servers
- cover discovery, byte-preserving uploads/downloads, namespace
isolation, immutable conflicts, and deletion
- document bearer-authenticated and environment-driven suite usage
- specify idempotent manifest-first deletion behavior in the protocol

## Tests
- `shfmt -d scripts/task-cache-remote-compat.sh`
- `shellcheck scripts/task-cache-remote-compat.sh`
- `markdownlint-cli2 docs/tasks/remote-cache-protocol.md
TASK_CACHE_PARITY.md`
- `prettier --check docs/tasks/remote-cache-protocol.md
TASK_CACHE_PARITY.md`

*AI-assisted — Tool: Codex; model: unavailable/unavailable; version:
unavailable.*

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Low Risk**
> Test-only shell script and documentation checkbox; no runtime cache
client or server behavior changes in this diff.
> 
> **Overview**
> Adds **`scripts/task-cache-remote-compat.sh`**, an executable
conformance harness operators can run against a self-hosted remote cache
using a disposable namespace (CLI args or `MISE_TASK_CACHE_COMPAT_*` env
vars, optional bearer token).
> 
> The script exercises **protocol v1** end-to-end: `/v1/status` and
`/v1/capabilities`, `blobs:missing`, immutable blob uploads with
`If-None-Match: *`, action-result commit (201 then 204 on replay),
result fetch, artifact download (including HTTPS redirect handling),
**namespace isolation** (403/404), and **412** when overwriting a blob
without the immutable precondition.
> 
> **`TASK_CACHE_PARITY.md`** marks the remote-cache tracker item
“Provide a self-hosting reference or compatibility test suite” as
complete.
> 
> <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit
cac23fc. Bugbot is set up for automated
code reviews on this repo. Configure
[here](https://www.cursor.com/dashboard/bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant