Skip to content

Add new fuzz targets#38

Merged
tomusdrw merged 2 commits intomainfrom
td-check-jam-conformance-targets
May 7, 2026
Merged

Add new fuzz targets#38
tomusdrw merged 2 commits intomainfrom
td-check-jam-conformance-targets

Conversation

@tomusdrw
Copy link
Copy Markdown
Member

@tomusdrw tomusdrw commented May 6, 2026

Summary

Adds seven new JAM implementations from
davxy/jam-conformance:scripts/targets.json
that ship pure Docker-image targets at gp_version 0.7.2:

Team Image Mention Source PR
jamduna ghcr.io/jam-duna/duna-target:latest mkchungs jam-conformance#198
jamzig docker.io/jamzig/jam-conformance-target:latest boymaas jam-conformance#4
tessera ghcr.io/chainscore/tessera:latest prasad-kumkar jam-conformance#63
tsjam ghcr.io/vekexasia/tsjam-target:0.7.2 vekexasia jam-conformance#139
jambda ghcr.io/archelabs/jambda-fuzz-target:latest libingjiang47 jam-conformance#200
jamixir ghcr.io/jamixir/jamixir:0.7.2 danicuki jam-conformance#201
spacejam clearloop/spacejam:latest clearloop jam-conformance#202

Each team gets a *-performance.yml, a *-fuzz.yml, a
teams/<team>/.gitkeep, and a row in the README badge table — same
minimal pattern already used for graymatter etc. (image-only, no
docker_cmd, relies on the standard JAM_FUZZ_* env vars).
Maintainer mentions sourced from the original PRs/issues on
davxy/jam-conformance.

Also drops the stale "Dashboard deploy workflow trigger" step from
agents.mddeploy-dashboard.yml no longer uses
workflow_run.workflows and discovers teams dynamically from
teams/*/.

Test plan

  • Verify each Docker image is publicly pullable: docker pull --platform=linux/amd64 <image> for all seven
  • Trigger each *-performance.yml via workflow_dispatch and confirm minifuzz + picofuzz run end-to-end
  • Trigger each *-fuzz.yml via workflow_dispatch and confirm the demo graymatter source job completes
  • Confirm the seven teams appear on the dashboard after the next deploy-dashboard.yml cron (or manual dispatch)

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Added fuzzing and performance testing workflows for seven new targets: jamduna, jamzig, tessera, tsjam, jambda, jamixir, and spacejam.
    • Updated status page with testing badges for newly supported targets.
  • Documentation

    • Updated onboarding guidelines with standardized workflow naming conventions.
    • Refined new team PR requirements and review checklist procedures.

These four teams ship pure docker-image targets in
davxy/jam-conformance:scripts/targets.json with gp_version 0.7.2,
matching the same minimal pattern this repo already uses for graymatter
et al. (image-only, no docker_cmd — relies on the standard JAM_FUZZ_*
env vars). Maintainer mentions for the fuzz workflows are sourced from
the original PRs/issues on jam-conformance.

Also drops the stale "Dashboard deploy workflow trigger" step from
agents.md: deploy-dashboard.yml no longer uses workflow_run.workflows
and discovers teams dynamically from teams/*/.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

📝 Walkthrough

Walkthrough

Adds multiple GitHub Actions workflows (fuzz and performance) for several targets and updates README and agents.md to add status entries and enforce a workflow naming convention; workflows delegate to existing reusable workflows with target-specific inputs.

Changes

Workflows and Documentation

Layer / File(s) Summary
Workflow templates / triggers
.github/workflows/*-fuzz.yml, .github/workflows/*-performance.yml
Many new workflow files added (fuzz and performance variants) each declaring name, triggers (cron, workflow_dispatch, pull_request path filters) and repository permissions where applicable.
Reusable invocation / inputs
.github/workflows/*-fuzz.yml (calls ./.github/workflows/demo-source.yml), .github/workflows/*-performance.yml (calls ./.github/workflows/reusable-picofuzz.yml)
Each fuzz workflow reuses demo-source.yml and supplies target_name, docker_image, and mention. Each performance workflow reuses reusable-picofuzz.yml and supplies target_name and docker_image.
Targets added
README.md
Inserted Status table rows for new targets (jamduna, jamzig, tessera, tsjam) with badges and links.
Onboarding / naming rules
agents.md
Reduced required items for new-team PRs (5 → 4), added "Workflow naming convention" section, updated checklist to validate workflow naming, and adjusted deploy-dashboard discovery note to teams/*/.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant GitHub as GitHub Scheduler / PR
  participant Workflow as Workflow YAML (repo)
  participant Reusable as Reusable Workflow (demo-source / reusable-picofuzz)
  participant Runner as Actions Runner -> Docker Target

  GitHub->>Workflow: schedule / manual / PR trigger
  Workflow->>Reusable: call reusable workflow with inputs (target_name, docker_image, mention?)
  Reusable->>Runner: spin up Docker image (docker_image) and run tests
  Runner-->>Reusable: results (artifacts / status)
  Reusable-->>Workflow: workflow outcome
  Workflow-->>GitHub: report status / post issues (if configured)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • FluffyLabs/jam-testing#35: Related to changes in demo-source.yml caller behavior (docker_cmd input adjustments) that affect newly added fuzz workflow calls.
  • FluffyLabs/jam-testing#37: Related to changes in reusable-picofuzz.yml inputs (docker_cmd optionality) used by the new performance workflows.
  • FluffyLabs/jam-testing#9: Related documentation changes to agents.md and onboarding/checklist guidance.

Poem

🐰 New workflows hop in line,
Crons and PRs keep perfect time,
Reusable calls spin up the run,
Badges gleam beneath the sun,
A rabbit cheers: the tests are done!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Add new fuzz targets' directly aligns with the PR objective of adding seven new JAM implementation targets (jamduna, jamzig, tessera, tsjam, jambda, jamixir, and spacejam) along with their associated workflow files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch td-check-jam-conformance-targets

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/jamduna-performance.yml:
- Around line 14-16: The workflow is missing the required docker_cmd input;
update the job configuration that sets target_name and docker_image to also
include docker_cmd and set it to a command that references the socket
placeholder {TARGET_SOCK} (e.g., a docker run or curl command targeting
{TARGET_SOCK}); modify the block where target_name: jamduna and docker_image:
'ghcr.io/jam-duna/duna-target:latest' are defined to add the docker_cmd entry
that uses {TARGET_SOCK}.

