feat(release): 1.0.0-rc.0 — API reports in CI, upgrade guide, version - #402
Merged
Merged
Conversation
LinuxDevil
force-pushed
the
lou-a7-release-candidate
branch
from
October 4, 2026 14:46
a060b7c to
714244b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #245
What this does
Freezes the public surface for 1.0 as a release candidate:
@microsoft/api-extractor(devDependency, 7.59.3) +scripts/api-report.ts. The script readspackage.jsonexportsand runs api-extractor programmatically (ExtractorConfig.prepare/Extractor.invoke) on each entry'stypesfile, writingapi/<subpath>.api.md— 20 reports for the 20 current entries.api:update/api:checkscripts added;api/is not infiles..d.tsdeclarations fine oncecompiler.overrideTsconfigwas set to{ moduleResolution: "bundler", module: "esnext", skipLibCheck: true, files: [<entry d.ts>] }(the.js-suffixed hashed chunk imports resolve under bundler resolution).ae-missing-release-tagis suppressed;ae-forgotten-exportis written into the reports so unexported types used by public signatures stay visible. Reports arenewlineKind: 'lf', contain no absolute paths, and.gitattributespinsapi/** text eol=lf.npm run api:checkadded to.github/workflows/ci.ymlright afternpm run build, in the maincijob only (thepeersmatrix installs different ai/zod pairings; the report reflects the default peers).npm run api:update, commit the report; reviewers read the diff.1.0.0-rc.0inpackage.json,src/index.tsVERSION,packages/create-lousho-agent's dependency range (^1.0.0-rc.0; its own version stays0.1.1), andpackage-lock.json. Newsrc/version.test.tspinsVERSIONtopackage.jsonversion— worth having: alpha.9 shipped withVERSIONstill reading1.0.0-alpha.8.docs/upgrading.md"Upgrading to 1.0", the seven sections in spec order: who needs it, import-move table (A1+A3, incl. the removed/coresubpath), removed APIs and replacements (A2a/A2b/A2c), renamed APIs (A5 patch guardrails → patch checks), deprecated-but-working names through 1.x (three trigger adapters +ToolRunContext,RunUsage.promptTokens/completionTokens,AiSdkProvider.convertMessages), every behavior-changing### Breaking/### Changedentry from the changelog with doc links, and what 1.0 promises (semver overexports+ theapi/reports; deepdist//src/imports internal). Linked from the README docs table anddocs/installation.md.llms.txt/llms-full.txtregenerated.## [Unreleased]split — a fresh empty## [Unreleased]above## [1.0.0-rc.0] - 2026-10-04(today's date; the owner question in the issue is unanswered — happy to redate), with a link to the upgrade guide at the top of the entry.scripts/pack-smoke.tsthresholds comment updated with the measured sizes.api:check catches a signature change (demo)
Renamed
isValidEmail(email: ...)'s parameter locally, rebuilt, andnpm run api:checkfailed with:Change reverted;
api:checkis green on this branch.Live smoke run — blocked by an expired key, artifact otherwise verified ($0 spent)
The OpenRouter key in
.claude/round3.env(and theround2.envone the ticket names) returns 401 "API key expired" onGET /api/v1/auth/key, sodata.usage/data.limit_remainingcould not be read and no real-model turn was run — the spend is $0. What did run onlousho-build-ai-agent-1.0.0-rc.0.tgzin a fresh temp project (ai@7,@ai-sdk/openai@4,zod, no optional peers):importand CJSrequireof every no-optional-peer subpath —./executor(7),./flows(13),./integrations(11),./utils(16),./tools(44),./testing(5),./hooks(1),./triggers(11),./mcp(7): all resolve and export.npm run pack-smoke: 948 entries / ~16.4 MiB unpacked / ~4.3 MiB packed, all checks pass (publish dry-run, 20/20 entries ESM+CJS,createAgent+mockModelturn,lousho --help,lousho doctor,tscunder bundler and node16).stream()deltas, a two-turn session, an approval resolved in code (awaiting-approval→Sent.), and the coding-agent pattern (createFsTools+createShellTool+NodeWorkspace) reading a file in a scratch dir.401 API key expired— the SDK side behaved correctly (LOUSHO_PROVIDER_REQUEST_FAILEDwithstatusCode: 401).registry-smokedoes not support a local tarball (--versiononly), so step 3 of the live test does not apply. No cassette recorded.A fresh OpenRouter key is needed to complete the one real-model turn; rerunning
node live.mjs-equivalent costs well under the $0.50 budget (gpt-4o-mini, maxSteps ≤ 5).Verification
npm run buildNODE_OPTIONS=--max-old-space-size=6144for the DTS pass)npm run api:checknpx vitest runnpm run typecheck/lint/test:typesnpm run typecheck:testsmain(A6b follow-up; not in CI), none from this changenpm run docs:verify-snippets -- --skip-buildnpm run docs:llms:checknpm run pack-smoketypecheck,typecheck:server,test,test:serversrc/version.test.tsNotes / owner questions
2026-10-04on the rc entry, version1.0.0-rc.0(alpha.9 had already shipped), the listed@deprecatednames kept through 1.x (already decided in the ticket),create-lousho-agentversion unchanged.docs.jsonnav in English andar/, Arabic translation).