Skip to content

feat(toolchain): toolchain-owned agent-skill warnings, codeload installs, and baml-old_skills archive - #4001

Merged
ATX24 merged 28 commits into
canaryfrom
dhilan/update-mechanism
Jul 13, 2026
Merged

ATX24 merged 28 commits into
canaryfrom
dhilan/update-mechanism

Conversation

@ATX24

@ATX24 ATX24 commented Jul 13, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Moves the agent-skill freshness system wholly into the toolchain binary and rounds out the install flow: the "install/upgrade your skill" warning now ships with every nightly (no wrapper release needed), fires only on the authoring commands, and baml agent install archives whatever it replaces.

New features

  • Toolchain-owned skill warning (skill_check in baml_cli): before init, run, generate, and pack — and only those — the CLI
    checks the project for installed baml-* skills and prints one of:

    • warning: No baml skill is installed, set it up with baml agent install. (no skills found between the cwd and $HOME)
    • warning: Your baml skill is outdated, use baml agent install to upgrade it. (installed provenance is behind the skill repo's latest
      commit)

    The check never blocks on the network: warnings are decided from local caches, and a background refresh of the latest-commit cache runs at
    most once per 24h (throttled by a marker even when offline, disabled via [update] auto_check = false in ~/.baml/config.toml). All other
    commands — check, describe, fmt, lsp, agent, etc. — never nag.

  • Replaced skills are archived, not deleted: when baml agent install overwrites an existing skill, the previous version moves to
    baml-old_skills/<name>/ inside the same skills directory (one slot per skill — each install keeps the immediately-previous copy). The archive
    doubles as the failure-recovery source. Archived copies nest one level deeper than the skills/<name>/SKILL.md layout, so agent harnesses don't
    discover them (verified against a live Claude Code session), the missing-skill detection ignores them, and --from <dir> re-ingestion filters
    them out.

  • Wrapper cleanup: all skill-warning machinery is removed from the baml wrapper (pass-through warning, post-toolchain use/update nudge,
    skill half of the lazy refresh, skill section of toolchain status). None of it had ever shipped — it was added in feat(toolchain): outdated warnings for toolchain + agent skills, install skills from repo head #3970 without a wrapper
    version bump — so published wrapper behavior is unchanged and the wrapper stays at 0.2.0. The shared logic (warning decision, project-skills
    walk, TTL/marker throttle, auto-check config gate) now lives in baml_release::skills.

Expected behavior (first-run journey)

Starting from an empty directory:

$ baml init
warning: No baml skill is installed, set it up with baml agent install.
    Creating baml.toml (project)
    Creating baml_src/main.baml

$ baml agent install
Installed BAML agent skills in <project>

Claude Code:
  .claude/skills/baml-*/SKILL.md

Codex / OpenCode:
  .agents/skills/baml-*/SKILL.md
  • The install downloads the skill repo's main-branch tarball from codeload.github.com — never the GitHub REST API (no credentials, no
    unauthenticated rate limit) — resolves the project root from the cwd (baml.toml/baml_src owner, bounded by the git repo / $HOME), and
    records the tarball's source commit as provenance in ~/.baml/state.toml.
  • If a skill was already installed, the old version is kept at .claude/skills/baml-old_skills/baml-core/ (and the .agents twin) while the
    new one replaces baml-core/.
  • Subsequent run/generate/pack/init are silent while the installed commit matches the repo head; once the skill repo advances (checked
    in the background ≤ once/day), they warn Your baml skill is outdated… until the next baml agent install.
  • Custom-source installs (--from <url|tarball|dir>) record no provenance, so they keep nudging toward an official install by design.

Tests

  • New e2e suites: skill_warning_e2e.rs (11 tests: whitelist on/off, missing vs outdated vs current, background refresh persistence, offline
    throttling, auto-check opt-out, archive-not-installed) and the first-run journey in agent_install_e2e.rs (init warns → plain install from a
    codeload stub that 404s any API path → next command quiet).
  • Unit tests for the archive rotation (single slot keeps only the previous version) and the shared warning/throttle helpers in baml_release.
  • exit_code_e2e.rs now isolates BAML_HOME per test so CLI tests never read the developer's real ~/.baml or touch the network.

Summary by CodeRabbit

  • New Features
    • Added passive, cache-driven agent-skill install/upgrade warnings for select authoring commands, with TTL-throttled background refresh of the cached “latest skill commit”.
    • Updated agent skill installs to keep replaced versions in a single baml-old_skills/ archive slot (per skill name) with rollback on failure.
  • Bug Fixes
    • Wrapper freshness scope narrowed to channel-manifest only; wrapper no longer computes or prints agent-skill freshness warnings.
  • Documentation
    • Clarified update.auto_check to describe wrapper manifest refresh only.
  • Tests
    • Revised and added e2e coverage for wrapper toolchain warnings, agent install/rollback, and passive skill warning behavior.

