Skip to content

Align update_project schema patterns with handler implementation for # prefix support#16104

Merged
mnkiefer merged 2 commits intofix-tmp-idsfrom
copilot/sub-pr-16098
Feb 16, 2026
Merged

Align update_project schema patterns with handler implementation for # prefix support#16104
mnkiefer merged 2 commits intofix-tmp-idsfrom
copilot/sub-pr-16098

Conversation

Copy link
Contributor

Copilot AI commented Feb 16, 2026

The compile-time schema (pkg/workflow/js/safe_outputs_tools.json) rejected temporary IDs with leading # (e.g., #aw_abc123), while the runtime schema and handler implementation accepted them. This caused validation failures for valid inputs.

Changes:

  • Updated draft_issue_id pattern: ^aw_[A-Za-z0-9]{3,8}$^#?aw_[A-Za-z0-9]{3,8}$
  • Updated temporary_id pattern: ^aw_[A-Za-z0-9]{3,8}$^#?aw_[A-Za-z0-9]{3,8}$
  • Updated field descriptions to document optional # prefix

Both patterns now match the runtime schema (actions/setup/js/safe_outputs_tools.json) and align with the handler's existing behavior:

// update_project.cjs already strips # prefix
const rawDraftIssueId = typeof output.draft_issue_id === "string" ? output.draft_issue_id.trim() : "";
const draftIssueId = rawDraftIssueId.startsWith("#") ? rawDraftIssueId.slice(1) : rawDraftIssueId;

Addresses feedback: #16098 (comment)


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

…y_id patterns

Align pkg/workflow/js/safe_outputs_tools.json schema with actions/setup/js/safe_outputs_tools.json
and the update_project handler implementation which already accepts and strips # prefix.

Changes:
- Update draft_issue_id pattern from ^aw_[A-Za-z0-9]{3,8}$ to ^#?aw_[A-Za-z0-9]{3,8}$
- Update temporary_id pattern from ^aw_[A-Za-z0-9]{3,8}$ to ^#?aw_[A-Za-z0-9]{3,8}$
- Update descriptions to reflect optional # prefix support

Fixes schema validation failures for inputs like #aw_abc123 that work at runtime.

Addresses: #16098 (comment)

