@cyanheads/mcp-ts-core 0.6.16 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.md +1 -1
  3. package/changelog/0.6.x/0.6.17.md +26 -0
  4. package/changelog/0.7.x/0.7.0.md +30 -0
  5. package/dist/linter/rules/format-parity-rules.d.ts.map +1 -1
  6. package/dist/linter/rules/format-parity-rules.js +24 -1
  7. package/dist/linter/rules/format-parity-rules.js.map +1 -1
  8. package/dist/logs/combined.log +4 -4
  9. package/dist/logs/error.log +4 -4
  10. package/dist/mcp-server/resources/resource-registration.d.ts.map +1 -1
  11. package/dist/mcp-server/resources/resource-registration.js +10 -7
  12. package/dist/mcp-server/resources/resource-registration.js.map +1 -1
  13. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts +10 -2
  14. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  15. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +5 -5
  16. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  17. package/dist/mcp-server/tools/tool-registration.d.ts.map +1 -1
  18. package/dist/mcp-server/tools/tool-registration.js +18 -20
  19. package/dist/mcp-server/tools/tool-registration.js.map +1 -1
  20. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +11 -2
  21. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +10 -5
  23. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  24. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  25. package/dist/mcp-server/transports/http/httpTransport.js +101 -21
  26. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  27. package/dist/utils/internal/error-handler/errorHandler.d.ts +4 -1
  28. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
  29. package/dist/utils/internal/error-handler/errorHandler.js +15 -2
  30. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
  31. package/dist/utils/internal/error-handler/helpers.d.ts +17 -0
  32. package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -1
  33. package/dist/utils/internal/error-handler/helpers.js +29 -0
  34. package/dist/utils/internal/error-handler/helpers.js.map +1 -1
  35. package/dist/utils/internal/error-handler/mappings.d.ts.map +1 -1
  36. package/dist/utils/internal/error-handler/mappings.js +1 -0
  37. package/dist/utils/internal/error-handler/mappings.js.map +1 -1
  38. package/package.json +2 -2
  39. package/scripts/build-changelog.ts +7 -1
  40. package/scripts/devcheck.ts +3 -4
  41. package/skills/api-linter/SKILL.md +13 -2
  42. package/skills/maintenance/SKILL.md +20 -9
  43. package/skills/release-and-publish/SKILL.md +29 -5
  44. package/skills/report-issue-framework/SKILL.md +20 -6
  45. package/skills/report-issue-local/SKILL.md +26 -3
  46. package/templates/.github/ISSUE_TEMPLATE/bug_report.yml +9 -0
  47. package/templates/.github/ISSUE_TEMPLATE/feature_request.yml +11 -0
@@ -86,6 +86,7 @@ export const ERROR_TYPE_MAPPINGS = {
86
86
  URIError: JsonRpcErrorCode.ValidationError,
87
87
  EvalError: JsonRpcErrorCode.InternalError,
88
88
  AggregateError: JsonRpcErrorCode.InternalError,
89
+ ZodError: JsonRpcErrorCode.ValidationError,
89
90
  };
90
91
  /**
91
92
  * Common error patterns for classifying errors by message/name.
@@ -1 +1 @@
1
- {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../../../src/utils/internal/error-handler/mappings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mappings.js","sourceRoot":"","sources":["../../../../src/utils/internal/error-handler/mappings.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/mcp-ts-core",
3
- "version": "0.6.16",
3
+ "version": "0.7.0",
4
4
  "mcpName": "io.github.cyanheads/mcp-ts-core",
5
5
  "description": "Agent-native TypeScript framework for building MCP servers. Declarative definitions with auth, multi-backend storage, OpenTelemetry, and first-class support for Bun/Node/Cloudflare Workers.",
6
6
  "main": "dist/core/index.js",
@@ -263,7 +263,7 @@
263
263
  "@modelcontextprotocol/sdk": "^1.29.0",
264
264
  "@opentelemetry/api": "^1.9.1",
265
265
  "dotenv": "^17.4.2",
266
- "hono": "^4.12.14",
266
+ "hono": "^4.12.15",
267
267
  "jose": "^6.2.2",
268
268
  "pino": "^10.3.1",
269
269
  "zod": "^4.3.6"
@@ -27,7 +27,7 @@
27
27
  * @module scripts/build-changelog
28
28
  */
29
29
 
30
- import { readdirSync, readFileSync, writeFileSync } from 'node:fs';
30
+ import { existsSync, readdirSync, readFileSync, writeFileSync } from 'node:fs';
31
31
  import { resolve } from 'node:path';
32
32
  import process from 'node:process';
33
33
 
@@ -194,6 +194,12 @@ function reportMissingSummaries(missing: string[]): void {
194
194
 
195
195
  function main(): void {
196
196
  const checkOnly = process.argv.includes('--check');
197
+
198
+ if (!existsSync(CHANGELOG_DIR)) {
199
+ console.log(`Skipped: ${CHANGELOG_DIR} does not exist (single-file CHANGELOG.md project).`);
200
+ process.exit(0);
201
+ }
202
+
197
203
  const { content: generated, missingSummary } = buildRollup();
198
204
 
199
205
  if (checkOnly) {
@@ -453,11 +453,10 @@ const ALL_CHECKS: Check[] = [
453
453
  flag: '--no-changelog-sync',
454
454
  canFix: false,
455
455
  // --check exits non-zero if CHANGELOG.md drifts from changelog/*.md.
456
- // Skipped cleanly when neither CHANGELOG.md nor changelog/ exists (non-mcp-ts-core projects).
456
+ // Skipped cleanly when the directory-based changelog isn't in use — CHANGELOG.md
457
+ // alone is a supported configuration (runtime-only consumers, opt-out per #41).
457
458
  getCommand: () => {
458
- const hasChangelog = existsSync(path.join(ROOT_DIR, 'changelog'));
459
- const hasRollup = existsSync(path.join(ROOT_DIR, 'CHANGELOG.md'));
460
- if (!hasChangelog && !hasRollup) return null;
459
+ if (!existsSync(path.join(ROOT_DIR, 'changelog'))) return null;
461
460
  return ['bun', 'run', 'scripts/build-changelog.ts', '--check'];
462
461
  },
463
462
  tip: (c) =>
@@ -4,7 +4,7 @@ description: >
4
4
  MCP definition linter rules reference. Use when `bun run lint:mcp`, `bun run devcheck`, or `createApp()` startup reports a lint error or warning (`format-parity`, `schema-is-object`, `name-format`, `server-json-*`, etc.) and you need to understand the rule, its severity, and how to fix it. Every rule ID the linter emits has an entry in this doc.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.0"
7
+ version: "1.1"
8
8
  audience: external
9
9
  type: reference
10
10
  ---
@@ -134,7 +134,18 @@ input: z.object({ items: z.array(z.string()).describe('List of items') })
134
134
 
135
135
  Every field in `input`, `output`, `params`, or `args` needs a `.describe('...')` call. Descriptions ship to the client and the LLM — missing ones make tools harder to use correctly.
136
136
 
137
- **Fix:** add `.describe('...')` to every leaf. The linter reports which path is missing a description (e.g., `input.filters.status`), so it's a mechanical fix.
137
+ **Fix:** add `.describe('...')` to the paths the linter flags. The diagnostic names which path is missing a description (e.g., `input.filters.status`).
138
+
139
+ **Recursion rules** — the linter walks selectively; primitive array elements are intentionally skipped. Knowing what's walked prevents over-application of describes that end up as noise in the generated JSON Schema.
140
+
141
+ | Schema position | Walked? | Describe required on inner? |
142
+ |:---|:---|:---|
143
+ | `z.object({ ... })` field | Yes | Yes, on each field |
144
+ | `z.array(compound)` element — object, array, or union | Yes | Yes, on the element |
145
+ | `z.array(primitive)` element — string, number, enum, regex-branded primitive, etc. | **No** | No — outer array describe is sufficient |
146
+ | `z.union([a, b, ...])` option | Yes (every option) | Yes, on each option |
147
+
148
+ The asymmetry that catches agents: inside `z.union([z.string(), z.array(z.string())])`, the outer `z.string()` option **does** need a describe (unions walk every option), but the `z.string()` inside the inner array does **not** (arrays don't walk primitive elements). If the linter didn't flag a path, don't add a describe there — the redundant describe ships to the JSON Schema as clutter.
138
149
 
139
150
  ### schema-serializable
140
151
 
@@ -4,7 +4,7 @@ description: >
4
4
  Investigate, adopt, and verify dependency updates — with special handling for `@cyanheads/mcp-ts-core`. Captures what changed, understands why, cross-references against the codebase, adopts framework improvements, syncs project skills, and runs final checks. Supports two entry modes: run the full flow end-to-end, or review updates you already applied.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.4"
7
+ version: "1.5"
8
8
  audience: external
9
9
  type: workflow
10
10
  ---
@@ -77,7 +77,7 @@ Cross-reference each finding against the server's code. Collect adoption opportu
77
77
 
78
78
  **Template review.** The framework also ships `templates/CLAUDE.md` and `templates/AGENTS.md` as scaffolding for consumer agent protocol files. The consumer's `CLAUDE.md`/`AGENTS.md` was copied at init time and has since diverged (local customizations, echo replacements, server-specific sections). Read the upstream template fresh at `node_modules/@cyanheads/mcp-ts-core/templates/CLAUDE.md`.
79
79
 
80
- Skip the mechanical diff — consumer customizations create too much noise to filter. Instead, read end-to-end with fresh eyes, mentally comparing against the current `CLAUDE.md`. Look for: new conventions, updated skill references, expanded checklists, new callouts, clearer explanations, restructured sections. Present findings; let the user cherry-pick what to adopt. Never auto-merge the consumer's file is theirs.
80
+ Read the upstream template end-to-end, mentally comparing against the current `CLAUDE.md`/`AGENTS.md`. Apply framework-authored updates directly new skill references in the skills table, new entries in the "What's Next?" section, updated convention callouts, clarified patterns. These are factual updates, not taste decisions; the consumer's agent protocol file is meant to track the framework's. Only surface a decision when a template change conflicts with a section the consumer has intentionally customized (server-specific domain context, bespoke checklists, etc.) — in that case, note the conflict and ask.
81
81
 
82
82
  ### 5. Sync project skills and scripts
83
83
 
@@ -140,14 +140,25 @@ If the consumer customized a framework script, the overwrite discards those chan
140
140
 
141
141
  ### 6. Adopt changes in the codebase
142
142
 
143
- Apply the findings from Steps 3 and 4:
143
+ Apply the findings from Steps 3 and 4. Framework changes and third-party library changes have different adoption defaults — the asymmetry is deliberate.
144
144
 
145
- - **Breaking changes**fix call sites
146
- - **Deprecations** — migrate now, while context is fresh
147
- - **New framework features** — refactor targeted spots only; don't cargo-cult everywhere
148
- - **New configuration** — update `.env.example`, server config schema, README if user-facing
145
+ **Framework changes (`@cyanheads/mcp-ts-core`) default adopt.**
149
146
 
150
- Keep diffs focused. Don't sweep refactors beyond the update's scope.
147
+ The consumer opted into the framework; its templates, skills, scripts, linter rules, and conventions are authoritative. Adopt directly unless the change genuinely conflicts with a documented local override.
148
+
149
+ - **Breaking changes** — fix call sites. Not optional.
150
+ - **Deprecations** — migrate now, while context is fresh.
151
+ - **New linter rules** — if the rule now flags existing code, fix the code; don't silence the rule.
152
+ - **New utilities that supersede local code** — swap them in. The point of the framework is to centralize.
153
+ - **New conventions** (template changes, new config keys, renamed env vars) — adopt and update `.env.example`, server config schema, `server.json`, and README if user-facing.
154
+ - **New framework features that don't match existing use cases** — skip; those are for future features, not retroactive refactors.
155
+
156
+ **Third-party library changes — default cost/benefit.**
157
+
158
+ - Read the changelog findings from Step 3, assess impact against actual call sites in `src/`.
159
+ - Adopt when the change is a clear win (performance, correctness, removed deprecation warning, smaller surface).
160
+ - Skip when marginal — a new convenience API isn't a reason to touch working code.
161
+ - If the library added a feature the server could use, note it but don't refactor speculatively.
151
162
 
152
163
  ### 7. Rebuild and verify
153
164
 
@@ -171,7 +182,7 @@ Present a concise numbered summary to the user:
171
182
  2. **Breaking changes handled** — call sites fixed
172
183
  3. **Features adopted** — new framework APIs now in use
173
184
  4. **Skills synced** — added/updated with versions (Phase A) and agent directories refreshed (Phase B)
174
- 5. **Needs attention** — anything deferred, flagged for decision, or risky
185
+ 5. **Open decisions** — genuinely ambiguous items: breaking changes with multiple migration paths, framework changes that conflict with a documented local override, third-party adoptions where the cost/benefit is close
175
186
  6. **Status** — rebuild / devcheck / test results
176
187
 
177
188
  ## Checklist
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: release-and-publish
3
3
  description: >
4
- Ship a release end-to-end across every registry the project targets (npm, MCP Registry, GHCR). Runs the final verification gate, pushes commits and tags, then publishes to each applicable destination. Assumes git wrapup (version bumps, changelog, commit, annotated tag) is already complete — this skill is the post-wrapup publish workflow. Halts and alerts the user on the first failure.
4
+ Ship a release end-to-end across every registry the project targets (npm, MCP Registry, GHCR). Runs the final verification gate, pushes commits and tags, then publishes to each applicable destination. Assumes git wrapup (version bumps, changelog, commit, annotated tag) is already complete — this skill is the post-wrapup publish workflow. Retries transient network failures on publish steps; halts with a partial-state report when retries are exhausted or the failure is terminal.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "2.0"
7
+ version: "2.1"
8
8
  audience: external
9
9
  type: workflow
10
10
  ---
@@ -26,13 +26,37 @@ If any are missing, halt and tell the user to finish wrapup first. Do not attemp
26
26
 
27
27
  ## Failure Protocol
28
28
 
29
- **Stop on the first non-zero exit.** No retries, no remediation from inside the skill. Report to the user:
29
+ Steps 3–6 are network-bound. For those, **retry transient failures up to 2 times** with short backoff (~5 s before the first retry, ~15 s before the second) before halting. All other steps halt on the first non-zero exit they're deterministic and a second attempt won't change the outcome.
30
+
31
+ ### Retry on transient patterns
32
+
33
+ Match stderr (case-insensitive) against any of these — if matched, the failure is almost always a network blip; retry:
34
+
35
+ - `integrity check failed` / `IntegrityCheckFailed` — corrupt tarball during download
36
+ - `ECONNRESET` / `EAI_AGAIN` / `ETIMEDOUT` / `ENOTFOUND` — network layer
37
+ - `connection reset` / `connection refused` — transport blip
38
+ - `timed out` / `request timeout` — server or network timeout
39
+ - HTTP `502` / `503` / `504` — transient registry error
40
+
41
+ **Before retrying `docker buildx --push` (step 6)**, run `docker builder prune -f` to drop any cached corrupt layer. Skip this extra step for other retries.
42
+
43
+ ### Never retry on idempotent-success signals
44
+
45
+ These mean the step already succeeded on a prior run — treat as success and proceed to the next step:
46
+
47
+ - npm (`bun publish`): `version already exists`, `You cannot publish over the previously published versions`
48
+ - MCP Registry (`mcp-publisher publish`): `cannot publish duplicate version`
49
+
50
+ ### Halt fallback
51
+
52
+ If retries are exhausted, or the failure matches none of the transient patterns, halt and report:
30
53
 
31
54
  1. Which step failed
32
55
  2. The exact error output
33
- 3. Which destinations already received the release (npm published? tag pushed? etc.) so they know the partial state
56
+ 3. Retry count attempted (0 for terminal errors, 2 for exhausted retries)
57
+ 4. Which destinations already received the release (npm published? tag pushed? MCP Registry? GHCR?) — the partial state across destinations
34
58
 
35
- The user fixes locally and re-invokes, or runs the remaining steps manually. Publishes hard-fail with "version already exists" if replayed that's the signal the step already succeeded.
59
+ The user fixes locally and re-invokes. On re-invocation, already-published destinations hit the idempotent-success signal and skip naturallyno manual step-skipping required.
36
60
 
37
61
  ## Steps
38
62
 
@@ -4,7 +4,7 @@ description: >
4
4
  File a bug or feature request against @cyanheads/mcp-ts-core when you hit a framework issue. Use when a builder, utility, context method, or config behaves contrary to the documented API — not for server-specific application bugs.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.2"
7
+ version: "1.3"
8
8
  audience: external
9
9
  type: workflow
10
10
  ---
@@ -69,6 +69,7 @@ Structure the `--body` to match the template's form fields:
69
69
  gh issue create -R cyanheads/mcp-ts-core \
70
70
  --title "bug(scope): concise description" \
71
71
  --label "bug" \
72
+ --assignee "@me" \
72
73
  --body "$(cat <<'ISSUE'
73
74
  ### mcp-ts-core version
74
75
 
@@ -153,15 +154,26 @@ Format: `bug(<scope>): concise description`
153
154
 
154
155
  ### Labels
155
156
 
157
+ Every issue needs exactly one primary label. Stack secondary labels on top when applicable.
158
+
159
+ **Primary (required — pick one):**
160
+
156
161
  | Label | When |
157
162
  |:------|:-----|
158
163
  | `bug` | Something broken |
159
- | `regression` | Worked before, broken after update |
160
- | `types` | TypeScript type issue |
161
- | `docs` | Documentation is wrong or misleading |
162
- | `enhancement` | Feature request or improvement (not a bug) |
164
+ | `enhancement` | Feature request or improvement |
165
+ | `documentation` | Documentation is wrong, missing, or misleading |
166
+
167
+ **Secondary (optional stack on top of primary):**
168
+
169
+ | Label | When |
170
+ |:------|:-----|
171
+ | `regression` | Worked before, broken after an update |
172
+ | `performance` | Memory, CPU, latency, or resource usage |
173
+ | `security` | Vulnerability, CVE, or hardening work |
174
+ | `breaking-change` | Fix/feature will break public API; requires a major bump |
163
175
 
164
- Combine labels: `--label "bug" --label "types"`.
176
+ Combine labels: `--label "bug" --label "regression"`.
165
177
 
166
178
  ### Attaching logs or stack traces
167
179
 
@@ -174,6 +186,7 @@ bun run dev:stdio 2>&1 | head -100 > /tmp/mcp-error.log
174
186
  gh issue create -R cyanheads/mcp-ts-core \
175
187
  --title "bug(transport): stdio crashes on large payload" \
176
188
  --label "bug" \
189
+ --assignee "@me" \
177
190
  --body-file /tmp/mcp-error.log
178
191
 
179
192
  # Or as a comment on an existing issue
@@ -196,6 +209,7 @@ Template below demonstrates the richer structure. Omit sections you don't need
196
209
  gh issue create -R cyanheads/mcp-ts-core \
197
210
  --title "feat(scope): concise description" \
198
211
  --label "enhancement" \
212
+ --assignee "@me" \
199
213
  --body "$(cat <<'ISSUE'
200
214
  Concrete statement of what's currently missing or broken in the framework. Name the specific builder, utility, context method, or config field. Two or three sentences — the reader should know the gap before the end of the paragraph.
201
215
 
@@ -4,7 +4,7 @@ description: >
4
4
  File a bug or feature request against this MCP server's own repo. Use for server-specific issues — tool logic, service integrations, config problems, or domain bugs that aren't caused by the framework.
5
5
  metadata:
6
6
  author: cyanheads
7
- version: "1.2"
7
+ version: "1.3"
8
8
  audience: external
9
9
  type: workflow
10
10
  ---
@@ -78,6 +78,7 @@ Structure the `--body` to match the template's form fields:
78
78
  gh issue create \
79
79
  --title "bug(tool_name): concise description" \
80
80
  --label "bug" \
81
+ --assignee "@me" \
81
82
  --body "$(cat <<'ISSUE'
82
83
  ### Server version
83
84
 
@@ -139,16 +140,36 @@ Examples:
139
140
 
140
141
  ### Labels
141
142
 
143
+ Every issue needs exactly one primary label. Stack secondary labels on top when applicable.
144
+
145
+ **Primary (required — pick one):**
146
+
142
147
  | Label | When |
143
148
  |:------|:-----|
144
149
  | `bug` | Something broken |
145
150
  | `enhancement` | New feature or improvement |
146
- | `docs` | Documentation issue |
147
- | `config` | Configuration or environment issue |
151
+ | `documentation` | Documentation is wrong, missing, or misleading |
152
+
153
+ **Secondary (optional — stack on top of primary):**
154
+
155
+ | Label | When |
156
+ |:------|:-----|
148
157
  | `regression` | Worked before, broken after a change |
158
+ | `performance` | Memory, CPU, latency, or resource usage |
159
+ | `security` | Vulnerability, CVE, or hardening work |
160
+ | `breaking-change` | Change will break public API; requires a major bump |
149
161
 
150
162
  Combine labels: `--label "bug" --label "regression"`.
151
163
 
164
+ Secondary labels are not GitHub defaults — if `gh issue create --label "regression"` fails with `label not found`, create it once:
165
+
166
+ ```bash
167
+ gh label create regression --color e99695 --description "Worked before, broken after a change"
168
+ gh label create performance --color 5319e7 --description "Memory, CPU, latency, or resource usage"
169
+ gh label create security --color b60205 --description "Vulnerability, CVE, or hardening work"
170
+ gh label create breaking-change --color d93f0b --description "Change will break public API; requires a major bump"
171
+ ```
172
+
152
173
  ### Attaching logs or large output
153
174
 
154
175
  ```bash
@@ -158,6 +179,7 @@ bun run dev:stdio 2>&1 | head -200 > /tmp/server-error.log
158
179
  gh issue create \
159
180
  --title "bug(ingest): crashes on large payload" \
160
181
  --label "bug" \
182
+ --assignee "@me" \
161
183
  --body-file /tmp/server-error.log
162
184
 
163
185
  # Or as a comment on an existing issue
@@ -180,6 +202,7 @@ Template below demonstrates the richer structure. Omit sections you don't need
180
202
  gh issue create \
181
203
  --title "feat(scope): concise description" \
182
204
  --label "enhancement" \
205
+ --assignee "@me" \
183
206
  --body "$(cat <<'ISSUE'
184
207
  Concrete statement of what's currently missing or broken. Name the specific tool, service, resource, or domain area. Two or three sentences — the reader should know the gap before the end of the paragraph.
185
208
 
@@ -1,12 +1,21 @@
1
1
  name: Bug Report
2
2
  description: Report a bug in {{PACKAGE_NAME}}
3
3
  labels: ["bug"]
4
+ # assignees: ["your-github-username"] # uncomment to auto-assign new issues
4
5
  body:
5
6
  - type: markdown
6
7
  attributes:
7
8
  value: |
8
9
  **Do not include secrets, credentials, API keys, or tokens.** Redact sensitive values from env vars, headers, and logs before submitting. GitHub issues are public.
9
10
 
11
+ **Secondary labels.** `bug` is applied automatically — also add one or more of the following in the sidebar if they apply:
12
+ - `regression` — worked before, broken after a change
13
+ - `performance` — memory, CPU, latency, or resource usage
14
+ - `security` — vulnerability, CVE, or hardening work
15
+ - `breaking-change` — fix will break public API
16
+
17
+ If a label doesn't exist in this repo yet, create it once: `gh label create <name>`.
18
+
10
19
  - type: input
11
20
  id: version
12
21
  attributes:
@@ -1,7 +1,18 @@
1
1
  name: Feature Request
2
2
  description: Suggest a new feature or improvement for {{PACKAGE_NAME}}
3
3
  labels: ["enhancement"]
4
+ # assignees: ["your-github-username"] # uncomment to auto-assign new issues
4
5
  body:
6
+ - type: markdown
7
+ attributes:
8
+ value: |
9
+ **Secondary labels.** `enhancement` is applied automatically — also add one or more of the following in the sidebar if they apply:
10
+ - `performance` — improves memory, CPU, latency, or resource usage
11
+ - `security` — hardens the security posture
12
+ - `breaking-change` — will break public API; requires a major bump
13
+
14
+ If a label doesn't exist in this repo yet, create it once: `gh label create <name>`.
15
+
5
16
  - type: textarea
6
17
  id: use-case
7
18
  attributes: