AI Dev Pulse–2026-09-27

At a glance

  • Copilot CLI v1.0.89-5, a prerelease, reads Claude Code rule files in .claude/rules as custom instructions, while npm's latest tag is still v1.0.88.
  • Claude Agent SDK Python v0.2.160 fixes "Stream closed" follow-up turns after background subagents, and TypeScript v0.3.283 changes what an omitted thinking-token value means.
  • Kilo Code v7.8.1 publishes a signed CycloneDX SBOM for every release artifact, bound to its SHA-256.
  • Claude Code, Codex and Gemini CLI posted no new stable release after Friday evening.

Sunday is a short brief because the weekend was thin, and most of what landed sat in a prerelease channel, a pair of SDK updates and a third-party agent. That still adds up to three useful changes, because one lets a team keep a single set of rules for two agents, one changes how SDK-hosted agents behave around subagents and thinking budgets, and one shows what a verifiable agent download looks like.

Treat today as a housekeeping Sunday: move your team rules into the one folder both agents can read, pin the Agent SDK before Monday’s CI runs, and verify one agent binary against its checksum and SBOM instead of trusting the download.

Top Stories

Copilot CLI prerelease v1.0.89-5 reads your Claude Code rules

Practical dev impact: Copilot CLI v1.0.89-5 (11:36 PM ET, 26 Sep) adds support for Claude Code rule files in .claude/rules as custom instructions, so a repo that already keeps its rules there no longer needs a second copy in another format to steer both agents. The release note does not say whether Copilot honors the paths frontmatter that Claude Code uses to scope a rule to certain files, and it names only the project .claude/rules folder, so treat path-scoped rules as unverified in Copilot until you test one yourself.

The same build also fixes how extensions behave under enterprise managed settings and managed MCP policy. The earlier v1.0.89-4 (5:13 PM ET, 25 Sep) has Auto suggest a routing tier and removes the Fast profile, so a stored Fast preference now falls back to Balance, and it fixes Gemini models returning a 400 when an MCP tool schema puts type or properties beside anyOf. GitHub marks both builds as prereleases and npm’s latest tag is still v1.0.88, so install @github/copilot@prerelease on one test machine, confirm your rules show up, and leave the fleet on stable until v1.0.89 reaches latest.

Claude Agent SDK v0.2.160 and v0.3.283: a Python subagent fix and a TypeScript thinking-budget change

Practical dev impact: Saturday covered the Claude Code v2.1.283 client, and the SDK releases that followed matter to anyone hosting Claude Code inside a tool or pipeline. Python v0.2.160 (6:32 PM ET, 25 Sep) fixes follow-up turns that failed with “Stream closed” after background subagents when a session used hooks, can_use_tool or SDK MCP servers, because the SDK now keeps stdin open until the CLI reports idle. That wait has a ceiling set by CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS, which defaults to 10 minutes, and the release bundles CLI v2.1.283. TypeScript v0.3.283 (5:50 PM ET, 25 Sep) reaches parity with Claude Code v2.1.283 and carries one behavior change to read before upgrading, since omitting the value in set_max_thinking_tokens now leaves the session’s budget unchanged while sending null resets it. It also reports plugin_errors on system/init, includes warnings and notices in stream-json output as informational system messages, and fixes rewound branches in getSessionMessages() and forkSession(). Pin whichever SDK you use, review any code that changes the thinking budget mid-session, and set a lower wait ceiling in CI if a ten-minute wait would tie up a runner.

Kilo Code v7.8.1 ships a signed SBOM with every artifact

Practical dev impact: Kilo Code v7.8.1 (1:16 PM ET, 25 Sep) is a stable release that publishes a CycloneDX software bill of materials for every release artifact, binds each one to the artifact’s SHA-256 and signs it as a GitHub attestation. The release assets carry .cdx.json sidecars next to the archives along with a kilo-cli-SHA256SUMS file, and the attestation on the Linux x64 CLI archive uses the CycloneDX predicate type, which matters because gh attestation verify checks SLSA provenance by default and needs --predicate-type to look for an SBOM instead. The pull request behind it uses CycloneDX 1.6, ties the work to the EU Cyber Resilience Act and leaves vulnerability scanning and VEX for a follow-up, so today the SBOM is an inventory rather than a scan. The release also includes the v7.8.0 change that blocks variable references in project MCP headers under mcp.servers. Even if you do not run Kilo, this is the bar for every agent binary you install, so verify one archive by hand this week.

