moving
Some checks failed
Installer Smoke / installer-smoke (push) Has been cancelled

This commit is contained in:
Oleg Maslov
2026-09-02 10:10:29 +02:00
commit 0c3e2ead3b
3841 changed files with 970576 additions and 0 deletions

View File

@@ -0,0 +1,154 @@
# Brief za Claude Code — hive-mind CI pipeline + npm publish
**Datum**: 2026-04-19
**Izvor**: H-34 closure posle 2026-04-18 late-night sesije (282/282 green, 4 packages, ~8500 LOC vendored)
**Scope**: JEDNA sesija, jedan fokus. No new features, no scope creep.
**Output**: Green CI badge + 4 packages live na npm registry + first-run smoke skripta
---
## Session goal (one sentence)
Take the hive-mind repo from "locally 282/282 green" to "cloneable by a stranger, CI-validated, installable via `npm install @hive-mind/*` on any machine, with a smoke test script that proves end-to-end working MCP server in under 5 minutes."
## Why now
H-34 extraction is tehnički CLOSED (Waves 46 shipped 2026-04-18). But the repo is not "shipped" until:
1. A fresh clone on a clean runner passes all 282 tests without manual intervention.
2. The 4 packages are discoverable via `npm search` and installable via `npm install`.
3. A press/analyst persona (non-developer) can run a smoke script and see the MCP server work.
This session closes that gap. It is the last operational task before SOTA benchmark proof (LoCoMo 91.6% target) becomes the critical-path blocker for Waggle launch.
## Current state (as of H-34 closure)
- Repo: `D:\Projects\hive-mind`, Apache 2.0, 4 packages migrated.
- Packages: `@hive-mind/core`, `@hive-mind/wiki-compiler`, `@hive-mind/mcp-server`, `@hive-mind/cli`.
- Tests: 282/282 green across 38 test files (locally).
- Commits: Waves 4-6 landed in 2026-04-18 session (`9f774f7`, `74f2b76`, `a30d04a`, `6c32987`).
- Missing: GitHub Actions config, npm publish config, CHANGELOG, first-run smoke, release notes.
## Non-goals (strict)
- NO new features.
- NO refactoring beyond what CI forces.
- NO touching waggle-os monolith (companion fix `803c6f6` already landed separately).
- NO starting v2 GEPA, LoCoMo benchmark, or H13 landing work.
- NO npm scope changes, package renames, or version bumps beyond v0.1.0.
- NO platform-specific CI (Windows/macOS matrix) in this pass — Linux runner only. Cross-platform is a follow-up.
If any non-goal item appears tempting, STOP and write a follow-up issue instead.
## Acceptance criteria
### A. GitHub Actions CI pipeline
Path: `.github/workflows/ci.yml` in hive-mind repo.
- Triggers: push to `main`, PR to `main`.
- Runner: `ubuntu-latest`, Node 22 LTS, pnpm (use repo's pnpm version from `package.json` `packageManager` field or `.nvmrc` / `.tool-versions`).
- Steps (in order):
1. Checkout
2. Setup Node + pnpm + cache
3. `pnpm install --frozen-lockfile`
4. `pnpm -r run lint` (if lint scripts exist; skip gracefully if not)
5. `pnpm -r run typecheck` (if typecheck scripts exist)
6. `pnpm -r run test` — MUST pass with 282/282 on clean runner
7. `pnpm -r run build`
8. Artifact upload: dist folders of all 4 packages (for inspection)
- Required status check to be enabled on `main` branch protection.
- Green badge in README.md.
### B. npm publish readiness (dry-run first, then publish)
For each of the 4 packages:
- `package.json` has: `name`, `version: "0.1.0"`, `description`, `license: "Apache-2.0"`, `repository` (pointing to GitHub repo), `homepage`, `bugs`, `keywords`, `author`, `main`, `types` (if TS), `files` (explicit allowlist, not `.npmignore`), `publishConfig.access: "public"` (for scoped packages).
- `README.md` at package root (can be short, links to monorepo root README).
- LICENSE file at package root (Apache 2.0 text).
- `pnpm -r publish --dry-run` MUST succeed without warnings beyond informational.
- After dry-run clean: actual `npm publish` for all 4 packages.
- Verify via `npm view @hive-mind/core` etc. that all 4 are live.
Note on npm org scope: if `@hive-mind` org does not exist on npm yet, Claude Code stops and asks Marko to create it with his npm login (requires 2FA + organization creation flow). Alternative: unscoped names `hive-mind-core` etc. — but preferred is scoped.
### C. Root README normalization
Path: `README.md` at hive-mind repo root.
- CI badge (green)
- npm version badges for all 4 packages
- Quickstart: 5 lines max to go from `npm install` to first MCP tool call
- License: Apache 2.0
- Link to EXTRACTION.md (methodology doc)
- Link to first-run smoke (see D)
- Cross-repo link to `waggle-os` as consuming application
### D. First-run smoke script
Path: `scripts/first-run-smoke.sh` (+ Windows counterpart `scripts/first-run-smoke.ps1` if trivial; skip if not).
- Goal: A non-developer (press/analyst persona) runs one command and sees the MCP server respond.
- Steps automated:
1. Check Node 22+ available
2. `npm install -g @hive-mind/cli` (or temp-dir install)
3. `hive-mind init --tmp` (creates sample workspace in a temp dir)
4. `hive-mind mcp start &` (starts MCP server)
5. `hive-mind mcp call list_tools` (prints 21 tools)
6. `hive-mind harvest demo` (runs one small harvest from a public URL)
7. `hive-mind mcp call search "demo"` (returns results)
8. Print green checkmark + "smoke passed in Nms"
If any command does not exist in the current CLI surface, STOP — do not add it. Note the gap and return to Marko for decision (this is persona-facing; we do not invent commands).
### E. CHANGELOG.md
Path: `CHANGELOG.md` at root. Keep-a-Changelog format.
```
## [0.1.0] - 2026-04-19
### Added
- Initial public release extracted from waggle-os monolith
- @hive-mind/core: bitemporal KG, MPEG-4 I/P/B frame model, workspace, mind-cache
- @hive-mind/wiki-compiler: markdown compile pipeline with versioned output
- @hive-mind/mcp-server: 21 MCP tools + 4 resources
- @hive-mind/cli: 6 commands (init, harvest, mcp, wiki, search, status — verify exact names)
- 282 tests across 38 files
- Apache 2.0 license
```
### F. Release notes + GitHub Release
- Tag `v0.1.0` on the commit that passes CI green.
- GitHub Release from the tag, body = CHANGELOG entry + "installed via `npm install @hive-mind/core`".
- Marked as "latest release" and NOT pre-release (first stable public).
## Order of operations (recommended)
1. CI pipeline first (A). Do not touch anything else until CI runs green on a commit in `main` (or a feature branch). CI will expose any hidden local-only assumptions fast.
2. Package metadata hardening (B, up to dry-run). Dry-run surfaces missing fields without committing to npm.
3. Root README + CHANGELOG (C, E). Easy wins that unblock D.
4. First-run smoke (D). This is the riskiest item — it exercises the full surface from outside. Expect to find 1-2 small gaps in CLI surface area. Flag them to Marko via follow-up issue, do NOT patch inline.
5. npm org creation + real publish (B final step). Requires Marko.
6. Tag + GitHub Release (F).
## Definition of done
- CI green on `main` for the commit that ships v0.1.0.
- `npm view @hive-mind/core` returns `0.1.0`.
- `scripts/first-run-smoke.sh` on a clean Ubuntu runner exits 0 in under 5 minutes.
- CHANGELOG.md has v0.1.0 entry.
- GitHub Release `v0.1.0` exists with installation instructions.
- Root README has green CI badge + npm badges + 5-line quickstart.
## Escalation triggers (when to stop and ask Marko)
- npm `@hive-mind` org does not exist → needs Marko's npm login.
- CI fails on a test that passed locally → likely environment assumption; worth 30 min to diagnose, then stop.
- `pnpm publish --dry-run` warns about something non-trivial → confirm with Marko before proceeding.
- CLI surface gap in first-run smoke → do not invent commands; report and ask.
## Reporting at session end
Brief commit log (files touched, tests added if any), npm package URLs (once live), first-run smoke timing, and one-paragraph "what was surprising" note. Surface any technical debt discovered during CI surfacing — these go to follow-up issues, not patched in this session.