Commit 3ceb3c00 authored by Jan Reimes's avatar Jan Reimes
Browse files

📝 docs: update spec release resolution documentation

parent d83948eb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -231,7 +231,7 @@ Spec releases must always be resolved to a **full 3-part version** (e.g. `"18.0.
**Two-layer contract:**

1. **Resolve early**`resolve_spec_release()` pins the concrete version at add-time, embedding it in the workspace member ID (e.g. `26261-REL18.0.0`).
2. **Respect downstream**`fetch_spec_files()` uses the pinned version to scan only the version-specific extracted directory, never the shared parent.
1. **Respect downstream**`fetch_spec_files()` uses the pinned version to scan only the version-specific extracted directory, never the shared parent.

**Rule:** Never pass ambiguous release selectors to fetch/convert functions. Never scan a shared checkout directory without filtering by release.

+1 −1
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ Two bugs in the spec fetch pipeline:

1. **`fetch_spec_files()` ignored the requested release when scanning local files.** The spec checkout directory (`checkout/Specs/archive/{series}/{spec}/`) is shared across all releases. After REL19 was downloaded, requesting REL18 triggered a local scan of the entire tree, which returned REL19 files without checking the release.

2. **`_download_spec()` discarded the version-specific extracted directory path.** `checkout_specs_async()` returns `list[Path]` of version-specific subdirectories (e.g. `26261-i00/` for REL18), but the return value was ignored. The subsequent full-tree scan could return files from any release.
1. **`_download_spec()` discarded the version-specific extracted directory path.** `checkout_specs_async()` returns `list[Path]` of version-specific subdirectories (e.g. `26261-i00/` for REL18), but the return value was ignored. The subsequent full-tree scan could return files from any release.

## Changes