You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit b836e5b
Browse filesBrowse the repository at this point in the historyBrowse files
Merge pull request #415: preserve raw config declarations
Fixes#364
what changed: Preserve raw config declarations during unrelated saves and refuse an unreadable config without a usable snapshot.
why: Resolved fallbacks erased role/posture diagnostics and could silently replace broken config.
what it touched: machine saving, install-hooks and panel refusals, five regressions, architecture, changelog and inventory. The source task remains in a6d6328; current-main sync only adds the two reviewed workflow assets.
what you verified: Verified five failing regressions before the fix, 147 focused checks passing with two disclosed local unsupported symlink cases, normal full commit-gate acceptance on a6d6328 and docs-only acceptance on c1ab427. All seven current-base CI jobs passed in run38565023535 on this unchanged head/base.
what you got wrong and fixed: A docs conflict helper's assumption about a neighboring panel row was caught by its guard before writing. Explicitly retained both rows; clean scope and focused/full gates verified the resolution.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,6 +5,12 @@ Each release of Research-Kit, newest first. The version is `KIT_VERSION` in
5
5
6
6
## Unreleased
7
7
8
+
- Machine config saves preserve unpatched raw role and posture values, including typos
9
+
that diagnostics must still report. An unreadable config without a usable last-good
10
+
snapshot refuses an unrelated save rather than persisting the restrictive fallback;
11
+
an explicit valid `--role` can repair it. `install-hooks` names the refusal with exit 2
12
+
and the panel key endpoint returns HTTP 409 without echoing the key (#364).
13
+
8
14
-`path-authority` and `researcher-release` name a value flag with no value and print usage with exit 2 before resolving paths, including when another flag follows (#288).
9
15
10
16
-`property-replay --all` refuses a missing regression directory with exit 2 and
throwObject.assign(newError(`machine config ${file} does not parse as a JSON object; repair it or declare the role with --role collector|builder before saving`),{
253
+
code: 'CONFIG-UNREADABLE',
254
+
});
255
+
}
256
+
}
257
+
}
258
+
}
259
+
// Save declarations, not the resolved role/posture. A typo remains available for
260
+
// doctor to name until the operator patches that field. Only the existing retired
261
+
// spelling is migrated here; it must keep its mode when its old key is dropped.
Copy file name to clipboardExpand all lines: research-kit/lib/panel.mjs
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -347,7 +347,11 @@ export function createPanel({
347
347
if(problem)returnrefuse(res,400,problem);
348
348
constinside=configInsideRepository(env);
349
349
if(inside)returnrefuse(res,409,`the machine config is inside the repository at ${inside}; a key never goes into a repository (Rule 6). Point RESEARCH_KIT_CONFIG outside it.`);
0 commit comments