Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .changeset/types-1-0-1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
"@contentrain/types": patch
---

Republish as 1.0.1 — 1.0.0 is permanently unavailable on npm

`@contentrain/types@1.0.0` was published on 2025-01-04 and later unpublished.
npm reserves an unpublished version number forever, so when the release
sequence reached 1.0.0 again the registry refused it:

npm error 400 — Cannot publish over previously published version "1.0.0"

Five of the six packages in that release published successfully; only types
failed. But `workspace:*` resolves to an exact version at publish time, so
`@contentrain/mcp@3.0.0`, `@contentrain/query@7.0.2` and `contentrain@0.9.0`
all went out pinned to `@contentrain/types@1.0.0` — a version that does not
exist and cannot be created. Installing any of them fails with ETARGET.

This bumps types to 1.0.1 and carries the three dependents with it. Nothing
about the code changes; 1.0.0 never reached anyone.

Worth noting for later: had the workspace used `workspace:^` rather than
`workspace:*`, the published range would have been `^1.0.0` and this would
have healed itself the moment 1.0.1 landed, without needing to republish the
dependents.
3 changes: 3 additions & 0 deletions packages/mcp/tests/tools/content.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
import { describe, expect, it, beforeAll, beforeEach, afterAll, afterEach, vi } from 'vitest'

// Real git writes; the surrounding suites make these contend for the machine.
vi.setConfig({ testTimeout: 120000, hookTimeout: 120000 })
import { rm, writeFile } from 'node:fs/promises'
import { join } from 'node:path'
import { createGit } from '../../src/git/identity.js'
Expand Down
16 changes: 11 additions & 5 deletions packages/mcp/vitest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,18 @@ export default defineConfig({
setupFiles: ['./tests/setup/trim-path.ts'],

// Default 5s is not enough for anything that touches git — a single
// `contentrain_init` is 33 subprocesses. Files that need more still set
// their own; this is the floor that stops a slow machine from reporting
// a timeout as a test failure.
testTimeout: 30_000,
// `contentrain_init` is 33 subprocesses.
//
// 60s rather than 30s because 30s was not enough, and the way it failed is
// the argument: a test that runs in 2.1s alone took over 30s with all six
// packages competing for the machine, and reported as a test failure
// rather than as contention. Files doing heavy git work still declare
// their own 120s; this is the floor for the ones that do not, so a file
// that forgets is not silently at risk. A genuine hang costs 60s instead
// of 30s once, which is a cheaper mistake than a false red.
testTimeout: 60_000,
// Fixture setup (template build, clone) lives in hooks and is the slowest
// single step in the suite.
hookTimeout: 30_000,
hookTimeout: 60_000,
},
})
Loading