From 678abfb4c6ad9eeedc1699e98490061a66042de5 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Tue, 14 Jul 2026 21:27:00 -0400 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20public-readiness=20pass=20=E2=80=94?= =?UTF-8?q?=20dynamic=20badges,=20real=20security=20contact,=20issue/PR=20?= =?UTF-8?q?templates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - README: replace hardcoded 0.1.0 version badge with dynamic npm badge, add CI badge - SECURITY.md: route reports to GitHub private vulnerability reporting (old address was a noreply placeholder) - label-sync: label src/ and test paths instead of inherited skills/rules paths - Add issue templates (bug, feature, security contact link) and PR template - Bump version to 0.1.2 Co-Authored-By: Claude Fable 5 --- .github/ISSUE_TEMPLATE/bug_report.yml | 43 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 +++ .github/ISSUE_TEMPLATE/feature_request.yml | 22 +++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 11 ++++++ .github/workflows/label-sync.yml | 8 ++-- CHANGELOG.md | 12 ++++++ README.md | 3 +- SECURITY.md | 2 +- package-lock.json | 4 +- package.json | 2 +- 10 files changed, 103 insertions(+), 9 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..3f050aa --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,43 @@ +name: Bug report +description: Something isn't working +labels: [bug] +body: + - type: textarea + id: what-happened + attributes: + label: What happened? + description: What went wrong, and what did you expect instead? + validations: + required: true + - type: textarea + id: repro + attributes: + label: Steps to reproduce + placeholder: | + 1. Call tool `share_port` with `{...}` + 2. ... + validations: + required: true + - type: input + id: version + attributes: + label: Package version + placeholder: "0.1.1" + validations: + required: true + - type: input + id: client + attributes: + label: MCP client + placeholder: Claude Desktop, Cursor, Claude Code, ... + - type: input + id: os + attributes: + label: OS and Tailscale version + placeholder: "Windows 11, tailscale 1.80.x" + - type: textarea + id: error + attributes: + label: Tool error output + description: The structured error (`code` / `remedy`) if one was returned. + render: json diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..d15ed64 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: true +contact_links: + - name: Security vulnerability + url: https://github.com/TMHSDigital/tailscale-mcp/security/advisories/new + about: Please report security issues privately, not as public issues. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..938bbb6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,22 @@ +name: Feature request +description: Suggest a new tool or improvement +labels: [enhancement] +body: + - type: textarea + id: problem + attributes: + label: Problem + description: What are you trying to do that you can't today? + validations: + required: true + - type: textarea + id: proposal + attributes: + label: Proposed solution + description: What should the tool look like? Include example inputs/outputs if you can. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Alternatives considered diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..e4ad38e --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,11 @@ +# Summary + + + +## Checklist + +- [ ] Conventional commit title (`feat:`, `fix:`, `chore:`, `docs:`) +- [ ] Version bumped in `package.json` (`npm version patch|minor` — release.yml tags and publishes on merge) +- [ ] `mcp-tools.json` updated if tools were added/removed/renamed +- [ ] `npm run build && npm test && npm run typecheck` pass locally +- [ ] README updated if user-facing behavior changed diff --git a/.github/workflows/label-sync.yml b/.github/workflows/label-sync.yml index 89fa789..9d31f81 100644 --- a/.github/workflows/label-sync.yml +++ b/.github/workflows/label-sync.yml @@ -30,12 +30,12 @@ jobs: run: | LABELS="" - if echo "$FILES" | grep -q "^skills/"; then - LABELS="$LABELS skills" + if echo "$FILES" | grep -q "^src/"; then + LABELS="$LABELS code" fi - if echo "$FILES" | grep -q "^rules/"; then - LABELS="$LABELS rules" + if echo "$FILES" | grep -qE "^(test|tests)/|^src/__tests__/"; then + LABELS="$LABELS tests" fi if echo "$FILES" | grep -q "^docs/"; then diff --git a/CHANGELOG.md b/CHANGELOG.md index a6543fc..f20b9d1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ All notable changes to Tailscale MCP will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/). +## [0.1.2] - 2026-07-14 + +### Changed + +- README badges: dynamic npm version badge and CI status badge (the version badge was hardcoded to 0.1.0) +- SECURITY.md now directs reports to GitHub private vulnerability reporting instead of a placeholder email +- PR auto-labeling matches this repo's paths (`src/`, tests) instead of inherited `skills/`/`rules/` paths + +### Added + +- Issue templates (bug report, feature request) and a pull request template + ## [0.1.1] - 2026-07-14 First published release: everything listed under 0.1.0 below ships in this version. (The v0.1.0 tag was consumed by the initial scaffold before the tool surface landed, so the first npm publish is 0.1.1.) diff --git a/README.md b/README.md index b09e1ed..1ba3f8d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,8 @@ **MCP server for safe programmatic access to the local Tailscale daemon: tailnet discovery, SSH config generation, port sharing via Serve/Funnel, and latency matrices.** ![License: CC-BY-NC-ND-4.0](https://img.shields.io/badge/license-CC--BY--NC--ND--4.0-green) -![Version](https://img.shields.io/badge/version-0.1.0-blue) +[![npm version](https://img.shields.io/npm/v/%40tmhs%2Ftailscale-mcp)](https://www.npmjs.com/package/@tmhs/tailscale-mcp) +[![CI](https://github.com/TMHSDigital/tailscale-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/TMHSDigital/tailscale-mcp/actions/workflows/ci.yml) --- diff --git a/SECURITY.md b/SECURITY.md index d6f8f23..bd43c7a 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -6,7 +6,7 @@ If you discover a security vulnerability in Tailscale MCP, please report it resp **Do not** open a public issue for security vulnerabilities. -Instead, email contact@users.noreply.github.com with: +Instead, use [GitHub private vulnerability reporting](https://github.com/TMHSDigital/tailscale-mcp/security/advisories/new) ("Report a vulnerability" under the Security tab) and include: 1. Description of the vulnerability 2. Steps to reproduce diff --git a/package-lock.json b/package-lock.json index 130a6b8..72b8244 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@tmhs/tailscale-mcp", - "version": "0.1.1", + "version": "0.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@tmhs/tailscale-mcp", - "version": "0.1.1", + "version": "0.1.2", "license": "CC-BY-NC-ND-4.0", "dependencies": { "@modelcontextprotocol/sdk": "^1.29.0", diff --git a/package.json b/package.json index 5152b66..3b01bd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tmhs/tailscale-mcp", - "version": "0.1.1", + "version": "0.1.2", "description": "MCP server for safe programmatic access to the local Tailscale daemon: tailnet discovery, SSH config generation, port sharing via Serve/Funnel, and latency matrices.", "type": "module", "main": "dist/index.js", From 319f729c3c9a5eb3307e4fef9a5b9ce087085fd2 Mon Sep 17 00:00:00 2001 From: fOuttaMyPaint Date: Tue, 14 Jul 2026 21:40:13 -0400 Subject: [PATCH 2/2] chore: add CLAUDE.md to .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 06c2f88..f0b29dc 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build/ Thumbs.db *.log _harness.mjs +CLAUDE.md