Releases: adpena/fmtools
Releases · adpena/fmtools
SiliconRefinery v0.0.217
Changelog
All notable changes to SiliconRefinery will be documented in this file.
The format is based on Keep a Changelog.
Versions increment by patch (0.0.205 → 0.0.206 → 0.0.207 → 0.0.208 ...).
[0.0.217] - 2026-02-26
Final Toga chat layout and transcript UX hardening for release.
Changed
- Sidebar layout now uses a fixed-width, height-responsive frame that stays top-aligned with the status area and bottom-aligned with the transcript frame boundary across window resize events.
- Main pane layout now allocates extra width/height proportionally to non-sidebar content (status/transcript/compose region) while preserving a stable sidebar width.
- Transcript rendering now auto-scrolls to newest content with throttled/coalesced scheduling to remain responsive during high-frequency streaming updates.
Validation
uv run --project examples/toga_local_chat_app --directory examples/toga_local_chat_app ruff check src/silicon_refinery_chat/app.py- Startup smoke:
uv run silicon-refinery chat --python(process stayed alive for 10s, then cleanly terminated) - Async autoscroll stress probe: 120 rapid transcript updates coalesced into 6 scroll calls
[0.0.208] - 2026-02-26
Release and distribution hardening across GitHub, PyPI, and Homebrew.
Added
- Automated standalone chat-repo publisher workflow and script:
.github/workflows/publish-chat-repo.ymlscripts/publish_chat_repo.sh
- Standalone
silicon-refinery-chatsync template and documentation understandalone/silicon-refinery-chat/.
Changed
- Standardized naming across parent and child app surfaces:
- repo/package naming:
silicon-refinery/silicon-refinery-chat - app naming:
SiliconRefinery/SiliconRefineryChat
- repo/package naming:
- Toga chat app package path renamed to
silicon_refinery_chat. - Briefcase project metadata aligned with
SiliconRefineryChat. .gitignorehardened to prevent local data leakage from SQLite/chat-history artifacts (*.sqlite*,*.db*) and local publish workspaces.
Validation
uv run ruff check ...on touched Python filesuv run ruff format --check ...on touched Python filesuv run pytest tests/ -q(482 passed)- Standalone publisher idempotency verified against
adpena/silicon-refinery-chat
[0.0.207] - 2026-02-26
Release hardening focused on desktop-chat stability, no-gil fallback safety, and docs/packaging ergonomics.
Added
- CLI
chat --standard-gilflag to force stable standard-GIL runtime for GUI demos. - Explicit runtime selection + fallback probing in
silicon_refinery.clifor free-threaded vs standard-GIL execution.
Changed
silicon-refinery chatnow prefers free-threaded CPython (3.14tthen3.13t) and retries with an explicit standard-GIL interpreter (3.14then3.13) if no-gil launch fails.- Toga desktop app UI polish:
- responsive wrapped sidebar title
- bottom-pinned action controls
- unified transcript/compose typography and text insets
- wrapped status messaging on narrow widths
- status bar width alignment with transcript/compose columns on compact windows
- Disabled no-gil-unsafe Cocoa Enter-key delegate path in free-threaded mode to avoid Rubicon/ObjC callback segfaults.
Validation
uv run ruff check .uv run ruff format --check .uv run ty check silicon_refinery/uv run pytest(482 passed)uv run silicon-refinery smoke(passed)
[0.0.206] - 2026-02-26
Release-candidate hardening pass for launch readiness.
Added
- CLI
examplecommand to list and run standalone scripts underexamples/ - CLI
smokecommand to run full examples smoke suite with SDK preflight and per-script timeouts - CLI
notebookcommand to launchexamples/examples_notebook.pyvia marimo
Changed
audit_directory(...)now uses a bounded worker pool (max_concurrency) for better throughput under uneven per-file runtimes while preserving deterministic output orderingexamples/streaming_example.pynow prints token deltas correctly when SDK streaming returns cumulative text chunks- README and examples docs synchronized with current CLI/API surface and examples workflow
Validation
- Real Apple SDK smoke run completed across all top-level example scripts plus notebook startup
- Full quality gates:
ruff check,ruff format --check,ty check, and pytest suite all green
[0.0.205] - 2026-02-26
Initial public release. Consolidates all prior development into a clean baseline.
Core Framework
@local_extractdecorator — transforms functions into on-device structured extractorsstream_extractasync generator — concurrent streaming extraction with 4 history modes (clear, keep, hybrid, compact)Source >> Extract >> Sinkpipeline operators — composable async ETL pipelines@enhanced_debugdecorator — AI-powered crash analysis via Neural Engine- Polars
.local_llm.extract()namespace extension - DSPy
AppleFMLMprovider
Phase 4 Feature Expansion
silicon_refinery.cache— sqlite3 content-addressable extraction cache + cached decorator helperssilicon_refinery.protocols— typing.Protocol backend interfaces with swappable backend registry, wired through core extraction runtimesilicon_refinery.adapters— file/stdin/CSV/JSONL/iterable/trio adapters + chunking adaptersilicon_refinery._context— contextvars-based session scoping helperssilicon_refinery._threading— free-threading detection and synchronization primitivessilicon_refinery.scanner— mmap sliding-window scanner for large filessilicon_refinery.watcher— hot-folder watcher daemon with extraction convenience APIsilicon_refinery._jit— runtime diagnostics and performance counterssilicon_refinery.arrow_bridge— Arrow IPC file/buffer bridge + Polars conversion helperssilicon_refinery.functional— functional pipeline composition APIsilicon_refinery.auditor— on-device code auditor utilities
Phase 4 Hardening Pass
_context.session_scope(...)now uses the active backend registry (create_model/create_session) for full pluggable-backend parityline_split_scanner(...)now streams incrementally in batches instead of pre-buffering entire filesMMapScannernow guards UTF-8 boundary fixups to UTF-8 mode only and closes file descriptors safely ifmmapinitialization failscached_stream_extract(...)now supports both sync and async sourcessafe_model_cache()initialization is now race-safe under concurrent accessfunctionalpipeline steps now support async callable objects correctly and validate terminal-step orderingaudit_directory(...)now continues on per-file failures and parser handling is hardened for malformed model payloadswatcher.start(...)now awaits generic awaitables;process_folder(...)handlesmodifiedevents with mtime dedupeexamples/transcript_processing.pynow runs against a bundled sample transcript dataset by default (datasets/transcript_sample.json)
Toolchain
silicon-refineryCLI withsetup,doctor,lint,format,typecheck,test, andcheckcommands (Click-based)scripts/setup.sh— one-command development environment setupscripts/doctor.sh— system prerequisites verification (9 checks)uvfor package management with[tool.uv.sources]git dependency for Apple FM SDKrufflinting and formatting with comprehensive rule set (zero violations)tytype checker (zero diagnostics)
Testing
- 400+ mock-based tests (zero Apple Silicon required to run)
- Full coverage of core + Phase 4 modules via pytest + pytest-asyncio
Documentation
- Comprehensive README with API reference, tutorials, benchmarks, and architecture
- 9 use case examples with sample datasets
- GEMINI.md for AI-assisted development context
v0.0.216
Full Changelog: v0.0.215...v0.0.216