ATX24 and others added 24 commits July 10, 2026 12:30
…helpers

New baml_release::skills module shared by the wrapper and baml-cli: skill
repo URL builders (env-overridable for mirrors/tests), [skills] provenance
state in state.toml written via read-modify-write so it never clobbers the
wrapper-owned [channels.*] sections, a latest-commit freshness cache, and a
GitHub API fetch for the skill repo head commit.

Co-authored-by: Cursor <[email protected]>
…rovenance

baml agent install now defaults to the current head of BoundaryML/baml-skill:
it resolves the main commit SHA first, downloads the tarball pinned to that
exact commit, and records [skills] provenance in state.toml (plus the
freshness cache) after a successful install. The --latest flag is removed
since it is the standard behavior; --from remains for custom sources and the
toolchain-release snapshot survives only behind
BAML_AGENT_SKILLS_RELEASE_VERSION. Includes an e2e test that runs the real
binary against a stubbed GitHub server and asserts the recorded provenance.

Co-authored-by: Cursor <[email protected]>
…ated

The wrapper now surfaces staleness on normal commands: before exec'ing
baml-cli it compares the recorded channel version against the cached channel
manifest and the [skills] provenance against the cached latest skill commit,
printing a styled bold-yellow warning: line on stderr when either is behind.

Caches auto-refresh over the network at most once per 24h window (5s timeout,
silent on failure, throttled by a .last-check marker so offline machines do
not retry every command), activating the previously dead [update] auto_check
config flag with default-on/opt-out semantics. toolchain status gains a skill
section and toolchain use/update do a best-effort skill check afterward. The
wrapper's State struct now round-trips foreign state.toml sections so it
cannot drop the CLI-written [skills] entry. Covered by unit tests plus an
e2e suite that runs the real wrapper binary against a temp BAML_HOME.

Co-authored-by: Cursor <[email protected]>
Projects without any baml-* agent skills now get a warning on every command
(No baml skill is installed, set it up with baml agent install), instead of
staying silent. Projects with skills keep the upgrade warning when provenance
is missing or behind the cached latest commit; the project-skills check is
now the primary gate, so global provenance no longer triggers upgrade
warnings in skill-less projects. Decision logic extracted into a pure
skill_warning_message helper with unit tests, plus updated e2e coverage.

Co-authored-by: Cursor <[email protected]>
CI runs clippy with -D warnings, which rejected the numeric casts in the
skills date helper (cast_possible_wrap/truncation/sign_loss), a
nonminimal_bool in file_older_than, and format_push_string in the e2e
test. Replace the casts with try_from with in-range fallbacks and
simplify the boolean with is_none_or.

Co-authored-by: Cursor <[email protected]>
…se pipeline

agent install now pulls the skill repo head directly from GitHub, so the
versioned baml-agent-skills-{version}.tar.gz release asset has no
consumers. Remove the build-agent-skills job, the packaging script, and
the BAML_AGENT_SKILLS_RELEASE_VERSION escape hatch that pointed at it.

Co-authored-by: Cursor <[email protected]>
- agent install --from now clears recorded provenance instead of leaving
  a stale commit that misreports custom content as current
- write_skills_state treats only a missing state.toml as empty; corrupt
  or unreadable files error instead of being silently replaced
- passive cache refreshes share one 5s wall-clock budget instead of up
  to 5s each
- skill detection requires a baml-* directory containing SKILL.md, so
  leftover empty directories don't suppress the install prompt

Co-authored-by: Cursor <[email protected]>
…uto-check

The passive path inlined its own fetch-then-persist sequence; route it
through the same helper the explicit toolchain commands use so there is
exactly one fetch-and-cache path and one compare-and-warn path, with
trigger policy (TTL-gated vs forced) as the only difference.

Co-authored-by: Cursor <[email protected]>
…ad of before it

Warnings from existing caches still print immediately (no network).
When a refresh is due (at most once per TTL window), it now runs on a
background thread while baml-cli executes; the wrapper spawns and waits
instead of exec'ing on that rare path, joins the refresh with whatever
remains of the 5s budget after the command exits, and prints only
warnings the fresh caches newly justify (never duplicating one already
shown). The common no-refresh case keeps the zero-overhead exec path.

Co-authored-by: Cursor <[email protected]>
…Hub API

baml agent install resolved the skill repo head via an unauthenticated
GET to api.github.com, whose 60-requests/hour per-IP rate limit made
installs hard-fail with HTTP 403 on shared-IP environments (CI, agent
sandboxes) — with no fallback and no offline path.

The REST call only existed to learn the head SHA before downloading the
tarball from codeload.github.com, which is not API-rate-limited and
needs no credentials. Drop it: download the main-branch tarball
directly, and recover the exact commit for provenance from the pax
global header (comment=<sha>) that git archive embeds in every GitHub
tarball. Archives without the header (custom mirrors) install fine and
just skip provenance, matching --from semantics. The download error now
points at the --from escape hatch.

The wrapper's passive freshness check still uses the REST API, but it
is throttled to once per day and silent on failure, so a rate limit
there can no longer block anything.

Co-Authored-By: Claude Fable 5 <[email protected]>
… dir

Without --dir, baml agent install picked its root via an unbounded
ancestor walk that accepted any directory owning a bare baml_src/. A
stray ~/baml_src made installs run from ~/some/project land the skills
in $HOME instead of the project.

Detection is now scoped to where a project can plausibly be: inside a
git repo the walk never leaves the repo (nearest baml.toml or baml_src
owner, else the repo root, where agent harnesses discover
.claude/skills); outside one it stops before the home directory and
falls back to the current directory. The decision lives in a pure
detect_install_root_in so the boundaries are unit-testable without env
or cwd mutation.

Co-Authored-By: Claude Fable 5 <[email protected]>
Two review findings on the bounded walk: a git toplevel rooted at (or
containing) the home directory — dotfiles worktrees, home-as-git-repo —
slipped past the ancestor filter and reopened the stray-~/baml_src
hole, and with no determinable home directory the non-git walk was
unbounded to the filesystem root. Reject home-containing toplevels, and
without a home boundary don't walk above cwd at all: installing at cwd
is always safe. Also satisfies clippy's unnecessary_to_owned in the
test archive helper.

Co-Authored-By: Claude Fable 5 <[email protected]>
Move the skill warning decision (missing vs outdated), the cwd-to-home
project-skills walk, the TTL/marker refresh throttle, and the
[update] auto_check config gate into baml_release::skills so the toolchain
binary can own the passive skill check.

Co-Authored-By: Claude Fable 5 <[email protected]>
…ommands

Print the passive skill warning before the core authoring commands (run,
generate, pack) from the local caches, and refresh the latest-commit
cache in the background at most once per TTL window. Living in the
toolchain means the warning ships with every nightly instead of waiting
on a wrapper release; the whitelist keeps the nag out of machine-facing
and utility invocations.

The exit-code e2e harness now isolates BAML_HOME (with auto-check off)
so CLI tests neither read the developer's real ~/.baml nor touch the
network, and the clean-stderr run test installs skills in its fixture.

