Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
93 changes: 93 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -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
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
blank_issues_enabled: false
contact_links: []
34 changes: 34 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -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
50 changes: 48 additions & 2 deletions packages/md-compiler/src/compiler/parser.property.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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}'),
Expand Down
Loading