4013 Commits

Author SHA1 Message Date
Kazuki Yamada fc69dcc313 Merge pull request #1622 from Samsen879/fix-ignore-gitignore-conflict
fix(file): keep ignored .gitignore rules active
2026-06-08 00:33:17 +09:00
Kazuki Yamada 6571860cb0 fix(file): exclude descendants of a directory named .gitignore in deferred filter
intent(ignore-control): keep `--ignore "**/.gitignore"` from leaking files when `.gitignore` is a directory name, not a file
learned(deferred-filter): globby normalized `**/.gitignore` to `**/.gitignore/**`, which excluded both the file and any descendants; the post-filter only did a direct match, so contents of a directory literally named `.gitignore` leaked into output (narrow regression vs the pre-defer behavior)
decision(deferred-filter): match `${pattern}/**` in addition to the direct match to restore the old descendant-excluding semantics; the basename guard means this can only ever affect paths under a real `.gitignore` directory, so no over-filtering

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 23:07:12 +09:00
Kazuki Yamada 60308c872e fix(file): keep trailing-slash ignore-control patterns from leaking the file
intent(ignore-control): `--ignore "**/.gitignore/"` should behave like the slash-less form — exclude the file while keeping its rules
learned(deferred-filter): detection stripped the trailing slash but the post-filter matched the raw pattern, so the file was deferred out of globby's ignore yet never removed by the filter, leaking it into output
decision(deferred-filter): share one canonical normalization (toPosixIgnorePattern) between detection and filtering so the two can never diverge again

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 21:44:03 +09:00
Kazuki Yamada d62905673d Merge pull request #1618 from Samsen879/fix-multiroot-output-paths
fix multi-root duplicate relative paths
2026-06-07 19:37:02 +09:00
Kazuki Yamada ec4bf87069 test(core): Assert per-key content mapping in multi-root JSON output
intent(multiRootSpec): address a CodeRabbit nitpick that the JSON test only checked markers appeared somewhere in the values, not that each disambiguated key maps to its own root's content
decision(multiRootSpec): assert app/* keys hold rootA content and app-2/* keys hold rootB content, proving the disambiguation maps correctly

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:47:57 +09:00
Kazuki Yamada bdb1aff54f refactor(core): Simplify buildRootLabels by dropping dead depth-based disambiguation
intent(rootDisplayPath): collisions across roots are rare, so a numeric suffix fallback is acceptable instead of disambiguating via parent directories
decision(rootDisplayPath): rely solely on uniquifyLabelsWithSuffixes, which leaves unique labels untouched and only appends a suffix to collisions
learned(rootDisplayPath): the removed depth loop never improved on the suffix fallback in any reachable case (cwd-relative labels are full unique paths; outside-cwd labels have no segments), so output is byte-for-byte unchanged

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:32:39 +09:00
Kazuki Yamada c35034b48e refactor(core): Extract multi-root display path helpers into rootDisplayPath module
intent(packager): keep packager.ts lean by moving the multi-root label/display-path helpers into their own module
decision(rootDisplayPath): expose only buildRootLabels and joinDisplayPath; keep toDisplayPath and the label-dedup helpers private
decision(tests): add direct unit tests for the extracted helpers, which were previously only exercised via the multiRootSpec integration test

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-07 18:29:10 +09:00
Samsen879 da986c72e3 fix multi-root duplicate relative paths 2026-06-07 18:09:15 +09:00
Kazuki Yamada dac7643587 Merge pull request #1630 from yamadashy/renovate/redis-8.x
chore(deps): update redis docker tag to v8
2026-06-07 17:23:33 +09:00
Kazuki Yamada 0f0e4ef032 Merge pull request #1629 from yamadashy/renovate/major-github-actions-major-dependencies
chore(deps): update github-actions major dependencies to v3
2026-06-07 17:22:07 +09:00
Kazuki Yamada 0def09b16c Merge pull request #1627 from yamadashy/renovate/website-non-major-dependencies
fix(deps): update website non-major dependencies
2026-06-07 17:19:45 +09:00
Kazuki Yamada ec30f4bcc9 Merge pull request #1626 from yamadashy/renovate/root-non-major-dependencies
fix(deps): update root non-major dependencies
2026-06-07 17:19:24 +09:00
Kazuki Yamada e4a2b2dcf6 Merge pull request #1625 from yamadashy/renovate/browser-non-major-dependencies
chore(deps): update browser non-major dependencies to ^7.0.0-dev.20260527.2
2026-06-07 17:19:03 +09:00
Kazuki Yamada 3b6018bb02 Merge pull request #1624 from yamadashy/renovate/github-actions-non-major-dependencies
chore(deps): update github-actions non-major dependencies
2026-06-07 17:18:44 +09:00
renovate[bot] 011fafbc02 chore(deps): update redis docker tag to v8 2026-06-06 08:40:39 +00:00
renovate[bot] c74a0dc12b chore(deps): update github-actions major dependencies to v3 2026-06-06 08:40:32 +00:00
renovate[bot] 284f9d81c5 fix(deps): update website non-major dependencies 2026-06-06 06:11:29 +00:00
renovate[bot] cc43ff4358 fix(deps): update root non-major dependencies 2026-06-06 06:10:57 +00:00
renovate[bot] a231dc74e2 chore(deps): update browser non-major dependencies to ^7.0.0-dev.20260527.2 2026-06-06 00:34:58 +00:00
renovate[bot] 3e995611a6 chore(deps): update github-actions non-major dependencies 2026-06-06 00:34:41 +00:00
Kazuki Yamada edbe25eaa4 Merge pull request #1621 from yamadashy/feat/token-budget-1616
feat(cli): Add --token-budget guard for CI/agent context limits
2026-06-05 22:26:45 +09:00
Kazuki Yamada c43b4d59b8 feat(cli): Add --token-budget guard to fail when output exceeds a token limit
intent(token-budget): CI pipelines and agent harnesses need to guarantee packed output fits a target model's context window (#1616)
decision(token-budget): name it --token-budget / output.tokenBudget, not --max-tokens, to avoid collision with the LLM API max_tokens (generation length) and match the existing --token-count-* flags
decision(token-budget): enforce as a post-pack guard (clear error + non-zero exit), not an in-pack fail-fast
decision(token-budget): enforce in runDefaultAction (after reportResults) so direct runDefaultAction callers and MCP (which routes through runCli to runDefaultAction) are covered, while pack() stays a pure result-producer
decision(token-budget): remote runs defer the check (deferTokenBudgetCheck) and run it after copying output out of the temp dir, so over-budget remote runs still deliver output before failing, consistent with local
decision(token-budget): keep the schema strict (optional positive integer, no null) like other optional numeric fields; document the option as a commented-out example rather than null, since configs parse via JSON5 and null would fail validation
constraint(token-budget): token counts are computed after output generation (parallel with produceOutput in packager.ts), so the output is already written by the time the budget is checked; this is a guard, not a transform
constraint(token-budget): default is undefined (unlimited) to stay backward compatible
2026-06-05 21:17:43 +09:00
Kazuki Yamada c117c9b2c2 Merge pull request #1623 from yamadashy/ci/schema-update-main-only
ci(schema): Regenerate schema on main only, not on PR branches
2026-06-05 21:16:31 +09:00
Kazuki Yamada a86bb7e85e ci(schema): Use a ref-independent concurrency group
decision(schema-update): make the concurrency group static (schema-update) instead of schema-update-${{ github.ref }}. The workflow always pushes to the fixed chore/schema-update branch, so a workflow_dispatch from a different ref could otherwise run a separate concurrency group and race on that shared branch. A single static group serializes every run, matching the group's stated intent.
2026-06-05 20:48:25 +09:00
Kazuki Yamada d5c9c253dc ci(schema): Regenerate schema on main only, not on PR branches
intent(schema-update): the same-repo PR auto-commit left the PR head on a GITHUB_TOKEN-authored commit, which does not trigger CI, so required checks were missing on the head and PRs got stuck in BLOCKED (seen on #1621)
decision(schema-update): run only on push to main (and workflow_dispatch); regenerate the schema and deliver it as the chore/schema-update PR via COMMITTER_TOKEN so that PR itself triggers CI and is mergeable
decision(schema-update): pull requests no longer run this workflow at all. Schema is a main-side concern, regenerated after merge; contributors edit only configSchema.ts, never the generated JSON
rejected(schema-update): keeping a PR-side drift check (fail or comment). Failing would block any PR that changes configSchema.ts (chicken-and-egg, and contradicts not hand-editing the generated schema); main-side regeneration already covers it
2026-06-05 20:39:33 +09:00
Samsen879 ce5622e57e fix(file): keep ignored .gitignore rules active 2026-06-05 19:23:12 +08:00
Kazuki Yamada 4a6d4c8a7a Merge pull request #1619 from yamadashy/dependabot/npm_and_yarn/npm_and_yarn-0a9c170602
chore(deps): Bump hono from 4.12.18 to 4.12.23 in the npm_and_yarn group across 1 directory
2026-06-05 15:19:37 +09:00
dependabot[bot] c84c2afb52 chore(deps): Bump hono in the npm_and_yarn group across 1 directory
Bumps the npm_and_yarn group with 1 update in the / directory: [hono](https://github.com/honojs/hono).


Updates `hono` from 4.12.18 to 4.12.23
- [Release notes](https://github.com/honojs/hono/releases)
- [Commits](https://github.com/honojs/hono/compare/v4.12.18...v4.12.23)

---
updated-dependencies:
- dependency-name: hono
  dependency-version: 4.12.23
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-04 21:27:12 +00:00
Kazuki Yamada eb54625652 Merge pull request #1614 from yamadashy/ci/schema-update-auto-pr
ci(schema): Deliver schema updates via PR instead of direct push to main
2026-06-03 22:10:52 +09:00
Kazuki Yamada 4f73c6047d fix(ci): Address schema-update review feedback
decision(schema-update): fork PRs now check out the merge ref and fail on schema drift instead of silently checking out main — surfaces fork-authored schema changes in CI (CodeRabbit)
decision(schema-update): add a concurrency group so two near-simultaneous main pushes don't race on the reused chore/schema-update branch
decision(schema-token): drop the unused `pull-requests: write` permission — create-pull-request uses COMMITTER_TOKEN (PAT), not GITHUB_TOKEN, and auto-commit needs only contents:write
decision(commit-message): capitalize the bot commit message to 'Auto-generate schema' per the project's Conventional Commits casing rule

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-31 00:03:01 +09:00
Kazuki Yamada 19a2d68ade fix(ci): Harden schema-update PR/fork/dispatch handling
decision(schema-update): check out the PR head branch only for same-repo PRs so git-auto-commit can push the regenerated schema; push/dispatch/fork all fall back to main
decision(schema-update): gate the PR-branch auto-commit to same-repo PRs — fork PRs get a read-only GITHUB_TOKEN and would fail (or push to main)
decision(schema-update): pin create-pull-request to `base: main` so a manual workflow_dispatch from another ref still targets main
learned(gha-expressions): accessing `github.event.pull_request.head.repo.full_name` on push/dispatch (where pull_request is null) yields empty, not an error, so the `&& ... || 'main'` fallback is safe

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 23:40:54 +09:00
Kazuki Yamada 77f72f6fc8 ci(schema): Deliver schema updates via PR instead of direct push to main
intent(schema-update): the Update Schema workflow's direct push to main fails at every version bump — the branch ruleset rejects it (GH013, pull_request required) because github-actions[bot] is not in the bypass list (only the admin role is)
decision(schema-update): on main (push / workflow_dispatch) open a PR via peter-evans/create-pull-request instead of pushing; keep the existing git-auto-commit-into-PR-branch behavior for pull_request events so schema changes still ride along with the PR that caused them
decision(schema-token): use the existing COMMITTER_TOKEN PAT so the generated PR triggers CI and is mergeable; the create-pull-request step is gated to non-pull_request events, so the PAT is never exposed to fork-triggered runs
constraint(branch-ruleset): main requires PR + 1 approving + code-owner review with no required status checks, so the schema PR is merged by the admin (bypass) — typically one click per release

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 22:35:00 +09:00
Kazuki Yamada c4eac374c2 Merge pull request #1613 from yamadashy/renovate/root-non-major-dependencies
chore(deps): update dependency @typescript/native-preview to ^7.0.0-dev.20260523.1
2026-05-30 18:28:44 +09:00
Kazuki Yamada 1f64f64f24 Merge pull request #1612 from yamadashy/renovate/browser-non-major-dependencies
chore(deps): update dependency @typescript/native-preview to ^7.0.0-dev.20260523.1
2026-05-30 18:28:28 +09:00
Kazuki Yamada ae7a9c3844 Merge pull request #1607 from yamadashy/renovate/major-root-major-dependencies
fix(deps): update root major dependencies (major)
2026-05-30 18:27:41 +09:00
renovate[bot] 8b54a6772b chore(deps): update dependency @typescript/native-preview to ^7.0.0-dev.20260523.1 2026-05-30 08:55:33 +00:00
renovate[bot] 9d77f3e497 chore(deps): update dependency @typescript/native-preview to ^7.0.0-dev.20260523.1 2026-05-30 08:55:22 +00:00
renovate[bot] 2990e5630f fix(deps): update root major dependencies 2026-05-30 05:53:37 +00:00
Kazuki Yamada 416d042d43 Merge pull request #1611 from yamadashy/chore/renovate-ignore-clack-prompts
chore(renovate): Ignore @clack/prompts major update
2026-05-30 14:52:40 +09:00
Kazuki Yamada 5dce33f205 chore(renovate): Ignore @clack/prompts major update
intent(renovate): defer @clack/prompts v1 — the root major deps update (PR #1607) is fully red because v1 changed the text() validate callback arg to `string | undefined`, breaking the tsc build at src/cli/actions/initAction.ts:97 (TS18048); since build runs via the prepare hook, every npm ci fails and all CI jobs cascade-fail
decision(renovate): ignore only @clack/prompts, leaving typescript 6.0 and @secretlint/* 13 in the major group so CI can still evaluate them once clack is out of the batch

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 14:50:35 +09:00
Kazuki Yamada 88aca0172a Merge pull request #1608 from yamadashy/renovate/major-website-major-dependencies
fix(deps): update website major dependencies (major)
2026-05-30 14:34:28 +09:00
Kazuki Yamada 8899366243 Merge pull request #1610 from yamadashy/feat/website-auto-pack-on-url
feat(website): Enable auto-pack when repo URL parameter is present
2026-05-30 14:21:37 +09:00
Kazuki Yamada 759dd312bf feat(website): Enable auto-pack when repo URL parameter is present
intent(website): re-enable auto-pack on `?repo=` URLs now that the Cloudflare bot defense (BFM + invisible Turnstile) reliably blocks crawler-driven mass requests
constraint(auto-pack): keep the `!isBot()` guard as defense-in-depth — auto-execution was originally disabled because crawlers (e.g. Applebot) executing JS on permalink URLs caused mass pack requests

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-05-30 14:20:31 +09:00
renovate[bot] 96bc24ea97 fix(deps): update website major dependencies 2026-05-30 05:20:03 +00:00
Kazuki Yamada fb9bc9ee25 Merge pull request #1606 from yamadashy/renovate/website-non-major-dependencies
fix(deps): update website non-major dependencies
2026-05-30 14:18:12 +09:00
Kazuki Yamada c90beaef0e Merge pull request #1605 from yamadashy/renovate/root-non-major-dependencies
fix(deps): update root non-major dependencies
2026-05-30 14:17:52 +09:00
Kazuki Yamada 921dd2393d Merge pull request #1604 from yamadashy/renovate/browser-non-major-dependencies
chore(deps): update browser non-major dependencies
2026-05-30 14:17:31 +09:00
renovate[bot] ac459efd5c chore(deps): update browser non-major dependencies 2026-05-30 05:12:10 +00:00
renovate[bot] a29b596581 fix(deps): update website non-major dependencies 2026-05-30 05:08:31 +00:00
renovate[bot] df7af80952 fix(deps): update root non-major dependencies 2026-05-30 05:08:07 +00:00