6 Commits

Author SHA1 Message Date
Yanwu 1931c55841 fix: remove extension packaging from publish workflow (#155)
Extension was removed in 0.11.0. Also removes one-time release-as override.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 09:46:02 +08:00
Yanwu fb1a9b0644 chore: add harness — tests, CI, protocol types, design invariants (#133)
* chore: add harness — tests, CI, protocol types, design invariants

Context layer:
- Rewrite AGENTS.md: new daemon architecture, 3-file command pattern,
  7 design invariants (INV-1 through INV-7), testing section
- Update protocol.ts: add tab/seq/cursor/since fields, update
  DaemonStatus, remove SSE types, widen TabInfo.tabId to string

Constraints layer:
- Unit tests: RingBuffer (14), TabState + TabStateManager (36)
- Contract tests: all 7 invariants verified (48)
- Protocol drift tests: real daemon HTTP response shape checks (13,
  skipped when Chrome unavailable)
- CI workflow: build + lint + test on push/PR to main
- Pre-commit hook: pnpm build && pnpm test via husky

GC layer:
- Harness scenarios doc: 6 reusable Agent workflow scenarios for
  periodic UX validation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: resolve lint errors caught by CI

- Remove unused imports (TabState, TabInfo, JsonObject, Response)
- Remove unused variable assignments in tests (r1-r4)
- Change `let items` to `const items` in command-dispatch
- Remove stale eslint-disable directive, use proper cast
- Exclude .d.ts files from eslint in daemon package

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address Codex review findings

- cursor returns since threshold instead of 0 on empty results,
  preventing infinite re-fetch in incremental polling loops
- Guard shutdown against double-call (SIGINT + /shutdown race)
- Fix timer leak in discoverCdpPort when fetch fails

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs: update READMEs — remove Extension references, update architecture diagram

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 15:47:10 +08:00
Waffle 1316679fd9 chore(github): add issue templates (#83)
* chore(github): add issue templates

* chore(github): add issue template labels and checkboxes
2026-03-22 14:36:02 +08:00
yan5xu 57da2779d3 ci: fix publish — use workflow_call instead of release event
GITHUB_TOKEN-created releases don't trigger other workflows (GitHub
Actions limitation to prevent loops). Changed publish.yml to use
workflow_call (invoked by release-please) + workflow_dispatch (manual
retry from Actions tab).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:22:00 +08:00
yan5xu e50dae2278 ci: split publish into separate workflow triggered by release event
Previously all publish steps lived in release-please.yml gated on
release_created. If the release-please run failed (e.g. permissions)
but the release was created manually, npm publish could never be
retried — subsequent runs saw the release already existed and skipped.

Now release-please.yml only manages PRs/releases, and a new
publish.yml triggers on release:published to handle build, extension
upload, and npm publish independently. Publish failures can be re-run
without needing release-please to fire again.

Closes #94

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:19:20 +08:00
Waffle 570737c957 chore(release): automate versioning and publishing 2026-03-19 17:25:33 +08:00