Co-Authored-By: Claude Fable 5 <[email protected]>
The toolchain binary now owns the passive skill warning and the
latest-commit cache refresh, so remove the wrapper's copy: the
pass-through warning, the post-toolchain-change nudge, the skill half of
the lazy refresh, and the skill section of toolchain status. None of it
had shipped (added in #3970 without a wrapper version bump), so the
published wrapper's behavior is unchanged and no wrapper release is
needed for the warning to reach users.

Co-Authored-By: Claude Fable 5 <[email protected]>
baml init sets up the project quietly, the first authoring command
(generate) warns that no skill is installed, a plain baml agent install
resolves the project root from the cwd and installs .claude/skills and
.agents/skills from the codeload-shaped tarball stub (which 404s
anything but the archive endpoint, so a regression to the GitHub REST
API fails the test), and the next authoring command is quiet.

Co-Authored-By: Claude Fable 5 <[email protected]>
…nism

# Conflicts:
#	baml_language/crates/baml_cli/tests/agent_install_e2e.rs
Several doc comments still described the wrapper as the component that
refreshes the latest-commit cache and reports stale skills; both jobs
moved to the toolchain's passive authoring-command check, and the
missing-skill prompt no longer fires on every command.

Co-Authored-By: Claude Fable 5 <[email protected]>
A brand-new user's first command is baml init, so it should carry the
install nudge; the first-run journey test asserts it again.

Co-Authored-By: Claude Fable 5 <[email protected]>
When agent install replaces an existing skill, move the previous
version into baml-old_skills/<name>/ inside the same skills directory
(one slot per skill; each install keeps the immediately-previous copy)
instead of deleting it. The archive doubles as the failure-recovery
source, replacing the hidden temp backup. Archived copies nest one
level deeper than the <skills>/<name>/SKILL.md layout, so neither agent
harnesses nor the missing-skill detection treat them as installed.

Co-Authored-By: Claude Fable 5 <[email protected]>
@vercel

vercel Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview, Comment Jul 13, 2026 10:55pm
promptfiddle Ready Ready Preview, Comment Jul 13, 2026 10:55pm
promptfiddle2 Ready Ready Preview, Comment Jul 13, 2026 10:55pm

Request Review

@github-actions

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

@coderabbitai

coderabbitai Bot commented Jul 13, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 16f4a29b-6b79-475a-8011-c66abbb3cea1

📥 Commits

Reviewing files that changed from the base of the PR and between 4827e27 and 7f23050.

📒 Files selected for processing (1)
  • baml_language/crates/baml_cli/tests/agent_install_e2e.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • baml_language/crates/baml_cli/tests/agent_install_e2e.rs

📝 Walkthrough

Walkthrough

The wrapper now refreshes only channel manifests. Passive agent-skill freshness checks run in selected baml-cli commands, while skill installation archives the immediately previous version in a deterministic directory.

Changes

Skill freshness and CLI checks

Layer / File(s) Summary
Shared freshness state and warning logic
baml_language/crates/baml_release/src/skills.rs
Adds cached latest-commit handling, project skill detection, warning selection, auto-check gating, TTL throttling, and unit tests.
CLI command guard and passive refresh
baml_language/crates/baml_cli/src/skill_check.rs, baml_language/crates/baml_cli/src/commands.rs, baml_language/crates/baml_cli/src/lib.rs, baml_language/crates/baml_cli/tests/*
Runs skill checks for Init, Run, Generate, and Pack, with bounded background refresh and end-to-end coverage.

Wrapper manifest freshness

Layer / File(s) Summary
Manifest-only wrapper refresh
baml_language/crates/baml/src/main.rs, baml_language/crates/baml/tests/freshness_e2e.rs
Removes wrapper skill warnings and refreshes, retains channel-manifest warnings, removes skill status output, and narrows freshness tests accordingly.

Skill installation archives

Layer / File(s) Summary
Previous-version archive and rollback
baml_language/crates/baml_cli/src/agent_command.rs, baml_language/crates/baml_cli/tests/agent_install_e2e.rs
Stores the previous skill version in baml-old_skills, restores it on failed replacement, rejects the reserved name, and verifies installation provenance and warning suppression.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Developer
  participant RuntimeCli
  participant SkillCheck
  participant SkillCache
  Developer->>RuntimeCli: run an authoring command
  RuntimeCli->>SkillCheck: start passive check
  SkillCheck->>SkillCache: read skill state and cached commit
  SkillCheck-->>Developer: print missing or outdated warning
  SkillCheck->>SkillCache: refresh latest commit when due
Loading

Possibly related PRs

Poem

I hop through caches, neat and bright,
Old skills tucked away just right.
Manifests refresh, warnings chime,
CLI checks arrive on time.
Thump-thump—freshness finds its way!

🚥 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 clearly captures the main changes: toolchain-owned skill warnings, codeload installs, and the baml-old_skills archive.
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dhilan/update-mechanism

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
baml_language/crates/baml_cli/tests/agent_install_e2e.rs (1)

180-185: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert generate succeeds before checking stderr.

Unlike steps 1 and 2, this step doesn't check output.status.success(). A generate failure unrelated to skill freshness (e.g., a broken generator config) would still pass this assertion as long as stderr doesn't mention "baml skill", weakening the "next command is quiet" check this step is meant to validate.

✅ Proposed fix
     let output = run(&["generate"]);
+    assert!(
+        output.status.success(),
+        "generate failed: {}",
+        String::from_utf8_lossy(&output.stderr)
+    );
     let stderr = String::from_utf8_lossy(&output.stderr);
     assert!(!stderr.contains("baml skill"), "{stderr}");
🤖 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 `@baml_language/crates/baml_cli/tests/agent_install_e2e.rs` around lines 180 -
185, Update the Step 3 assertion around run(["generate"]) to first assert
output.status.success(), preserving the existing stderr diagnostic, then perform
the “baml skill” absence check. This ensures the quietness assertion only passes
when generate completes successfully.
🤖 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 `@baml_language/crates/baml_cli/src/agent_command.rs`:
- Around line 647-677: Reject any skill whose name equals OLD_SKILLS_DIR before
installation or replacement begins, returning a clear error instead of
processing it. Apply the validation at the install entry point so upstream
skills named “baml-old_skills” cannot reach replace_skill_dir or conflict with
the internal archive path.

---

Nitpick comments:
In `@baml_language/crates/baml_cli/tests/agent_install_e2e.rs`:
- Around line 180-185: Update the Step 3 assertion around run(["generate"]) to
first assert output.status.success(), preserving the existing stderr diagnostic,
then perform the “baml skill” absence check. This ensures the quietness
assertion only passes when generate completes successfully.
🪄 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: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 1f3823a8-69b6-4cd0-a8ed-33f2b0b98743

📥 Commits

Reviewing files that changed from the base of the PR and between a05ec5a and 6e5de6d.

📒 Files selected for processing (10)
  • baml_language/crates/baml/src/main.rs
  • baml_language/crates/baml/tests/freshness_e2e.rs
  • baml_language/crates/baml_cli/src/agent_command.rs
  • baml_language/crates/baml_cli/src/commands.rs
  • baml_language/crates/baml_cli/src/lib.rs
  • baml_language/crates/baml_cli/src/skill_check.rs
  • baml_language/crates/baml_cli/tests/agent_install_e2e.rs
  • baml_language/crates/baml_cli/tests/exit_code_e2e.rs
  • baml_language/crates/baml_cli/tests/skill_warning_e2e.rs
  • baml_language/crates/baml_release/src/skills.rs

@github-actions

github-actions Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

Binary size checks passed

✅ 7 passed

Artifact Platform File Gzip Gated on Baseline Delta Status
✅ baml-cli Linux 🔒 21.9 MB 9.4 MB file 21.5 MB +391.3 KB (+1.8%) OK
✅ packed-program Linux 🔒 15.8 MB 6.7 MB file 15.6 MB +138.7 KB (+0.9%) OK
✅ baml-cli macOS 🔒 16.9 MB 8.1 MB file 16.6 MB +299.6 KB (+1.8%) OK
✅ packed-program macOS 🔒 12.2 MB 5.9 MB file 12.1 MB +83.9 KB (+0.7%) OK
✅ baml-cli Windows 🔒 18.4 MB 8.4 MB file 18.1 MB +300.0 KB (+1.7%) OK
✅ packed-program Windows 🔒 13.1 MB 6.0 MB file 13.0 MB +65.0 KB (+0.5%) OK
✅ bridge_wasm WASM 14.6 MB 🔒 4.1 MB gzip 4.1 MB +72.4 KB (+1.8%) OK

🔒 = the size this artifact is GATED on (ceiling + delta). Binaries gate on file size (installed binary); WASM gates on gzip (download size). The other size is shown for information only.


Generated by cargo size-gate · workflow run

An upstream skill named old_skills (legacy layout) or baml-old_skills
(direct layout) would collide with the archive directory inside the
skills dir: replacing it would rename skills/baml-old_skills into its
own archive slot. Reject the reserved name during normalization, before
anything touches disk.

Addresses CodeRabbit review on #4001.

Co-Authored-By: Claude Fable 5 <[email protected]>
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 13, 2026 21:50 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 13, 2026 21:52 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 13, 2026 21:58 Inactive
…ness check

A generate failure unrelated to skill freshness could previously slip
past step 3 as long as stderr didn't mention skills. The fixture now
gets a [generator.py] section after init so generate genuinely
succeeds, and the step asserts success before checking quietness.

Addresses CodeRabbit nitpick on #4001.

Co-Authored-By: Claude Fable 5 <[email protected]>
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 13, 2026 21:59 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 13, 2026 22:00 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 13, 2026 22:08 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 13, 2026 22:10 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 13, 2026 22:18 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 13, 2026 22:31 Inactive
@vercel
vercel Bot temporarily deployed to Preview – beps July 13, 2026 22:35 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle2 July 13, 2026 22:43 Inactive
@vercel
vercel Bot temporarily deployed to Preview – promptfiddle July 13, 2026 22:55 Inactive
@ATX24
ATX24 added this pull request to the merge queue Jul 13, 2026
Merged via the queue into canary with commit 9a99133 Jul 13, 2026
54 checks passed
@ATX24
ATX24 deleted the dhilan/update-mechanism branch July 13, 2026 23:14

This branch was previously deployed

3 inactive deployments
Preview – promptfiddle — 6adc9dd5 Deployed Jul 13, 2026 by vercel[bot]
Preview – promptfiddle2 — 6adc9dd5 Deployed Jul 13, 2026 by vercel[bot]
Preview – beps — 6adc9dd5 Deployed Jul 13, 2026 by vercel[bot]
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