pi-aia-asf 0.15.0 → 0.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/index.ts +16 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.15.1] - 2026-11-06
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Specs are read under the same project key as run state.** 0.15.0 moved run state
|
|
15
|
+
to the git-root key but still read pi-vigilant's spec store by cwd basename. From
|
|
16
|
+
a subdirectory, the trace floor for specs met in the run therefore looked in the
|
|
17
|
+
wrong store and found nothing. pi-vigilant 0.9.0 writes the store under the root
|
|
18
|
+
key, and ASF reads it there. It falls back to the basename location, so an older
|
|
19
|
+
pi-vigilant does not leave ASF unable to see specs. Both suites pin the same
|
|
20
|
+
key vectors.
|
|
21
|
+
|
|
10
22
|
## [0.15.0] - 2026-11-06
|
|
11
23
|
|
|
12
24
|
### Added
|
package/index.ts
CHANGED
|
@@ -143,11 +143,10 @@ function stateFileFor(project: string): string {
|
|
|
143
143
|
}
|
|
144
144
|
|
|
145
145
|
/**
|
|
146
|
-
* The
|
|
147
|
-
*
|
|
148
|
-
* vigilant writes them; only ASF's OWN run state moved to the root-based key.
|
|
146
|
+
* The pre-0.15 key (cwd basename). Used only to find run state written by an
|
|
147
|
+
* older ASF, and spec memory written by pi-vigilant < 0.9.
|
|
149
148
|
*/
|
|
150
|
-
function
|
|
149
|
+
function legacyKey(): string {
|
|
151
150
|
try {
|
|
152
151
|
return basename(process.cwd()) || "default";
|
|
153
152
|
} catch {
|
|
@@ -155,12 +154,22 @@ function sharedSpecKey(): string {
|
|
|
155
154
|
}
|
|
156
155
|
}
|
|
157
156
|
|
|
157
|
+
/**
|
|
158
|
+
* The spec store for this project. pi-vigilant >= 0.9 writes it under the same
|
|
159
|
+
* root-based key ASF uses (pinned vectors in both suites); older versions wrote
|
|
160
|
+
* it under the basename, which is read as a fallback so an un-upgraded
|
|
161
|
+
* pi-vigilant does not make ASF go blind to specs.
|
|
162
|
+
*/
|
|
163
|
+
async function loadProjectSpecs(): Promise<SpecItem[] | null> {
|
|
164
|
+
return (await loadSpecs(projectName())) ?? (await loadSpecs(legacyKey()));
|
|
165
|
+
}
|
|
166
|
+
|
|
158
167
|
async function loadState(project: string): Promise<ProjectStateFile> {
|
|
159
168
|
const file = stateFileFor(project);
|
|
160
169
|
if (!existsSync(file)) {
|
|
161
170
|
// One-time migration: a run opened under the old basename key is adopted,
|
|
162
171
|
// not orphaned — an upgrade must never silently end an active run.
|
|
163
|
-
const legacy = stateFileFor(
|
|
172
|
+
const legacy = stateFileFor(legacyKey());
|
|
164
173
|
if (legacy !== file && existsSync(legacy)) {
|
|
165
174
|
try {
|
|
166
175
|
const data = JSON.parse(await readFile(legacy, "utf-8")) as ProjectStateFile;
|
|
@@ -665,7 +674,7 @@ export default function register(pi: ExtensionAPI): void {
|
|
|
665
674
|
];
|
|
666
675
|
|
|
667
676
|
if (scale === "large") {
|
|
668
|
-
const specs = await
|
|
677
|
+
const specs = await loadProjectSpecs();
|
|
669
678
|
lines.push("\nSPEC-TO-CODE TRACEABILITY (M1 — large work):");
|
|
670
679
|
if (!specs || specs.length === 0) {
|
|
671
680
|
lines.push(
|
|
@@ -1183,7 +1192,7 @@ export default function register(pi: ExtensionAPI): void {
|
|
|
1183
1192
|
let untracedMet: string[] = [];
|
|
1184
1193
|
try {
|
|
1185
1194
|
const runStart = Date.parse(state.startedAt || "") || 0;
|
|
1186
|
-
const specs = (await
|
|
1195
|
+
const specs = (await loadProjectSpecs()) || [];
|
|
1187
1196
|
untracedMet = specs
|
|
1188
1197
|
.filter((sp) => sp.status === "met")
|
|
1189
1198
|
.filter((sp) => {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-aia-asf",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"description": "Ai Applied Agentic Software Factory — codifies the full software development flow: intake, research, spec capture, adversarial analysis, planning with approval gates, test-first implementation, and release. Requires pi-vigilant, pi-smart-web-search, pi-smart-fetch, and pi-aia-browser.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|