In @.github/workflows/jamzig-performance.yml:
- Around line 14-16: The workflow is missing the required docker_cmd input;
update the inputs block (near target_name and docker_image) to add a docker_cmd
entry that explicitly includes the {TARGET_SOCK} placeholder (for example use a
command that mounts or passes the socket to the container and references
{TARGET_SOCK}); ensure the key name is exactly docker_cmd and the value string
includes "{TARGET_SOCK}" so the performance workflow complies with the
.github/workflows/*-performance.yml guideline.

In @.github/workflows/tessera-performance.yml:
- Around line 14-16: The workflow step currently sets only the inputs
target_name and docker_image; you must add the required docker_cmd input and
ensure it includes the {TARGET_SOCK} placeholder. Update the step that defines
inputs (references: target_name and docker_image) to include docker_cmd with a
command string that uses {TARGET_SOCK} (for example a shell command that binds
or references the socket), ensuring the workflow conforms to
.github/workflows/*-performance.yml guidelines and that {TARGET_SOCK} is present
in the docker_cmd value.

In @.github/workflows/tsjam-performance.yml:
- Around line 14-16: Add the missing required input "docker_cmd" to the reusable
workflow call alongside the existing "target_name" and "docker_image" inputs;
set its value to a command string that includes the "{TARGET_SOCK}" placeholder
(e.g., a docker run or dockerd command that references {TARGET_SOCK}) so the
call conforms to the reusable workflow contract expecting docker_cmd containing
{TARGET_SOCK}.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 422b7d5a-78a6-4e72-a1d3-5e10d3c28634

📥 Commits

Reviewing files that changed from the base of the PR and between 4422531 and 39bd40e.

📒 Files selected for processing (14)
  • .github/workflows/jamduna-fuzz.yml
  • .github/workflows/jamduna-performance.yml
  • .github/workflows/jamzig-fuzz.yml
  • .github/workflows/jamzig-performance.yml
  • .github/workflows/tessera-fuzz.yml
  • .github/workflows/tessera-performance.yml
  • .github/workflows/tsjam-fuzz.yml
  • .github/workflows/tsjam-performance.yml
  • README.md
  • agents.md
  • teams/jamduna/.gitkeep
  • teams/jamzig/.gitkeep
  • teams/tessera/.gitkeep
  • teams/tsjam/.gitkeep

Comment thread .github/workflows/jamduna-performance.yml
Comment thread .github/workflows/jamzig-performance.yml
Comment thread .github/workflows/tessera-performance.yml
Comment thread .github/workflows/tsjam-performance.yml
These three teams recently switched from GitHub-release binaries to
Docker images in davxy/jam-conformance, so they now match the same
minimal image-only pattern as the four teams added in the prior
commit. Maintainer mentions sourced from the original PRs:
jambda (#200), jamixir (#201), spacejam (#202).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tomusdrw tomusdrw changed the title Add jamduna, jamzig, tessera, and tsjam targets Add new fuzz targets May 6, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/jambda-performance.yml (1)

14-17: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing required docker_cmd input for reusable performance workflow.

reusable-picofuzz.yml is invoked without docker_cmd. This breaks the required per-team workflow contract and also skips the {TARGET_SOCK} placeholder requirement.

Suggested patch
 jobs:
   test:
     uses: ./.github/workflows/reusable-picofuzz.yml
     with:
       target_name: jambda
       docker_image: 'ghcr.io/archelabs/jambda-fuzz-target:latest'
+      docker_cmd: '<entrypoint args including {TARGET_SOCK}>'

As per coding guidelines: required inputs must include docker_cmd, and docker_cmd must contain the {TARGET_SOCK} placeholder.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/jambda-performance.yml around lines 14 - 17, Add the
required docker_cmd input to the reusable workflow invocation so it satisfies
the per-team contract and includes the {TARGET_SOCK} placeholder; update the
workflow block that currently sets target_name: jambda and docker_image:
'ghcr.io/archelabs/jambda-fuzz-target:latest' to also provide a docker_cmd value
(for example a command that launches the target inside the container and
references {TARGET_SOCK}) so the reusable-picofuzz.yml receives the mandatory
docker_cmd containing {TARGET_SOCK}.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/jambda-performance.yml:
- Line 16: The workflow's docker_image setting uses an inaccessible image value
'ghcr.io/archelabs/jambda-fuzz-target:latest' which causes pulls to 404; update
the docker_image key to point to a valid, publicly accessible image (or correct
repository namespace/tag), or push the referenced image to the GHCR registry and
make it public (or configure registry authentication) so the action can pull it;
verify the tag exists and replace the value accordingly in the workflow where
docker_image is defined.

In @.github/workflows/spacejam-performance.yml:
- Around line 14-16: Add the missing required input by adding a docker_cmd entry
to the workflow call alongside target_name and docker_image; ensure the
docker_cmd value includes the socket placeholder {TARGET_SOCK} (e.g., a command
that mounts or references the socket) so the inputs satisfy the per-team
performance workflow contract and the docker_cmd contains the {TARGET_SOCK}
placeholder.

---

Outside diff comments:
In @.github/workflows/jambda-performance.yml:
- Around line 14-17: Add the required docker_cmd input to the reusable workflow
invocation so it satisfies the per-team contract and includes the {TARGET_SOCK}
placeholder; update the workflow block that currently sets target_name: jambda
and docker_image: 'ghcr.io/archelabs/jambda-fuzz-target:latest' to also provide
a docker_cmd value (for example a command that launches the target inside the
container and references {TARGET_SOCK}) so the reusable-picofuzz.yml receives
the mandatory docker_cmd containing {TARGET_SOCK}.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: aa74e960-6bad-4996-8b63-d6da33416be6

📥 Commits

Reviewing files that changed from the base of the PR and between 39bd40e and 20e267e.

📒 Files selected for processing (10)
  • .github/workflows/jambda-fuzz.yml
  • .github/workflows/jambda-performance.yml
  • .github/workflows/jamixir-fuzz.yml
  • .github/workflows/jamixir-performance.yml
  • .github/workflows/spacejam-fuzz.yml
  • .github/workflows/spacejam-performance.yml
  • README.md
  • teams/jambda/.gitkeep
  • teams/jamixir/.gitkeep
  • teams/spacejam/.gitkeep

Comment thread .github/workflows/jambda-performance.yml
Comment thread .github/workflows/spacejam-performance.yml
@tomusdrw tomusdrw merged commit 2768dd2 into main May 7, 2026
82 of 102 checks passed
@tomusdrw tomusdrw deleted the td-check-jam-conformance-targets branch May 7, 2026 07:01
@coderabbitai coderabbitai Bot mentioned this pull request May 7, 2026
4 tasks
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