From defca236ec7796bfcc018c24eaf8057b02a98897 Mon Sep 17 00:00:00 2001 From: TrueNine Date: Tue, 17 Feb 2026 01:20:36 +0800 Subject: [PATCH 1/2] feat(issues): add bug report and feature request templates Introduced new issue templates for bug reports and feature requests to streamline user feedback and enhance issue tracking. The bug report template includes detailed fields for OS, version, and reproduction steps, while the feature request template prompts users to describe their suggestions and use cases. Also updated configuration to disable blank issues. --- .github/ISSUE_TEMPLATE/bug_report.yml | 93 ++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 2 + .github/ISSUE_TEMPLATE/feature_request.yml | 34 ++++++++ 3 files changed, 129 insertions(+) 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 diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..7be93e8b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,93 @@ +name: Bug Report +description: File a bug report for memory-sync (tnmsc CLI / GUI) +labels: ["pending-triage"] +body: + - type: markdown + attributes: + value: | + ## Before you open this issue + + **Please ensure you're using the latest version of memory-sync.** Run `tnmsc --version` (CLI) or check the GUI about screen. + + **Check if your issue is already known.** [Search existing issues](https://github.com/TrueNine/memory-sync/issues?q=is%3Aissue) before opening a new one. If found, subscribe and comment there for updates. + + Thank you for helping keep the issue tracker organized. + + --- + - type: checkboxes + id: confirm + attributes: + label: Before opening, please confirm + options: + - label: I have searched for duplicate or closed issues + required: true + - type: input + id: os + attributes: + label: Operating System + description: Your OS and version + placeholder: "e.g., Windows 11, macOS 14.2, Ubuntu 22.04" + validations: + required: true + - type: input + id: version + attributes: + label: memory-sync version + description: CLI run `tnmsc --version`; GUI check About + placeholder: "e.g., 2026.10125.0" + validations: + required: true + - type: dropdown + id: context + attributes: + label: Where did the bug occur? + options: + - CLI (tnmsc) + - GUI (Tauri app) + - Both / unsure + validations: + required: true + - type: input + id: plugin-context + attributes: + label: Relevant plugin (if applicable) + description: Input/Output plugin involved, e.g. cursor-output, kiro-output, global-memory-input + placeholder: "e.g., cursor-output, global-memory-input" + validations: + required: false + - type: textarea + id: bug-description + attributes: + label: Bug Description + description: Describe the issue clearly + placeholder: "Which feature you used, intended task, and how the bug affected your workflow." + validations: + required: true + - type: textarea + id: reproduction-steps + attributes: + label: Steps to Reproduce + description: Steps to reproduce the issue + placeholder: | + 1. Run command or open GUI with [specific details] + 2. Use config / plugin [be specific] + 3. Observe [describe the error or unexpected behavior] + Include config paths, .tnmsc.json snippets, or CLI args if relevant. + validations: + required: true + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: What you expected to happen + placeholder: "Describe the intended outcome or behavior." + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Logs, config, screenshots, workarounds + placeholder: "Error messages, .tnmsc.json (redact secrets), or environment details." + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..8005e322 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,2 @@ +blank_issues_enabled: false +contact_links: [] diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..1b5d940e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,34 @@ +name: Feature Request +description: Suggest an idea for memory-sync (tnmsc CLI / GUI) +labels: ["pending-triage"] +body: + - type: markdown + attributes: + value: | + Before submitting, please [search and confirm](https://github.com/TrueNine/memory-sync/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) that the idea does not yet exist. Duplicate requests may be closed. + + --- + - type: textarea + id: feature-description + attributes: + label: Feature Description + description: What problem does this solve and how should it work? + placeholder: "Describe the challenge and your suggested feature (e.g., new output plugin, config option, CLI flag)." + validations: + required: true + - type: textarea + id: use-case + attributes: + label: Use Case + description: How would you use this feature? + placeholder: "Concrete examples: which target (Cursor/Kiro/Warp/…), which input source, typical workflow." + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: Any other relevant details + placeholder: "Screenshots, config examples, or technical details that might help." + validations: + required: false From 09d31001b7df9ea0ff3be4177324b54fb063bf83 Mon Sep 17 00:00:00 2001 From: TrueNine Date: Tue, 17 Feb 2026 01:37:16 +0800 Subject: [PATCH 2/2] fix(md-compiler): exclude JS reserved words from parseMdx property test arb Co-authored-by: Cursor --- .../src/compiler/parser.property.test.ts | 50 ++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/packages/md-compiler/src/compiler/parser.property.test.ts b/packages/md-compiler/src/compiler/parser.property.test.ts index 4e0ce60d..0f097386 100644 --- a/packages/md-compiler/src/compiler/parser.property.test.ts +++ b/packages/md-compiler/src/compiler/parser.property.test.ts @@ -25,9 +25,55 @@ describe('parseMdx property tests', () => { fc.stringMatching(/^[A-Za-z0-9 ,.!?]{1,60}$/) ) - /** MDX expression strings like `{variable}` or `{1 + 2}` */ + /** JS reserved words that would make acorn throw when used in MDX expressions like {do} */ + const jsReservedInExpression = new Set([ + 'do', + 'if', + 'in', + 'for', + 'let', + 'new', + 'try', + 'var', + 'case', + 'else', + 'enum', + 'null', + 'break', + 'catch', + 'class', + 'const', + 'super', + 'throw', + 'while', + 'with', + 'yield', + 'delete', + 'export', + 'import', + 'return', + 'typeof', + 'default', + 'finally', + 'extends', + 'switch', + 'function', + 'continue', + 'debugger', + 'interface', + 'package', + 'private', + 'protected', + 'public', + 'static', + 'implements', + 'instanceof' + ]) + /** MDX expression strings like `{variable}` or `{1 + 2}` (exclude reserved words so acorn does not throw) */ const mdxExpressionArb = fc.oneof( - fc.stringMatching(/^[a-z][a-zA-Z0-9]{0,9}$/).map(v => `{${v}}`), + fc.stringMatching(/^[a-z][a-zA-Z0-9]{0,9}$/) + .filter(v => !jsReservedInExpression.has(v)) + .map(v => `{${v}}`), fc.integer({min: -100, max: 100}).map(n => `{${n}}`), fc.constant('{true}'), fc.constant('{false}'),