Skip to content

feat: tag-triggered npm release automation + CHANGELOG - #8

Merged
noneck merged 1 commit into
mainfrom
feat/release-automation
Jul 6, 2026
Merged

feat: tag-triggered npm release automation + CHANGELOG#8
noneck merged 1 commit into
mainfrom
feat/release-automation

Conversation

@noneck

@noneck noneck commented Jul 6, 2026

Copy link
Copy Markdown
Member

Part of the six-repo fleet release-hygiene rollout: adds tag-triggered npm publishing, a Keep a Changelog CHANGELOG, and release docs to @betanyc/nyc-record-mcp.

What's in this PR

Prerequisite

Requires an NPM_TOKEN repository secret (npm automation token with publish rights on @betanyc/nyc-record-mcp) before the first tagged release.

No version bump or tag in this PR — nothing publishes until a v* tag is pushed.

Test plan

  • npx yaml-lint .github/workflows/release.yml — pass
  • npm ci && npm test — 1 test, 0 failures

🤖 Generated with Claude Code

- .github/workflows/release.yml: on v* tag push — npm ci, test,
  tag/package.json version guard, npm publish with provenance,
  GitHub Release with generated notes. Requires NPM_TOKEN secret.
- CHANGELOG.md: Keep a Changelog format, backfilled from npm publish
  dates (1.0.0 2026-05-21, 1.0.1 2026-05-22) and git history; Unreleased
  section covers merged-but-unpublished changes.
- README: add Releases section; fix duplicated phrase in MIT license text.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@noneck
noneck merged commit cb84646 into main Jul 6, 2026
2 checks passed
@noneck
noneck deleted the feat/release-automation branch July 6, 2026 13:15
noneck added a commit that referenced this pull request Jul 6, 2026
…refresh

- Bump package.json/lockfile to 1.0.2.
- Server reads its version from package.json via createRequire instead of
  a hardcoded string.
- CHANGELOG: move Unreleased items into 1.0.2 (double-encoding fix #6,
  SoQL escaping + enum enforcement + NY-timezone today + error detail #7,
  hono bump #4, CI #3, release automation #8).
- README: Claude Code config updated to .mcp.json / claude mcp add;
  add npm test instructions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
noneck added a commit that referenced this pull request Jul 6, 2026
* fix: SoQL escaping, NY-timezone today, error detail

- Add soqlString() helper (quote-doubling) and use it in every $where
  builder: getNoticesByType, getNoticesByAgency, getNoticesByDateRange.
- Validate notice_type with z.enum (mirrors the advertised tool enum,
  now derived from a single NOTICE_TYPES constant) and date params as
  YYYY-MM-DD.
- getOpenSolicitations: compute "today" in America/New_York (nyToday())
  instead of UTC, which dropped same-day deadlines after 8pm ET.
- Include the (truncated, 300-char) Socrata error body in thrown errors.
- Live-verified 2026-07-06: dataset's distinct type_of_notice_description
  values exactly match the hardcoded lists/enum (10 values, plus null
  rows); all start_date values are midnight, so the <= end bound is
  correct (documented in code).
- Tests: escaping regressions, injected-clock NY-date checks (EDT/EST),
  error-body inclusion + truncation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore(release): 1.0.2 — version from package.json, changelog, README refresh

- Bump package.json/lockfile to 1.0.2.
- Server reads its version from package.json via createRequire instead of
  a hardcoded string.
- CHANGELOG: move Unreleased items into 1.0.2 (double-encoding fix #6,
  SoQL escaping + enum enforcement + NY-timezone today + error detail #7,
  hono bump #4, CI #3, release automation #8).
- README: Claude Code config updated to .mcp.json / claude mcp add;
  add npm test instructions.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant