21 Commits

Author SHA1 Message Date
a5a2895725 fix(ci): use NPM_PUBLISH_TOKEN for Gitea npm registry auth
All checks were successful
Release / release (push) Successful in 7s
Release (Node) / release (push) Successful in 10s
The auto-generated secrets.GITEA_TOKEN lacks write:package scope,
causing npm publish to fail with E401. Use a dedicated repo secret
NPM_PUBLISH_TOKEN with a personal access token that has write:package.
v0.2.1
2026-04-30 12:20:51 +00:00
mika kuns
05d87d2aa7 feat(node): add TypeScript sibling project for npm-based install
Some checks failed
CI (Node) / build-test (push) Successful in 6s
CI (.NET) / build (push) Successful in 10s
Release / release (push) Successful in 8s
Release (Node) / release (push) Failing after 10s
Introduces @kuns/claude-mailbox under node/, a wire-compatible TypeScript
port of the .NET daemon that distributes via the public Gitea npm registry.
The .NET project stays in src/ClaudeMailbox/ untouched; users pick whichever
flavor they prefer.

- node/ project: fastify + @modelcontextprotocol/sdk StreamableHTTPServerTransport
  + better-sqlite3, schema and wire surface match the C# version (port 47822,
  X-Mailbox header, MCP tool names, snake_case SQLite columns)
- Cross-platform autostart: Scheduled Task (Win, no admin) / Windows Service
  (Win, --service) / launchd (mac) / systemd --user (linux)
- 9/9 vitest tests pass; end-to-end /health + send/check round-trip verified
- CI split: existing ci.yml/release.yml renamed to *-dotnet.yml with path
  filters, new ci-node.yml and release-node.yml publish to Gitea npm registry
- install.ps1 / install.sh bootstrap one-liners at repo root; homebrew/
  contains a tap formula template
- README install section reordered: npm path primary, dotnet publish secondary

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v0.2.0
2026-04-30 14:06:46 +02:00
mika kuns
757a095c10 fix(ci): use full GitHub URL for actions/checkout
All checks were successful
CI / build (push) Successful in 12s
Release / release (push) Successful in 7s
Gitea Actions resolves bare action names against the local Gitea
instance by default. Using the full github.com URL makes the runner
pull the action from upstream.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v0.1.0
2026-04-24 19:50:22 +02:00
mika kuns
83afd0ddb3 refactor(ci): use actions/checkout for public repo release flow
Some checks failed
CI / build (push) Failing after 0s
Drops the manual mktemp + git-clone-with-token dance (not needed for a
public repo) in favor of actions/checkout@v4. GITEA_TOKEN is still
required for the release-creation and asset-upload API calls.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 19:46:11 +02:00
mika kuns
8cdc7bac16 fix(ci): build test csproj instead of .slnx for .NET 8 runner
.slnx requires .NET 9 SDK / MSBuild 17.8+. The Gitea runner has only
.NET 8, so build the test project directly — its ProjectReference
transitively builds ClaudeMailbox.csproj.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 19:43:12 +02:00
mika kuns
e3b51122ae fix(service): explain 1073 (service exists) on install-service 2026-04-24 19:40:38 +02:00
mika kuns
e7407b1b3a docs(readme): document install-service verbs and config precedence 2026-04-24 19:36:54 +02:00
mika kuns
c3e5bc2ba2 ci: add tag-triggered Gitea release workflow 2026-04-24 19:35:48 +02:00
mika kuns
202bb692e0 ci: add build+test workflow for main and PRs 2026-04-24 19:34:41 +02:00
mika kuns
dbc6844db6 feat(service): dispatch service verbs from Program entrypoint 2026-04-24 19:33:32 +02:00
mika kuns
ebc0319384 feat(service): implement uninstall-service and status verbs 2026-04-24 19:29:08 +02:00
mika kuns
452dc8514b fix(service): escape bind value and parse port as int in seeded config 2026-04-24 19:27:34 +02:00
mika kuns
f91d3644fb feat(service): implement install-service verb 2026-04-24 19:22:45 +02:00
mika kuns
5c6f4b8b6e feat(service): add ServiceCommands skeleton with platform/admin gates 2026-04-24 19:18:18 +02:00
mika kuns
d8f25dc01b feat(service): enable Windows Service hosting lifetime 2026-04-24 19:14:39 +02:00
mika kuns
870431d0b8 feat(config): load mailbox.json with CLI override in Program 2026-04-24 19:10:54 +02:00
mika kuns
81906e7274 feat(config): add ConfigResolver with CLI>file>default precedence
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 19:06:25 +02:00
mika kuns
f397008ff5 feat(config): add FileConfig model and JSON loader 2026-04-24 19:01:36 +02:00
mika kuns
948c6d4abe docs(plan): implementation plan for gitea release and windows service
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 18:57:56 +02:00
mika kuns
0586d67a41 docs(spec): gitea release flow and windows service support
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 18:53:13 +02:00
mika kuns
ec42e8e4bd Initial 2026-04-24 18:26:11 +02:00