flappa-doormal 2.11.0 → 2.11.1
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.
- package/AGENTS.md +2 -0
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -437,6 +437,8 @@ bunx biome lint .
|
|
|
437
437
|
|
|
438
438
|
14. **Accidental File Overwrites**: Be extremely careful when using tools like `replace_file_content` with large ranges. Verify file integrity frequently (e.g., `git diff`) to catch accidental deletions of existing code or tests. Merging new tests into existing files is a high-risk operation for AI agents.
|
|
439
439
|
|
|
440
|
+
15. **Invisible Unicode Marks Break Regex Anchors**: Arabic text often contains invisible bidirectional formatting marks like Left-to-Right Mark (`U+200E`), Right-to-Left Mark (`U+200F`), or Arabic Letter Mark (`U+061C`). These appear at line starts after `\n` but before visible characters, breaking `^` anchored patterns. Solution: include an optional zero-width character class prefix in line-start patterns: `^[\u200E\u200F\u061C\u200B\uFEFF]*(?:pattern)`. The library now handles this automatically in `buildLineStartsWithRegexSource` and `buildLineStartsAfterRegexSource`.
|
|
441
|
+
|
|
440
442
|
### Process Template (Multi-agent design review, TDD-first)
|
|
441
443
|
|
|
442
444
|
If you want to repeat the “write a plan → get multiple AI critiques → synthesize → update plan → implement TDD-first” workflow, use:
|
package/dist/index.mjs
CHANGED
|
@@ -2077,7 +2077,7 @@ const buildLineStartsAfterRegexSource = (patterns, fuzzy, capturePrefix) => {
|
|
|
2077
2077
|
const union = processed.map((p) => p.pattern).join("|");
|
|
2078
2078
|
return {
|
|
2079
2079
|
captureNames: processed.flatMap((p) => p.captureNames),
|
|
2080
|
-
regex: `^(?:${union})${capturePrefix ? `(?<${capturePrefix}__content>.*)` : "(.*)"}`
|
|
2080
|
+
regex: `^[\\u200E\\u200F\\u061C\\u200B\\uFEFF]*(?:${union})${capturePrefix ? `(?<${capturePrefix}__content>.*)` : "(.*)"}`
|
|
2081
2081
|
};
|
|
2082
2082
|
};
|
|
2083
2083
|
const buildLineStartsWithRegexSource = (patterns, fuzzy, capturePrefix) => {
|
|
@@ -2085,7 +2085,7 @@ const buildLineStartsWithRegexSource = (patterns, fuzzy, capturePrefix) => {
|
|
|
2085
2085
|
const union = processed.map((p) => p.pattern).join("|");
|
|
2086
2086
|
return {
|
|
2087
2087
|
captureNames: processed.flatMap((p) => p.captureNames),
|
|
2088
|
-
regex: `^(?:${union})`
|
|
2088
|
+
regex: `^[\\u200E\\u200F\\u061C\\u200B\\uFEFF]*(?:${union})`
|
|
2089
2089
|
};
|
|
2090
2090
|
};
|
|
2091
2091
|
const buildLineEndsWithRegexSource = (patterns, fuzzy, capturePrefix) => {
|