From 11316865163b4ed3dd03a73b45880c451b490e0a Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Thu, 17 Sep 2026 12:07:30 +0900 Subject: [PATCH 1/3] chore(settings): enable newly installed marketplace plugins --- .claude/settings.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.claude/settings.json b/.claude/settings.json index 26781517..2494f484 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -12,6 +12,13 @@ "vitest@pleaseai": true, "typescript-lsp@code-intelligence": true, "eslint-lsp@code-intelligence": true, - "ask@passionfactory": true + "ask@passionfactory": true, + "github-actions@passionfactory": true, + "tidy-first@passionfactory": true, + "context@passionfactory": true, + "research@passionfactory": true, + "claude-code-docs@pleaseai": true, + "kb@passionfactory": true, + "memory-management@passionfactory": true } } From 762032ff71b97e12f76b5a0e88a2a04825983692 Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Thu, 17 Sep 2026 12:08:02 +0900 Subject: [PATCH 2/3] chore: record the docs.spring.io version-collapse finding in agent memory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Project-scope agent memory is shared with the team, so it belongs in git. The entry documents why `imageBaseFor` points at release-tag raw URLs rather than the reference site: `docs.spring.io` 301-collapses a patch segment to its minor, and older minors stop serving assets entirely, so a URL built from a catalog version looks pinned but is not. It also records the check that catches it — `curl` without `-L`, since a redirect-following probe hides the collapse behind a 200. --- .../review-review-issue-fixer/MEMORY.md | 3 +++ ...project_docs-spring-io-version-collapse.md | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 .claude/agent-memory/review-review-issue-fixer/MEMORY.md create mode 100644 .claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md diff --git a/.claude/agent-memory/review-review-issue-fixer/MEMORY.md b/.claude/agent-memory/review-review-issue-fixer/MEMORY.md new file mode 100644 index 00000000..0fb1fe3e --- /dev/null +++ b/.claude/agent-memory/review-review-issue-fixer/MEMORY.md @@ -0,0 +1,3 @@ +# Memory Index + +- [docs.spring.io collapses patch versions](project_docs-spring-io-version-collapse.md) — reference-site URLs are never version-pinned; use release-tag raw URLs for per-version assets. diff --git a/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md b/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md new file mode 100644 index 00000000..cdc3f4ca --- /dev/null +++ b/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md @@ -0,0 +1,23 @@ +--- +name: docs-spring-io-version-collapse +description: docs.spring.io 301-collapses a patch version to its minor, so reference-site URLs can never be version-pinned — use release-tag raw URLs for per-version assets +metadata: + type: project +--- + +`docs.spring.io` redirects any patch-level path segment to its minor alias +(`/spring-framework/reference/6.2.14/_images/x.png` → 301 → +`/reference/6.2/_images/x.png`), and older minors stop serving assets entirely +(6.1 image paths 404 while the asset is present in tag v6.1.0). A URL built from +a catalog version therefore *looks* pinned but serves whatever that minor +currently publishes. + +**Why:** a Spring Framework `imageBaseFor` built on the reference site published +404ing image URLs across the whole declared 6.1.x range; fixed by pointing at +`raw.githubusercontent.com/spring-projects//v//modules/ROOT/assets/images`. + +**How to apply:** when adding or reviewing a project's `imageBaseFor` / +`javadocLocationFor` in `scripts/lib/upstream-sources.ts`, verify with `curl -o +/dev/null -w '%{http_code} %{redirect_url}'` *without* `-L` — a `-L` check hides +the collapse behind a 200. Prefer a release-tag raw URL for anything that must +be exact per patch version. From 86954d62649f58d350fd2870e030f07494bd73ce Mon Sep 17 00:00:00 2001 From: Minsu Lee Date: Fri, 18 Sep 2026 04:14:38 +0900 Subject: [PATCH 3/3] docs(memory): scope the docs.spring.io collapse to reference-site layouts The memory claimed docs.spring.io redirects any patch-level path segment. It does not: the Antora reference sites collapse a patch to its minor (/spring-framework/reference/6.2.14 -> /6.2, /spring-security/reference/6.5.6 -> /6.5, /spring-boot/3.3.13 -> /3.3), but the legacy docs and site/docs javadoc archives answer 200 at the exact patch and both projects' javadocLocationFor points there on purpose. As written, the guidance would have a future review rewrite those working patch-pinned javadoc URLs. Split the two layouts and say which one the raw-URL advice applies to. --- .../review-review-issue-fixer/MEMORY.md | 2 +- ...project_docs-spring-io-version-collapse.md | 36 +++++++++++++------ 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/.claude/agent-memory/review-review-issue-fixer/MEMORY.md b/.claude/agent-memory/review-review-issue-fixer/MEMORY.md index 0fb1fe3e..06d39358 100644 --- a/.claude/agent-memory/review-review-issue-fixer/MEMORY.md +++ b/.claude/agent-memory/review-review-issue-fixer/MEMORY.md @@ -1,3 +1,3 @@ # Memory Index -- [docs.spring.io collapses patch versions](project_docs-spring-io-version-collapse.md) — reference-site URLs are never version-pinned; use release-tag raw URLs for per-version assets. +- [docs.spring.io collapses patch versions](project_docs-spring-io-version-collapse.md) — reference-site URLs are never version-pinned; the legacy docs/site/docs javadoc archives are. diff --git a/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md b/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md index cdc3f4ca..b82fdfc3 100644 --- a/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md +++ b/.claude/agent-memory/review-review-issue-fixer/project_docs-spring-io-version-collapse.md @@ -1,23 +1,37 @@ --- name: docs-spring-io-version-collapse -description: docs.spring.io 301-collapses a patch version to its minor, so reference-site URLs can never be version-pinned — use release-tag raw URLs for per-version assets +description: docs.spring.io reference sites 301-collapse a patch version to its minor, so reference URLs can never be version-pinned — but the legacy docs/site/docs javadoc archives are genuinely per-patch metadata: type: project --- -`docs.spring.io` redirects any patch-level path segment to its minor alias -(`/spring-framework/reference/6.2.14/_images/x.png` → 301 → -`/reference/6.2/_images/x.png`), and older minors stop serving assets entirely -(6.1 image paths 404 while the asset is present in tag v6.1.0). A URL built from -a catalog version therefore *looks* pinned but serves whatever that minor -currently publishes. +`docs.spring.io` serves two layouts, and only one of them is really pinned to a +patch version. Which one a URL is in decides whether a catalog version can be +substituted into it. + +**Antora reference sites collapse a patch to its minor** (301, verified +2026-09-18): `/spring-framework/reference/6.2.14/…` → +`/spring-framework/reference/6.2/…`, `/spring-security/reference/6.5.6/…` → +`/spring-security/reference/6.5/…`, and Spring Boot — whose reference site sits +at the project root — `/spring-boot/3.3.13/…` → `/spring-boot/3.3/…`, its +`api/java/` subtree included. Older minors also stop serving assets entirely +(6.1 image paths 404 while the asset is present in tag v6.1.0). A reference URL +built from a catalog version therefore *looks* pinned but serves whatever that +minor currently publishes. + +**The legacy `docs` / `site/docs` archives do not collapse.** They answer 200 at +the exact patch — `/spring-framework/docs/6.2.13/javadoc-api/` and +`/spring-security/site/docs/6.3.1/api/` — and both projects' +`javadocLocationFor` points there deliberately. Do not rewrite those to a minor +or to a raw URL. **Why:** a Spring Framework `imageBaseFor` built on the reference site published 404ing image URLs across the whole declared 6.1.x range; fixed by pointing at `raw.githubusercontent.com/spring-projects//v//modules/ROOT/assets/images`. **How to apply:** when adding or reviewing a project's `imageBaseFor` / -`javadocLocationFor` in `scripts/lib/upstream-sources.ts`, verify with `curl -o -/dev/null -w '%{http_code} %{redirect_url}'` *without* `-L` — a `-L` check hides -the collapse behind a 200. Prefer a release-tag raw URL for anything that must -be exact per patch version. +`javadocLocationFor` in `scripts/lib/upstream-sources.ts`, first note which +layout the URL is in, then verify with `curl -o /dev/null -w '%{http_code} +%{redirect_url}'` *without* `-L` — a `-L` check hides the collapse behind a 200. +Prefer a release-tag raw URL for anything on a reference site that must be exact +per patch version.