Skip to content

Conversation

@i11v
Copy link
Owner

@i11v i11v commented Jan 23, 2026

Add a new CI job that posts JMAP spec coverage as a PR comment:

  • Create .github/scripts/post-coverage.js for posting comments
  • Add Spec Coverage job that runs on PRs with submodule checkout
  • Capture coverage:spec --by-type output and post via github-script

https://claude.ai/code/session_01BKenThf76JjbsGoqPWybft

Add a new CI job that posts JMAP spec coverage as a PR comment:
- Create .github/scripts/post-coverage.js for posting comments
- Add Spec Coverage job that runs on PRs with submodule checkout
- Capture coverage:spec --by-type output and post via github-script

https://claude.ai/code/session_01BKenThf76JjbsGoqPWybft
- Add pull-requests: write permission to spec-coverage job
- Use context.payload.pull_request.number for PR number
- Use unique heredoc delimiter to avoid output conflicts

https://claude.ai/code/session_01BKenThf76JjbsGoqPWybft
Package.json has "type": "module" so .js files are treated as ES modules.
Rename to .cjs to allow require() from github-script action.

https://claude.ai/code/session_01BKenThf76JjbsGoqPWybft
@github-actions
Copy link

JMAP Spec Coverage


> effect-jmap@0.6.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
> tsx scripts/spec-coverage.ts --by-type



╔════════════════════════════════════════════════════════════╗
║         JMAP Implementation Coverage by Object Type         ║
╚════════════════════════════════════════════════════════════╝


  Blob
  [░░░░░░░░░░░░░░░░░░░░░░░░░] 0.0% (0/4)

      ○ copy
      ○ get
      ○ lookup
      ○ upload

  Core
  [░░░░░░░░░░░░░░░░░░░░░░░░░] 0.0% (0/1)

      ○ echo

  Email
  [███████████████████░░░░░░] 75.0% (6/8)

      ✓ get
      ✓ set
      ✓ query
      ✓ queryChanges
      ○ changes
      ✓ copy
      ✓ import
      ○ parse

  EmailSubmission
  [█████████████████████████] 100.0% (5/5)

      ✓ get
      ✓ set
      ✓ query
      ✓ queryChanges
      ✓ changes

  Identity
  [░░░░░░░░░░░░░░░░░░░░░░░░░] 0.0% (0/3)

      ○ get
      ○ set
      ○ changes

  Mailbox
  [████████████████████░░░░░] 80.0% (4/5)

      ✓ get
      ✓ set
      ✓ query
      ✓ queryChanges
      ○ changes

  SearchSnippet
  [░░░░░░░░░░░░░░░░░░░░░░░░░] 0.0% (0/1)

      ○ get

  Thread
  [░░░░░░░░░░░░░░░░░░░░░░░░░] 0.0% (0/2)

      ○ get
      ○ changes

  VacationResponse
  [░░░░░░░░░░░░░░░░░░░░░░░░░] 0.0% (0/2)

      ○ get
      ○ set


────────────────────────────────────────────────────────────
  Overall: 15/31 methods (48.4%)

- Add --markdown flag to spec-coverage.ts for GitHub-flavored tables
- Update CI workflow to use --markdown instead of --by-type
- Remove code block wrapper since markdown renders natively

https://claude.ai/code/session_01BKenThf76JjbsGoqPWybft
@github-actions
Copy link

JMAP Spec Coverage

effect-jmap@0.6.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Object Type Coverage Methods
Blob 0/4 (0%) ⬚ copy, ⬚ get, ⬚ lookup, ⬚ upload
Core 0/1 (0%) ⬚ echo
Email 6/8 (75%) ✅ get, ✅ set, ✅ query, ✅ queryChanges, ⬚ changes, ✅ copy, ✅ import, ⬚ parse
EmailSubmission 5/5 (100%) ✅ get, ✅ set, ✅ query, ✅ queryChanges, ✅ changes
Identity 0/3 (0%) ⬚ get, ⬚ set, ⬚ changes
Mailbox 4/5 (80%) ✅ get, ✅ set, ✅ query, ✅ queryChanges, ⬚ changes
SearchSnippet 0/1 (0%) ⬚ get
Thread 0/2 (0%) ⬚ get, ⬚ changes
VacationResponse 0/2 (0%) ⬚ get, ⬚ set

Each object type now has its own table with methods in separate rows.
Format: Method | Status columns for cleaner PR comments.

https://claude.ai/code/session_01BKenThf76JjbsGoqPWybft
@github-actions
Copy link

JMAP Spec Coverage

effect-jmap@0.6.0 coverage:spec /home/runner/work/effect-jmap/effect-jmap
tsx scripts/spec-coverage.ts --markdown

Overall: 15/31 methods (48.4%)

Blob (0/4)

Method Status
copy
get
lookup
upload

Core (0/1)

Method Status
echo

Email (6/8)

Method Status
get
set
query
queryChanges
changes
copy
import
parse

EmailSubmission (5/5)

Method Status
get
set
query
queryChanges
changes

Identity (0/3)

Method Status
get
set
changes

Mailbox (4/5)

Method Status
get
set
query
queryChanges
changes

SearchSnippet (0/1)

Method Status
get

Thread (0/2)

Method Status
get
changes

VacationResponse (0/2)

Method Status
get
set

@i11v i11v merged commit 34ac9eb into main Jan 23, 2026
6 checks passed
effect-jmap-release bot pushed a commit that referenced this pull request Jan 23, 2026
# [0.7.0](v0.6.0...v0.7.0) (2026-01-23)

### Features

* Add spec coverage reporting to PRs ([#13](#13)) ([34ac9eb](34ac9eb))
@effect-jmap-release
Copy link

🎉 This PR is included in version 0.7.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants