ChatCops monorepo launched with widget inline mode and npm publishing
By RepoJournal , from @anurag629's public GitHub activity
Backfilled
Anurag Verma shipped the initial release of ChatCops across three npm packages, then iterated quickly on widget display modes and publishing infrastructure over 19 commits across 13 pull requests and 1 release.
Work began in codercops/chatcops with foundational theme updates and security hardening across all packages [1] [2]. Input validation using Zod was added to the LeadCaptureTool, memory leaks in ConversationManager were fixed, and JSON parsing was hardened in server adapters. CORS was made required rather than implicitly allowing wildcards [2].
CI and release workflows were set up to run on separate dev and production branches [3]. The dev branch runs typecheck, test, and build on every push and pull request, while production triggers test, build, changeset publish to npm, and website deployment. A files field was added to core and server packages to exclude tests and source from npm, reducing the core package from 161KB to 75KB and server from 130KB to 47KB [4] [5].
The initial v0.1.0 release shipped with three packages: @chatcops/core providing AI provider abstraction and tools, @chatcops/server with Express and serverless adapters, and @chatcops/widget for embeddable chat [6]. A subsequent feature added inline display mode to the widget [7] [8], allowing chat panels to render directly inside container elements rather than as floating bubbles. The Widget class was exported to support multiple independent instances on a single page.
Publishing infrastructure was refined through three iterations. NPM_TOKEN was removed in favor of npm trusted publishing via OIDC [9], then the repository field was added to all package.json files to satisfy npm provenance validation requirements [10]. A manual Vercel deploy step was removed from the release workflow, relying instead on GitHub's native integration [11].
One email a day. Unsubscribe in one click.
A short briefing every day anurag629 ships something — in about 3 minutes.
One email a day. Unsubscribe in one click. Read a past issue →
References
- [1] feat: update starlight theme styles for dark and light modes codercops/chatcops
- [2] fix: input validation, memory leaks, security hardening, and config fixes across all packages codercops/chatcops
- [3] feat: set up dev/production branching with CI and release workflows codercops/chatcops
- [4] fix: add files field to core and server packages (#1) codercops/chatcops
- [5] fix: add files field to core and server packages ↗ codercops/chatcops
- [6] release: v0.1.0 ↗ codercops/chatcops
- [7] feat: add inline mode to widget and live showcase ↗ codercops/chatcops
- [8] Release: widget inline mode + live showcase ↗ codercops/chatcops
- [9] fix: switch to npm trusted publishing (OIDC) ↗ codercops/chatcops
- [10] fix: add repository field for npm provenance ↗ codercops/chatcops
- [11] fix: remove manual Vercel deploy from release workflow ↗ codercops/chatcops