Files
BlackVortexAIandClaude Fable 5.1 95ace90041 Add BV Text writing assistance, preparation caches and the 1.4.4 hardening
Features: BV Text node with management-gated writing assistance (translate,
improve, undo, prompt profiles); reuse of prepared MODEL/CLIP state for Krea 2
and Anima LLLite consumers; Regional refactoring.

Security boundaries: one wall-clock budget per Remote LLM request enforced by
a socket-closing watchdog across connect, TLS handshake, headers, chunk framing
and body; writing assistance uses the profile's configured timeout; a shared
bounded JSON reader with route-specific limits on every JSON route; endpoint
binding negative tests for the assist path.

Release and packaging: SECURITY.md; bundled-library notices and a readable
bundle header; Registry scan replica as a hard test with a pinned count; a
packaged-file-set test; publish only from a validated push to main with
provenance checks, pinned comfy-cli, an input manifest and a byte-exact
comparison of the stored archive; npm audit and a whole js/ rebuild gate in
Validate; design references, brand sources and a type declaration excluded
from the package. README and changelog for 1.4.4.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-13 16:51:38 +02:00

19 lines
817 B
Python

import importlib.util
from pathlib import Path
import unittest
class TextNodeTests(unittest.TestCase):
def test_native_text_is_exact_and_requires_no_provider(self):
path = Path(__file__).parents[1] / "py/nodes/bv_text.py"
spec = importlib.util.spec_from_file_location("bv_text_test", path)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
node = module.NODE_CLASS_MAPPINGS["BV Text"]()
for text in ("", " ", "Grüße 👋\nsecond line\r\n", "{a|b} @@markup"):
self.assertEqual(node.output(text), (text,))
self.assertEqual(node.RETURN_TYPES, ("STRING",))
options = node.INPUT_TYPES()["required"]["text"][1]
self.assertTrue(options["multiline"])
self.assertFalse(options["dynamicPrompts"])