@mriekki/project-forge 4.8.0 → 4.8.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/README.md CHANGED
@@ -103,28 +103,17 @@ The stable descriptor at `chatgpt/current.json` resolves an immutable Project Fo
103
103
 
104
104
  `@mriekki/project-forge` is the public distribution for Project Forge engineering assets used by generated projects.
105
105
 
106
- Project Forge assembles that package from approved private platform components using exact pinned source commits and deterministic distribution descriptors. Published packages are self-contained; Builders do not need access to the private implementation repositories to install or update managed assets.
106
+ Project Forge assembles that package from approved private platform components using exact pinned source revisions and deterministic distribution descriptors. Published packages are self-contained; Builders do not need access to the private implementation repositories to install or update managed assets.
107
107
 
108
- Install:
108
+ Generated Projects receive an exact approved package during deterministic generation. Existing generated Projects should normally adopt a newer supported package through:
109
109
 
110
- ```powershell
111
- npx @mriekki/project-forge install
112
- ```
113
-
114
- Update to the newest published package:
115
-
116
- ```powershell
117
- npx @mriekki/project-forge@latest update
110
+ ```text
111
+ /project-forge-update
118
112
  ```
119
113
 
120
- Inspect and verify:
121
-
122
- ```powershell
123
- npx @mriekki/project-forge@latest status
124
- npx @mriekki/project-forge@latest check
125
- ```
114
+ That Project workflow resolves the supported exact package version and preserves the managed-baseline, drift, review, and delivery guardrails. Do not use a floating `@latest` package update as the normal Builder path: npm publication can intentionally occur before the stable public contract is advanced to the new version.
126
115
 
127
- Managed updates verify baselines and refuse unsafe drift or conflicts before modifying Project Forge-managed files.
116
+ The package CLI remains available for exact-version troubleshooting and maintainer verification. Use the exact version recorded by the Project or selected by the Project Forge workflow rather than a floating tag.
128
117
 
129
118
  ## Maintainer system reference
130
119
 
@@ -137,7 +126,7 @@ The system reference deliberately does not duplicate current component SHAs, pac
137
126
 
138
127
  ## Maintainer release process
139
128
 
140
- Project Forge maintainers use a gated release workflow that resolves accepted component commits, verifies the assembled package, creates the package pull request, verifies CI, and stops at the explicit publication gate.
129
+ Project Forge maintainers use a gated release workflow that resolves accepted component revisions, verifies the assembled package, creates the package pull request, verifies CI, and stops at the explicit publication gate.
141
130
 
142
131
  Publication uses npm Trusted Publishing (OIDC), reconstructs the exact package from pinned sources, verifies registry identity and integrity, and smoke-tests the public package from a neutral directory.
143
132
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@mriekki/project-forge",
4
- "version": "4.8.0",
4
+ "version": "4.8.1",
5
5
  "defaultProfile": "greenfield-project",
6
6
  "profiles": {
7
7
  "greenfield-project": {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 2,
3
3
  "package": "@mriekki/project-forge",
4
- "version": "4.8.0",
4
+ "version": "4.8.1",
5
5
  "components": {
6
6
  "core": {
7
7
  "revision": "a78c2482f4f559ead8efbab6c25b4b05496db735",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mriekki/project-forge",
3
- "version": "4.8.0",
3
+ "version": "4.8.1",
4
4
  "description": "Public consumer distribution and updater for Project Forge engineering assets.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/cli.mjs CHANGED
@@ -44,6 +44,11 @@ function inferConsumer(root) {
44
44
  return path.basename(root);
45
45
  }
46
46
 
47
+ export function componentRevisionForDisplay(component) {
48
+ const revision = component?.revision ?? component?.commit;
49
+ return typeof revision === 'string' && revision ? revision : '<unknown revision>';
50
+ }
51
+
47
52
  function printPlan(plan, bootstrapMigrations = { rows: [], unsafe: [] }) {
48
53
  console.log(`Project Forge profile: ${plan.profileName}`);
49
54
  if (bootstrapMigrations.rows.length) {
@@ -51,7 +56,7 @@ function printPlan(plan, bootstrapMigrations = { rows: [], unsafe: [] }) {
51
56
  for (const row of bootstrapMigrations.rows) console.log(`${row.state.padEnd(30)} ${row.path}`);
52
57
  }
53
58
  for (const component of plan.plans) {
54
- console.log(`\n${component.componentId.toUpperCase()} ${component.component.commit}`);
59
+ console.log(`\n${component.componentId.toUpperCase()} ${componentRevisionForDisplay(component.component)}`);
55
60
  for (const row of component.rows) console.log(`${row.state.padEnd(20)} ${row.path}`);
56
61
  for (const retired of component.retired) console.log(`${retired.state.padEnd(20)} ${retired.path}`);
57
62
  }
@@ -112,7 +117,7 @@ export async function run(argv = process.argv.slice(2), packageData = loadPackag
112
117
  console.log(`Available package: ${packageData.pkg.name}@${packageData.pkg.version}`);
113
118
  console.log(`Profile: ${installed.profile}`);
114
119
  for (const [name, component] of Object.entries(installed.components ?? {})) {
115
- console.log(`${name}: ${component.version ? component.version + ' @ ' : ''}${component.commit}`);
120
+ console.log(`${name}: ${component.version ? component.version + ' @ ' : ''}${componentRevisionForDisplay(component)}`);
116
121
  }
117
122
  return 0;
118
123
  }