What else moved, and what did not

Practical dev impact: Claude Code is still on v2.1.283 from Friday evening, and Codex has posted only v0.159.0 alphas and v0.158 alpha patches since v0.157.1, none with release notes. Gemini CLI stable is still v0.61.0 from 23 Sep, while the v0.63.0 nightly from 9:20 PM ET, 25 Sep includes a change to align policy redirection gates, path validation and workflow parsing that is worth watching but not pinning. Cursor’s changelog has nothing newer than its 23 Sep Rollouts and Security Review entry, and GitHub’s changelog has nothing after 25 Sep. For framework users, pydantic-ai v2.51.0 (7:19 PM ET, 25 Sep) now raises a UserError when a realtime tool_choice forces a tool call on OpenAI, Azure OpenAI or xAI, so check realtime agents before bumping, and Cline Desktop v0.0.37 (10:28 PM ET, 25 Sep) stops OpenAI models reached through Bedrock inference profiles from failing on reasoningConfig when reasoning effort is set.

Practical Impact Analysis

The through-line this weekend is that the work is shifting from choosing agents to making them agree with each other. Teams that run more than one agent have paid for it in duplicated instructions that drift apart, so a Copilot CLI build that reads the same .claude/rules folder as Claude Code points toward one rules folder as the source of truth rather than one copy among several. The catch is that Claude Code’s docs describe rules as context rather than enforcement and Copilot reads them as custom instructions, which is why anything that must never happen still belongs in hooks or managed settings, and why the unanswered paths question is worth a ten-minute test before you rely on scoping.

The SDK releases are the same idea one layer down, because a pipeline that embeds Claude Code inherits its subagent and thinking-budget behavior whether or not anyone read the notes. A turn that fails after a background subagent looks like a flaky model until you learn it was stdin closing early, so pinning the SDK now is cheaper than debugging it on Monday while a deliberate wait ceiling keeps the fix from becoming a stuck runner.

The Kilo SBOM ties the two together, because once agents share rules and run in CI, the binary itself becomes part of the trust chain. A signed inventory bound to the artifact’s digest takes minutes to check, while the scan that is still missing is a reminder that an inventory is where supply-chain work starts rather than where it ends.

Tutorial

Shared rules, pinned SDK, one verified binary. About twenty minutes on a throwaway branch. The block needs bash, curl, jq, npm, pip, sha256sum and gh, and it is safe to run in an empty directory because the installs only run when you set INSTALL=yes. The Kilo step is a Linux x64 example that downloads the Linux archive and checks it with GNU sha256sum, so macOS readers need to swap in their platform’s archive and checksum tool.

  1. Put one team rule in .claude/rules/, which Claude Code already reads and the Copilot CLI v1.0.89-5 prerelease now reads as custom instructions. Leave out paths frontmatter for this test, since the release note does not confirm Copilot honors it. The block writes an example testing.md only if none exists, so replace its text with your own rule.
  2. Check npm’s dist-tags. As of 27 Sep, latest is still v1.0.88 and v1.0.89-5 is available only on the prerelease tag.
  3. On one test machine, rerun with INSTALL=yes to install the Copilot prerelease and pin the Agent SDK, keeping only the pin for your language, then start a Copilot session in the repo and ask what your testing rule says.
  4. Review any code that changes the thinking budget mid-session, and in CI set CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS below the 10-minute default if a long wait would block a runner. The value in the block is an example.
  5. Verify one Kilo Code v7.8.1 CLI archive against its checksum and SBOM in a scratch directory, then run the documented gh attestation verify command with the CycloneDX predicate type and check that it reports success. That command needs a signed-in gh whose version includes the attestation command. The block skips that step if your gh has no attestation command.
bash Tutorial
#!/usr/bin/env bash
# Shared rules, pinned SDK, one verified Kilo Code archive (Linux example).
set -euo pipefail