Co-authored-by: mnkiefer <8320933+mnkiefer@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 16, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • https://api.github.com/graphql
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login &#43; &#34;/&#34; &#43; .name .cfg **/*.json --ignore-path ../../../.pretti.github/workflows/test.md ache/go/1.25.0/x-goversion -c &#34;prettier&#34; --wri-c=4 (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login &#43; &#34;/&#34; &#43; .name ache/go/1.25.0/x64/pkg/tool/linu-buildmode=exe (http block)
    • Triggering command: /usr/bin/gh gh repo view --json owner,name --jq .owner.login &#43; &#34;/&#34; &#43; .name ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet --ignore-path ../../../.prettirev-parse (http block)
  • https://api.github.com/repos/actions/ai-inference/git/ref/tags/v1
    • Triggering command: /usr/bin/gh gh api /repos/actions/ai-inference/git/ref/tags/v1 --jq .object.sha (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v3
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v3 --jq .object.sha 180686780 /tmp/go-build1483467474/b234/vet.cfg .cfg js/**/*.json&#39; --git set (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha on&#39; --ignore-path ../../../.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v4 --jq .object.sha t0 (http block)
  • https://api.github.com/repos/actions/checkout/git/ref/tags/v5
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha tsc --noEmit (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha 3076876/b418/timeutil.test -trimpath 3076876/b418/importcfg.link -p github.com/charmrev-parse -lang=go1.24 iiEtxJ64HjgrP/g5FpiJ9ENbZatjTay5oJ/BhqTCoRMGewfss9ZXZGY/X4XoDkfiiEtxJ64HjgrP -C ry=1 rev-parse 3076876/b418/_pkg_.a -c=4 -nolocalimports -importcfg git (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/checkout/git/ref/tags/v5 --jq .object.sha -c 64/pkg/tool/linux_amd64/vet /usr/bin/git d -n 10 .cfg 64/pkg/tool/linu--show-toplevel git rev-�� tup/sh/sanitize_path.sh&#39; &#39;:::/usr/bin:/usr/local/bin&#39; &amp;&amp; echo &#34;$PATH&#34; 64/pkg/tool/linux_amd64/vet /usr/bin/git --noprofile (http block)
  • https://api.github.com/repos/actions/github-script/git/ref/tags/v8
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha on&#39; --ignore-path ../../../.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/github-script/git/ref/tags/v8 --jq .object.sha *.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path ../../../.prettierignore --global x_amd64/vet http.https://gitsh (http block)
  • https://api.github.com/repos/actions/setup-go/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha on&#39; --ignore-path ../../../.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-go/git/ref/tags/v4 --jq .object.sha git status --porcelain --ignore-submodules | head -n 10 (http block)
  • https://api.github.com/repos/actions/setup-node/git/ref/tags/v4
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha on&#39; --ignore-path ../../../.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api /repos/actions/setup-node/git/ref/tags/v4 --jq .object.sha git status --porcelain --ignore-submodules | head -n 10 (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/1/artifacts
    • Triggering command: /usr/bin/gh gh run download 1 --dir test-logs/run-1 3467474/b218/vet.cfg 64/bin/git .prettierignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12345/artifacts
    • Triggering command: /usr/bin/gh gh run download 12345 --dir test-logs/run-12345 3467474/b089/vet.cfg x_amd64/compile (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/12346/artifacts
    • Triggering command: /usr/bin/gh gh run download 12346 --dir test-logs/run-12346 3467474/b103/vet.cfg x_amd64/link (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/2/artifacts
    • Triggering command: /usr/bin/gh gh run download 2 --dir test-logs/run-2 scripts/**/*.js de/node/bin/git .prettierignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/3/artifacts
    • Triggering command: /usr/bin/gh gh run download 3 --dir test-logs/run-3 scripts/**/*.js x_amd64/vet .prettierignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/4/artifacts
    • Triggering command: /usr/bin/gh gh run download 4 --dir test-logs/run-4 scripts/**/*.js .cfg .prettierignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/runs/5/artifacts
    • Triggering command: /usr/bin/gh gh run download 5 --dir test-logs/run-5 scripts/**/*.js x_amd64/vet .prettierignore (http block)
  • https://api.github.com/repos/github/gh-aw/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path */*.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path ../../../.prettierignore (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 100 (http block)
    • Triggering command: /usr/bin/gh gh run list --json databaseId,number,url,status,conclusion,workflowName,createdAt,startedAt,updatedAt,event,headBranch,headSha,displayTitle --workflow nonexistent-workflow-12345 --limit 6 --ignore-path ../../../.prettiHEAD x_amd64/compile /hom�� --write ../../../**/*.json ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet --ignore-path ../../../.prettiinit (http block)
  • https://api.github.com/repos/github/gh-aw/contents/.github%2Fworkflows%2Faudit-workflows.md
    • Triggering command: /opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node --conditions node --conditions development --experimental-import-meta-resolve --require /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/suppress-warnings.cjs /home/REDACTED/work/gh-aw/gh-aw/actions/setup/js/node_modules/vitest/dist/workers/forks.js -buildtags ache/go/1.25.0/x-m git rev-�� --show-toplevel 9a7db02b46c84b201e985cbb es/.bin/git 9233697/b062/_pk/opt/hostedtoolcache/node/24.13.0/x64/bin/node -tests 3076876/b389/gitnode git (http block)
  • https://api.github.com/repos/github/gh-aw/git/ref/tags/v1.0.0
    • Triggering command: /usr/bin/gh gh api /repos/github/gh-aw/git/ref/tags/v1.0.0 --jq .object.sha 580144088/.github/workflows 3467474/b234/vet.cfg /home/REDACTED/work/gh-aw/gh-aw/no-buildmode=exe ignore-path ../.node (http block)
  • https://api.github.com/repos/nonexistent/repo/actions/runs/12345
    • Triggering command: /usr/bin/gh gh run view 12345 --repo nonexistent/repo --json status,conclusion (http block)
  • https://api.github.com/repos/owner/repo/actions/workflows
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo x_amd64/vet son (http block)
    • Triggering command: /usr/bin/gh gh workflow list --json name,state,path --repo owner/repo x_amd64/vet &#34;; \ else \ echo &#34;��� Warning: .github/aw/actions-lock.json does not exist yet&#34;; \ fi (http block)
    • Triggering command: /usr/bin/gh gh workflow list --repo owner/repo --json name,path,state ache/go/1.25.0/x64/pkg/tool/linux_amd64/vet (http block)
  • https://api.github.com/repos/test-owner/test-repo/actions/secrets
    • Triggering command: /usr/bin/gh gh api /repos/test-owner/test-repo/actions/secrets --jq .secrets[].name */*.json&#39; &#39;!../../../pkg/workflow/js/**/*.json&#39; --ignore-path (http block)
  • https://api.github.com/user
    • Triggering command: /usr/bin/gh gh api user --jq .login .js&#39; --ignore-path .prettierignore (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login .js&#39; --ignore-path .prettierigno-errorsas (http block)
    • Triggering command: /usr/bin/gh gh api user --jq .login submodules | head -n 10 ../../../**/*.json 0/x64/lib/node_modules/npm/node_-importcfg --ignore-path ../../../.pretti/tmp/js-hash-test-3184526039/test-hash.js (http block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Update ID pattern cleanup and project logic implementation Align update_project schema patterns with handler implementation for # prefix support Feb 16, 2026
Copilot AI requested a review from mnkiefer February 16, 2026 13:22
@mnkiefer mnkiefer marked this pull request as ready for review February 16, 2026 13:38
Copilot AI review requested due to automatic review settings February 16, 2026 13:38
@mnkiefer mnkiefer merged commit 31b0805 into fix-tmp-ids Feb 16, 2026
@mnkiefer mnkiefer deleted the copilot/sub-pr-16098 branch February 16, 2026 13:38
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR fixes a schema validation mismatch where the compile-time schema rejected temporary IDs with a leading # prefix (e.g., #aw_abc123) while the runtime schema and handler implementation accepted them. The fix ensures consistent validation across the compile-time and runtime environments for the update_project tool's draft issue fields.

Changes:

  • Updated draft_issue_id pattern from ^aw_[A-Za-z0-9]{3,8}$ to ^#?aw_[A-Za-z0-9]{3,8}$ to allow optional # prefix
  • Updated temporary_id pattern from ^aw_[A-Za-z0-9]{3,8}$ to ^#?aw_[A-Za-z0-9]{3,8}$ to allow optional # prefix
  • Updated field descriptions to document the optional # prefix support

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

3 participants