From 3f4b15e5504db9d3ae9ed90f2da6a28e2feef418 Mon Sep 17 00:00:00 2001 From: Konstantin Vyatkin Date: Mon, 10 Aug 2026 10:21:19 +0200 Subject: [PATCH 1/2] fix(release): restore Zed grammar submodule metadata Point the Zed extension at WharfLab's containerfile grammar, align the registered grammar ID with its exported parser symbol, and verify submodule metadata in CI so credential cleanup cannot break release checkout again. --- .github/workflows/ci.yml | 2 ++ .gitmodules | 3 +++ _integrations/zed-tally/extension.toml | 6 +++--- _integrations/zed-tally/grammars/dockerfile | 2 +- _integrations/zed-tally/languages/dockerfile/config.toml | 2 +- _integrations/zed-tally/languages/dockerfile/highlights.scm | 2 +- 6 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .gitmodules diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43f4db4c1..0f5ce6480 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,6 +59,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 + - name: Verify submodule metadata + run: git submodule status --recursive - uses: ./.github/actions/shellcheck-wasm - name: Set up Go uses: actions/setup-go@v7 diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..e4b1178e8 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "_integrations/zed-tally/grammars/dockerfile"] + path = _integrations/zed-tally/grammars/dockerfile + url = https://github.com/wharflab/tree-sitter-containerfile.git diff --git a/_integrations/zed-tally/extension.toml b/_integrations/zed-tally/extension.toml index a66771a62..c53d5bf23 100644 --- a/_integrations/zed-tally/extension.toml +++ b/_integrations/zed-tally/extension.toml @@ -6,9 +6,9 @@ repository = "https://github.com/wharflab/tally" schema_version = 1 version = "0.1.0" -[grammars.dockerfile] -commit = "971acdd908568b4531b0ba28a445bf0bb720aba5" -repository = "https://github.com/camdencheek/tree-sitter-dockerfile" +[grammars.containerfile] +commit = "49ad7af2aefffc5ac226995a8bea754f06ef7901" +repository = "https://github.com/wharflab/tree-sitter-containerfile" [language_servers.tally] code_actions_kind = ["quickfix", "source.fixAll.tally"] diff --git a/_integrations/zed-tally/grammars/dockerfile b/_integrations/zed-tally/grammars/dockerfile index 971acdd90..49ad7af2a 160000 --- a/_integrations/zed-tally/grammars/dockerfile +++ b/_integrations/zed-tally/grammars/dockerfile @@ -1 +1 @@ -Subproject commit 971acdd908568b4531b0ba28a445bf0bb720aba5 +Subproject commit 49ad7af2aefffc5ac226995a8bea754f06ef7901 diff --git a/_integrations/zed-tally/languages/dockerfile/config.toml b/_integrations/zed-tally/languages/dockerfile/config.toml index be9ee3e42..217aa05bb 100644 --- a/_integrations/zed-tally/languages/dockerfile/config.toml +++ b/_integrations/zed-tally/languages/dockerfile/config.toml @@ -1,5 +1,5 @@ name = "Dockerfile" -grammar = "dockerfile" +grammar = "containerfile" path_suffixes = ["Dockerfile", "Containerfile", "dockerfile"] line_comments = ["# "] brackets = [ diff --git a/_integrations/zed-tally/languages/dockerfile/highlights.scm b/_integrations/zed-tally/languages/dockerfile/highlights.scm index cc613e2a5..2263d90fb 100644 --- a/_integrations/zed-tally/languages/dockerfile/highlights.scm +++ b/_integrations/zed-tally/languages/dockerfile/highlights.scm @@ -1,6 +1,6 @@ ; Dockerfile instructions set taken from: ; https://docs.docker.com/engine/reference/builder/#overview -; https://github.com/camdencheek/tree-sitter-dockerfile/blob/main/queries/highlights.scm +; https://github.com/wharflab/tree-sitter-containerfile/blob/main/queries/highlights.scm [ "FROM" "AS" From cd0bb09058964256260b9fc5016c7a0c601a3352 Mon Sep 17 00:00:00 2001 From: Konstantin Vyatkin Date: Mon, 10 Aug 2026 10:39:06 +0200 Subject: [PATCH 2/2] fix(release): explain persistent Marketplace publisher blocks Emit the official VS Marketplace support escalation when VSID Concurrency survives every configured retry. --- scripts/release/publish_vsix.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/release/publish_vsix.sh b/scripts/release/publish_vsix.sh index 87c2cfff3..8764a3d78 100644 --- a/scripts/release/publish_vsix.sh +++ b/scripts/release/publish_vsix.sh @@ -51,6 +51,18 @@ esac already_published_pattern='already published|already exists' transient_pattern='RequestBlockedException|resource .Concurrency.|exceeding usage|rate.?limit|too many requests|HTTP (408|409|425|429|5[0-9][0-9])|ECONNRESET|ETIMEDOUT|EAI_AGAIN|socket hang up|temporary unavailable|temporarily unavailable|service unavailable|gateway timeout' +persistent_vsid_pattern='resource .Concurrency. in namespace .VSID.' + +report_persistent_vsid_block() { + local output_file="$1" + if [[ "$registry" != "vscode" ]] || ! grep -Eqi "$persistent_vsid_pattern" "$output_file"; then + return + fi + + echo "::error::Visual Studio Marketplace is persistently blocking the publisher identity with VSID Concurrency." + echo "::error::Stop automated retries and contact VSMarketplace@microsoft.com to clear the publisher/account block." + echo "Include publisher 'wharflab', extension 'wharflab.tally', event ID 3000, and the failed workflow URL." +} publish_one() { local vsix="$1" @@ -95,6 +107,7 @@ for index in "${!vsixes[@]}"; do fi if (( attempt >= max_attempts )) || ! grep -Eqi "$transient_pattern" "$output_file"; then + report_persistent_vsid_block "$output_file" rm -f "$output_file" exit "$status" fi