aienvmp 0.1.2 → 0.1.3
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/BUGFIXES.md +38 -0
- package/CHANGELOG.md +6 -0
- package/README.md +1 -1
- package/TROUBLESHOOTING.md +103 -0
- package/package.json +3 -1
- package/src/render.js +19 -0
package/BUGFIXES.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Bugfix Log
|
|
2
|
+
|
|
3
|
+
Short record of bugs, fixes, and follow-up checks.
|
|
4
|
+
|
|
5
|
+
## 2026-07-08
|
|
6
|
+
|
|
7
|
+
### CLI version was hardcoded
|
|
8
|
+
|
|
9
|
+
- Issue: `npm run smoke` printed `0.1.0` after the package version changed.
|
|
10
|
+
- Fix: CLI now reads the version from `package.json`.
|
|
11
|
+
- Verification: `npm run smoke` prints the package version.
|
|
12
|
+
|
|
13
|
+
### AGENTS.md default generation conflicted with product focus
|
|
14
|
+
|
|
15
|
+
- Issue: default agent instruction file generation made `aienvmp` look like an AGENTS.md generator.
|
|
16
|
+
- Fix: `sync` now focuses on `AIENV.md`, manifest, intent log, timeline, and dashboard. Agent instruction integration is explicit through `aienvmp snippet`.
|
|
17
|
+
- Verification: `node --test` confirms `sync` does not create `AGENTS.md` by default and `snippet --write` only updates the marker block.
|
|
18
|
+
|
|
19
|
+
### npm publish metadata appeared stale
|
|
20
|
+
|
|
21
|
+
- Issue: npm publish returned success for `0.1.2`, but `npm view aienvmp version` briefly returned `0.1.1`.
|
|
22
|
+
- Fix: verified with `npm view aienvmp versions --json` and `npm dist-tag ls aienvmp`; registry later reported `0.1.2`.
|
|
23
|
+
- Verification: `npm view aienvmp version` returns `0.1.2`.
|
|
24
|
+
|
|
25
|
+
### macOS SSH PATH did not expose Node/npm
|
|
26
|
+
|
|
27
|
+
- Issue: remote macOS non-interactive SSH command did not find `node` or `npm`.
|
|
28
|
+
- Fix: test command used `/bin/zsh -lc` to load login shell PATH.
|
|
29
|
+
- Verification: remote test detected Node `v25.3.0`, npm `11.11.0`, and completed `aienvmp sync`.
|
|
30
|
+
|
|
31
|
+
## Template
|
|
32
|
+
|
|
33
|
+
### Title
|
|
34
|
+
|
|
35
|
+
- Issue:
|
|
36
|
+
- Fix:
|
|
37
|
+
- Verification:
|
|
38
|
+
- Follow-up:
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.3
|
|
4
|
+
|
|
5
|
+
- Strengthened the dashboard audit summary with AI decision, open intents, warnings, and recent changes.
|
|
6
|
+
- Added dashboard render coverage for the audit summary surface.
|
|
7
|
+
|
|
3
8
|
## 0.1.2
|
|
4
9
|
|
|
5
10
|
- Added `aienvmp sync` as the simple one-step command for init, scan, `AIENV.md`, manifest, ledger, and dashboard generation.
|
|
@@ -8,6 +13,7 @@
|
|
|
8
13
|
- Added machine-readable sync/context improvements for AI and CI integrations.
|
|
9
14
|
- Simplified README for faster first-time understanding.
|
|
10
15
|
- Kept AGENTS.md, CLAUDE.md, and GEMINI.md integration explicit through `aienvmp snippet`.
|
|
16
|
+
- Added troubleshooting and bugfix logs for operational issue tracking.
|
|
11
17
|
|
|
12
18
|
## 0.1.1
|
|
13
19
|
|
package/README.md
CHANGED
|
@@ -70,6 +70,6 @@ npm pack --dry-run
|
|
|
70
70
|
|
|
71
71
|
## Links
|
|
72
72
|
|
|
73
|
-
[Roadmap](ROADMAP.md) / [Security](SECURITY.md) / [Contributing](CONTRIBUTING.md)
|
|
73
|
+
[Roadmap](ROADMAP.md) / [Security](SECURITY.md) / [Troubleshooting](TROUBLESHOOTING.md) / [Bugfix Log](BUGFIXES.md) / [Contributing](CONTRIBUTING.md)
|
|
74
74
|
|
|
75
75
|
Apache-2.0
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
Known operational issues and quick fixes for `aienvmp`.
|
|
4
|
+
|
|
5
|
+
## npm publish succeeds but `npm view` still shows the old version
|
|
6
|
+
|
|
7
|
+
Symptom:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
npm publish
|
|
11
|
+
+ aienvmp@0.1.2
|
|
12
|
+
npm view aienvmp version
|
|
13
|
+
0.1.1
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Cause:
|
|
17
|
+
|
|
18
|
+
- npm registry metadata can lag briefly after publish.
|
|
19
|
+
|
|
20
|
+
Check:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm view aienvmp versions --json
|
|
24
|
+
npm dist-tag ls aienvmp
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Fix:
|
|
28
|
+
|
|
29
|
+
- Wait briefly and re-check `npm view aienvmp version`.
|
|
30
|
+
|
|
31
|
+
## Windows `npm exec --package ... -- aienvmp --help` cannot find the command
|
|
32
|
+
|
|
33
|
+
Symptom:
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
'aienvmp' is not recognized as an internal or external command
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Notes:
|
|
40
|
+
|
|
41
|
+
- The package bin metadata can still be valid.
|
|
42
|
+
- A direct temporary install creates the expected `.bin/aienvmp.cmd` shim.
|
|
43
|
+
|
|
44
|
+
Check:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npm view aienvmp bin --json
|
|
48
|
+
npm install aienvmp@latest --prefix ./tmp-aienvmp-check
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Workaround:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
npx aienvmp@latest --version
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
or install first:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
npm install -g aienvmp
|
|
61
|
+
aienvmp --version
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## macOS SSH session cannot find `node` or `npm`
|
|
65
|
+
|
|
66
|
+
Symptom:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
command -v node
|
|
70
|
+
# empty in non-interactive SSH command
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Cause:
|
|
74
|
+
|
|
75
|
+
- Node may be configured only in the login shell environment.
|
|
76
|
+
|
|
77
|
+
Fix:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
/bin/zsh -lc 'node --version && npm --version'
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For automation, make sure the shell PATH includes the Node/npm location.
|
|
84
|
+
|
|
85
|
+
## Missing manifest
|
|
86
|
+
|
|
87
|
+
Symptom:
|
|
88
|
+
|
|
89
|
+
```text
|
|
90
|
+
aienvmp: missing manifest; run `aienvmp sync` first
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Fix:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npx aienvmp sync
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Then retry:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npx aienvmp context
|
|
103
|
+
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aienvmp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "AI-first environment maps and lightweight runtime SBOMs for shared development machines.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
"README.md",
|
|
21
21
|
"LICENSE",
|
|
22
22
|
"CHANGELOG.md",
|
|
23
|
+
"BUGFIXES.md",
|
|
23
24
|
"CONTRIBUTING.md",
|
|
24
25
|
"SECURITY.md",
|
|
26
|
+
"TROUBLESHOOTING.md",
|
|
25
27
|
"ROADMAP.md",
|
|
26
28
|
"action.yml",
|
|
27
29
|
"examples",
|
package/src/render.js
CHANGED
|
@@ -131,6 +131,13 @@ h1,h2,h3,p{margin:0}h1{font-size:clamp(28px,4vw,46px);line-height:1.02;margin-to
|
|
|
131
131
|
.sub{color:var(--muted);margin-top:12px;max-width:680px;line-height:1.55}
|
|
132
132
|
.stamp{min-width:220px;border:1px solid var(--line2);background:#091310;border-radius:8px;padding:14px}
|
|
133
133
|
.stamp b{display:block;color:var(--green);font-size:24px;margin-bottom:3px}.stamp span{display:block;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
|
|
134
|
+
.audit{display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,.8fr));gap:12px;margin:14px 0}
|
|
135
|
+
.audit-item{border:1px solid var(--line);background:rgba(13,24,21,.92);border-radius:8px;padding:14px;min-width:0}
|
|
136
|
+
.audit-item.primary{background:linear-gradient(135deg,rgba(19,61,42,.88),rgba(9,19,16,.95))}
|
|
137
|
+
.audit-item.review{background:linear-gradient(135deg,rgba(81,53,17,.88),rgba(9,19,16,.95));border-color:rgba(244,191,95,.42)}
|
|
138
|
+
.audit-k{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
|
|
139
|
+
.audit-v{margin-top:7px;font-size:20px;font-weight:800;color:var(--text);overflow-wrap:anywhere}
|
|
140
|
+
.audit-hint{margin-top:6px;color:var(--muted);font-size:12px;line-height:1.4}
|
|
134
141
|
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 18px}
|
|
135
142
|
.metric,.card{border:1px solid var(--line);background:rgba(13,24,21,.9);border-radius:8px}
|
|
136
143
|
.metric{padding:14px}.metric .num{font-size:28px;font-weight:800;color:var(--green);line-height:1}.metric .label{margin-top:7px;color:var(--muted);font-size:12px}
|
|
@@ -147,7 +154,9 @@ code{color:var(--code);background:#0a2017;border:1px solid #17462f;padding:2px 6
|
|
|
147
154
|
.timeline{display:grid;gap:10px}.event{display:grid;grid-template-columns:108px 1fr;gap:12px;border-top:1px solid var(--line2);padding-top:10px}.event time{color:var(--muted);font-size:12px}.event b{color:var(--green)}
|
|
148
155
|
.path{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);font-size:12px;overflow-wrap:anywhere}
|
|
149
156
|
@media (max-width:860px){header,.layout{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.agents{grid-template-columns:1fr}}
|
|
157
|
+
@media (max-width:860px){.audit{grid-template-columns:1fr 1fr}}
|
|
150
158
|
@media (max-width:520px){.shell{padding:14px}.metrics{grid-template-columns:1fr}.event{grid-template-columns:1fr}h1{font-size:32px}}
|
|
159
|
+
@media (max-width:520px){.audit{grid-template-columns:1fr}}
|
|
151
160
|
</style>
|
|
152
161
|
</head>
|
|
153
162
|
<body>
|
|
@@ -167,6 +176,10 @@ const timelineHtml=timeline.length?'<div class="timeline">'+timeline.slice(-8).r
|
|
|
167
176
|
const intentsHtml=intents.length?'<div class="timeline">'+intents.slice(-6).reverse().map(i=>\`<div class="event"><time>\${esc(i.at.replace('T',' ').slice(0,16))}</time><div><b>\${esc(i.actor)}</b> plans \${esc(i.action)}</div></div>\`).join('')+'</div>':'<div class="okline">No pending agent intents recorded.</div>';
|
|
168
177
|
const policyHtml=entries(policy).length?\`<table>\${rows(policy)}</table>\`:'<div class="okline">No explicit version policy set.</div>';
|
|
169
178
|
const card=(title,badge,body)=>\`<section class="card"><div class="card-head"><h2>\${title}</h2>\${badge||''}</div>\${body}</section>\`;
|
|
179
|
+
const reviewRequired=warnings.length>0||intents.length>0;
|
|
180
|
+
const recentChanges=timeline.slice(-8).length;
|
|
181
|
+
const nextAction=reviewRequired?'Review before environment changes':'Proceed with project-local work';
|
|
182
|
+
const auditItem=(key,value,hint,klass='')=>\`<div class="audit-item \${klass}"><div class="audit-k">\${key}</div><div class="audit-v">\${value}</div><div class="audit-hint">\${hint}</div></div>\`;
|
|
170
183
|
document.getElementById('app').innerHTML=\`
|
|
171
184
|
<header>
|
|
172
185
|
<div>
|
|
@@ -176,6 +189,12 @@ document.getElementById('app').innerHTML=\`
|
|
|
176
189
|
</div>
|
|
177
190
|
<div class="stamp"><b>\${warnings.length?'review':'clear'}</b><span>\${esc(manifest.workspace.name)}</span><span>\${esc(manifest.generatedAt)}</span></div>
|
|
178
191
|
</header>
|
|
192
|
+
<section class="audit" aria-label="Audit summary">
|
|
193
|
+
\${auditItem('AI decision',reviewRequired?'review required':'can proceed',nextAction,reviewRequired?'review':'primary')}
|
|
194
|
+
\${auditItem('Open intents',String(intents.length),intents.length?'Resolve or coordinate before changes':'No pending env changes')}
|
|
195
|
+
\${auditItem('Warnings',String(warnings.length),warnings.length?'Policy or drift needs attention':'No warnings detected')}
|
|
196
|
+
\${auditItem('Recent changes',String(recentChanges),recentChanges?'Check ledger before continuing':'No recent env ledger entries')}
|
|
197
|
+
</section>
|
|
179
198
|
<section class="metrics">
|
|
180
199
|
<div class="metric"><div class="num">\${entries(manifest.runtimes).length}</div><div class="label">runtimes</div></div>
|
|
181
200
|
<div class="metric"><div class="num">\${entries(manifest.packageManagers).length}</div><div class="label">package managers</div></div>
|