# 1) One rule file both agents read (example text: replace with your own rule)
mkdir -p .claude/rules
if [ ! -e .claude/rules/testing.md ]; then
  cat > .claude/rules/testing.md <<'RULES'
# Testing rules (example, replace with your team's rules)
- Run the unit tests before proposing a commit.
- Never edit files under vendor/.
RULES
fi

# 2) Copilot CLI v1.0.89-5 is prerelease only; npm "latest" is still v1.0.88

... click "Show full code" below to expand
▸ Show full code (43 lines)
#!/usr/bin/env bash
# Shared rules, pinned SDK, one verified Kilo Code archive (Linux example).
set -euo pipefail

# 1) One rule file both agents read (example text: replace with your own rule)
mkdir -p .claude/rules
if [ ! -e .claude/rules/testing.md ]; then
  cat > .claude/rules/testing.md <<'RULES'
# Testing rules (example, replace with your team's rules)
- Run the unit tests before proposing a commit.
- Never edit files under vendor/.
RULES
fi

# 2) Copilot CLI v1.0.89-5 is prerelease only; npm "latest" is still v1.0.88
npm view @github/copilot dist-tags

# 3) Installs run only with INSTALL=yes, on ONE test machine
if [ "${INSTALL:-no}" = "yes" ]; then
  npm install -g @github/copilot@prerelease
  pip install claude-agent-sdk==0.2.160               # Python SDK pin
  npm install @anthropic-ai/claude-agent-sdk@0.3.283  # TypeScript SDK pin
fi
# 4) CI example (2 minutes; the default ceiling is 10 minutes):
#   export CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS=120000

# 5) Verify one Kilo Code v7.8.1 CLI archive in a scratch directory
BASE="https://github.com/Kilo-Org/kilocode/releases/download/v7.8.1"
ASSET="kilo-linux-x64.tar.gz"
WORK="$(mktemp -d)" && cd "$WORK"
curl -fsSLO "$BASE/$ASSET"
curl -fsSLO "$BASE/$ASSET.cdx.json"
curl -fsSLO "$BASE/kilo-cli-SHA256SUMS"
sha256sum --ignore-missing -c kilo-cli-SHA256SUMS
jq -r '.bomFormat, .specVersion, (.components | length)' "$ASSET.cdx.json"
if gh attestation --help >/dev/null 2>&1; then
  # Check that it reports success
  gh attestation verify "$ASSET" --repo Kilo-Org/kilocode \
    --predicate-type https://cyclonedx.org/bom
else
  echo "SKIP: this gh has no 'attestation' command; upgrade gh and rerun"
fi
echo "Kilo files kept in $WORK"

You are done when Copilot quotes your testing rule back, the SDK versions match the pins, both checksum lines print OK, and the attestation check reports success.

Recommended AI prompt

Copy this paragraph into ChatGPT, Claude, Gemini, Grok, or whatever AI you use.

You are a staff engineer helping me close out a housekeeping Sunday for one repository. I will paste our .claude/rules/ folder and any Copilot instruction files, the code that calls the Claude Agent SDK, and the list of coding-agent binaries our developers and CI install. Using only what I paste, start with shared rules and tell me which instructions to consolidate into .claude/rules/ now that the Copilot CLI v1.0.89-5 prerelease reads that folder as custom instructions. Flag which of our rules use paths frontmatter and so need a hands-on Copilot test, because the release note does not say whether Copilot honors it, and tell me whether anything we rely on should move to hooks or managed settings. For SDK pins, tell me whether Python v0.2.160 or TypeScript v0.3.283 affects us, especially the “Stream closed” subagent fix in Python, the CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS ceiling and the new meaning of an omitted value in set_max_thinking_tokens. For verified binaries, tell me which of our agent tools publish an SBOM or attestation the way Kilo Code v7.8.1 does and which one to verify first. Keep your first reply to that three-part checklist, do not invent settings, flags or files I did not paste, and wait for my paste before expanding.

Recommended AI prompt

Explore each Top Story in Grok. Links open in a new tab. On phones, the same link may open the Grok app if you have it installed (via your device's normal link handling).

Article: AI Dev Pulse–2026-09-27

Privacy: links open grok.com in your session only. AIDevPulse does not run your prompts through our API.

Leave a Comment