dflash-console 0.3.240__tar.gz → 0.3.241__tar.gz
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.
- {dflash_console-0.3.240 → dflash_console-0.3.241}/PKG-INFO +3 -3
- {dflash_console-0.3.240 → dflash_console-0.3.241}/README.md +2 -2
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/config.py +23 -5
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/version.py +1 -1
- {dflash_console-0.3.240 → dflash_console-0.3.241}/pyproject.toml +1 -1
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/index.html +2 -2
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/settings-live.js +5 -2
- {dflash_console-0.3.240 → dflash_console-0.3.241}/.gitignore +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/LICENSE +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/NOTICE.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/api/__init__.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/api/app.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/api/gateway.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/assets/dflash_console_logo.png +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/assets/dflash_console_logo_only.png +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/assets/dflash_console_logo_only2.png +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/assets/dflash_console_logo_only_clear.png +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/assets/dflash_txt_logo.png +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/config.example.json +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/__init__.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/api_access_log.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/api_catalog.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/api_introspection.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/api_providers.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/auto_register.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/catalog_load.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/chat_proxy.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/chat_queue.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/chat_ready.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/chat_vision.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/client_identity.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/components_hub.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/dflash_generation.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/diagnostics_bundle.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/display_names.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/embedding_server.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/engine_state.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/freetoken_runtime_install.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/fs_browse.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/fs_reveal.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gateway_access_log.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gateway_routing.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gguf_meta.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gpu_devices.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gpu_policy.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gpu_process_memory_windows.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gpu_processes.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/gpu_relief.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hardware_apply.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hardware_info.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_catalog_cache.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_catalog_draft.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_catalog_index.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_catalog_recommend.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_engines.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_install.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_local_match.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/hf_model_fit.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/huggingface.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/inference_stats.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/library_import.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/load_progress.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/local_models.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/log_utils.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/memory_guardrails.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/model_discovery.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/model_paths.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/model_presets.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/model_runtime_policy.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/model_stack.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/net_listeners.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/node_connect.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/ocr_setup.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/remote_nodes.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtime.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtime_install_job.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtime_recommendations.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/__init__.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/base.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/contention.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/faster_whisper.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/freetoken.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/noop.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/ollama.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/piper.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/registry.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/stt.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/transformers_hf.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/vibevoice.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/runtimes/vllm.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/server_boot.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/setup.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/stack_match.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/status_report.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/support_journal.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/system_stats.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/transformers_runtime_install.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/vision_setup.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/core/vllm_runtime_install.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/__init__.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/__main__.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/cli.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/commands.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/http.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/render.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/resolve.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/dflash_cli/server_takeover.py +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/AGENT-PROMPT-CLIENT-IDENTITY.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/AGENT-PROMPT-DFLASH-TRANSLATION-PERF-AI-TOOLS.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/AGENT-PROMPT-TRANSLATEGEMMA-AI-TOOLS.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ARCHITECTURE.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/BUG-REPORTS.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/CLI.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/CLIENT-IDENTITY.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/CURSOR.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/GOING-PUBLIC.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/LICENSING.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/LINUX-CLI.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/MULTI-MODAL-AGENT-PROMPT.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/MULTI-MODAL-RUNTIME-PLAN.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/PRODUCTION.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/RELEASING.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/STT-ENGINE-DECISION.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/USER-GUIDE.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/announcements/public-preview-v0.3.103.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/announcements/public-preview-v0.3.122.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/announcements/public-preview.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/automatic-updates.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/plans/shared-speak-stt-service.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.103.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.106.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.117.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.118.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.119.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.120.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.121.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.122.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.123.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.128.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.129.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.132.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.133.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/release-notes-0.3.208.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/README.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/devices-view.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/model-search.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/models-view.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/nodes-v1-plan.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-appearance.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-chat.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-developer.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-general.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-hardware.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-integrations.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-lm-link.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-model-defaults.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-runtime.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/docs/ui/settings-runtimes.md +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/app-functional.html +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/css/dflash-console.css +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/css/dflash-console.css.bak-density +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/css/dflash-shell.css +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/css/dflash-shell.css.bak-density +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/css/studio.css +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/about-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/app-settings-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/app.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/bug-report-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/chat-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/component-install-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/console-api.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/dashboard.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/desktop-shell.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/dflash-console-ui.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/docs-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/download-queue.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/downloads-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/library-browse-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/library-scan-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/library-type-options.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/log-format.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/model-card.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/model-catalog-groups.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/model-search-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/models-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/nodes-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/runtime-recommendations.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/runtime-steppers.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/select-theme.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/server-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/server-reload-watch.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/settings-live.js.api-providers-bak +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/settings-live.js.pre-api-merge-bak +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/setup-wizard-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/speak-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/stack-wizard.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/status-feed.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/sysbar-live.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/table-column-resize.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/ui-layout-prefs.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/vendor/marked.min.js +0 -0
- {dflash_console-0.3.240 → dflash_console-0.3.241}/static/vendor/purify.min.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: dflash-console
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.241
|
|
4
4
|
Summary: Local control panel and terminal CLI for DFlash stacks and local model runtimes
|
|
5
5
|
Project-URL: Homepage, https://github.com/ilan4ever/Dflash-Console
|
|
6
6
|
Project-URL: Repository, https://github.com/ilan4ever/Dflash-Console
|
|
@@ -674,7 +674,7 @@ from one UI, then talk to them through a single OpenAI-compatible port.
|
|
|
674
674
|
> supported platform**; Linux and macOS are not supported or tested (see
|
|
675
675
|
> [Platform support](#platform-support) below).
|
|
676
676
|
|
|
677
|
-
**Developer:** ILAN AVIV · **UI:** [http://127.0.0.1:8900/](http://127.0.0.1:8900/) · **Version:** v0.3.
|
|
677
|
+
**Developer:** ILAN AVIV · **UI:** [http://127.0.0.1:8900/](http://127.0.0.1:8900/) · **Version:** v0.3.241
|
|
678
678
|
|
|
679
679
|
## Download (Windows)
|
|
680
680
|
|
|
@@ -753,7 +753,7 @@ Typical first session:
|
|
|
753
753
|
3. For a DFlash GGUF, right-click and **Find and attach draft** if you want speculative decoding.
|
|
754
754
|
4. Chat in the **Playground**, or point any OpenAI client at `http://127.0.0.1:8001/v1` with optional `X-DFlash-Client: YourApp` so **Engines** shows who is using each model.
|
|
755
755
|
|
|
756
|
-
### Recent improvements (v0.3.
|
|
756
|
+
### Recent improvements (v0.3.241)
|
|
757
757
|
|
|
758
758
|
- **Engine standby** — Running toggle gates load/chat until you arm the pipeline
|
|
759
759
|
- **External GPU cards** — OneVoice, LM Studio, and other apps on the GPU; compact mobile layout; loading state expires when models are ready
|
|
@@ -8,7 +8,7 @@ from one UI, then talk to them through a single OpenAI-compatible port.
|
|
|
8
8
|
> supported platform**; Linux and macOS are not supported or tested (see
|
|
9
9
|
> [Platform support](#platform-support) below).
|
|
10
10
|
|
|
11
|
-
**Developer:** ILAN AVIV · **UI:** [http://127.0.0.1:8900/](http://127.0.0.1:8900/) · **Version:** v0.3.
|
|
11
|
+
**Developer:** ILAN AVIV · **UI:** [http://127.0.0.1:8900/](http://127.0.0.1:8900/) · **Version:** v0.3.241
|
|
12
12
|
|
|
13
13
|
## Download (Windows)
|
|
14
14
|
|
|
@@ -87,7 +87,7 @@ Typical first session:
|
|
|
87
87
|
3. For a DFlash GGUF, right-click and **Find and attach draft** if you want speculative decoding.
|
|
88
88
|
4. Chat in the **Playground**, or point any OpenAI client at `http://127.0.0.1:8001/v1` with optional `X-DFlash-Client: YourApp` so **Engines** shows who is using each model.
|
|
89
89
|
|
|
90
|
-
### Recent improvements (v0.3.
|
|
90
|
+
### Recent improvements (v0.3.241)
|
|
91
91
|
|
|
92
92
|
- **Engine standby** — Running toggle gates load/chat until you arm the pipeline
|
|
93
93
|
- **External GPU cards** — OneVoice, LM Studio, and other apps on the GPU; compact mobile layout; loading state expires when models are ready
|
|
@@ -689,7 +689,7 @@ def suggest_runtime_port(*, cfg: dict[str, Any] | None = None) -> int:
|
|
|
689
689
|
return candidate
|
|
690
690
|
|
|
691
691
|
|
|
692
|
-
def save_config(cfg: dict[str, Any]) -> None:
|
|
692
|
+
def save_config(cfg: dict[str, Any]) -> None:
|
|
693
693
|
validate_config(cfg)
|
|
694
694
|
if os.environ.get('PYTEST_CURRENT_TEST'):
|
|
695
695
|
default_cfg = (ROOT / 'config.json').resolve()
|
|
@@ -717,14 +717,32 @@ def save_config(cfg: dict[str, Any]) -> None:
|
|
|
717
717
|
handle.write(payload)
|
|
718
718
|
handle.flush()
|
|
719
719
|
os.fsync(handle.fileno())
|
|
720
|
-
|
|
721
|
-
temp_name = ''
|
|
720
|
+
_replace_config_file(temp_name)
|
|
721
|
+
temp_name = ''
|
|
722
722
|
finally:
|
|
723
723
|
if temp_name:
|
|
724
724
|
try:
|
|
725
725
|
os.unlink(temp_name)
|
|
726
|
-
except OSError:
|
|
727
|
-
pass
|
|
726
|
+
except OSError:
|
|
727
|
+
pass
|
|
728
|
+
|
|
729
|
+
|
|
730
|
+
def _replace_config_file(temp_name: str) -> None:
|
|
731
|
+
"""Atomically replace config, tolerating short Windows file locks.
|
|
732
|
+
|
|
733
|
+
Electron, antivirus, and file-indexing readers can briefly deny the
|
|
734
|
+
destination during an otherwise valid save. Keep the atomic replacement,
|
|
735
|
+
but retry the transient Windows failure before surfacing HTTP 500.
|
|
736
|
+
"""
|
|
737
|
+
attempts = 6 if os.name == 'nt' else 1
|
|
738
|
+
for attempt in range(attempts):
|
|
739
|
+
try:
|
|
740
|
+
os.replace(temp_name, CONFIG_PATH)
|
|
741
|
+
return
|
|
742
|
+
except PermissionError:
|
|
743
|
+
if attempt >= attempts - 1:
|
|
744
|
+
raise
|
|
745
|
+
time.sleep(0.1 * (attempt + 1))
|
|
728
746
|
|
|
729
747
|
|
|
730
748
|
@contextmanager
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "dflash-console"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.241"
|
|
8
8
|
description = "Local control panel and terminal CLI for DFlash stacks and local model runtimes"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<div class="df-brand-text">
|
|
18
18
|
<div class="df-brand-title-row">
|
|
19
19
|
<span class="df-brand-title">DFlash Console</span>
|
|
20
|
-
<span class="df-app-version" id="dfAppVersion" title="DFlash Console version">v0.3.
|
|
20
|
+
<span class="df-app-version" id="dfAppVersion" title="DFlash Console version">v0.3.241</span>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
23
|
</div>
|
|
@@ -533,7 +533,7 @@ try {
|
|
|
533
533
|
</article>
|
|
534
534
|
<article class="df-about-meta-card">
|
|
535
535
|
<span class="df-about-meta-label">Version</span>
|
|
536
|
-
<strong id="dfAboutVersion">v0.3.
|
|
536
|
+
<strong id="dfAboutVersion">v0.3.241</strong>
|
|
537
537
|
<span>Current Console release</span>
|
|
538
538
|
</article>
|
|
539
539
|
<article class="df-about-meta-card">
|
|
@@ -2277,7 +2277,7 @@
|
|
|
2277
2277
|
</div>
|
|
2278
2278
|
<div class="lm-field">
|
|
2279
2279
|
<label for="apiProviderWizardApiKey">API key</label>
|
|
2280
|
-
<input type="password" class="lm-input" id="apiProviderWizardApiKey" value="" placeholder="${escapeHtml(apiProviderWizard.api_key_set ? (apiProviderWizard.api_key_preview || '•••• saved') : 'sk-…')}" autocomplete="off" spellcheck="false">
|
|
2280
|
+
<input type="password" class="lm-input" id="apiProviderWizardApiKey" value="${escapeHtml(apiProviderWizard.typedKey || '')}" placeholder="${escapeHtml(apiProviderWizard.api_key_set ? (apiProviderWizard.api_key_preview || '•••• saved') : 'sk-…')}" autocomplete="off" spellcheck="false">
|
|
2281
2281
|
</div>
|
|
2282
2282
|
</div>
|
|
2283
2283
|
${apiProviderWizard.isCustom ? `
|
|
@@ -2315,7 +2315,10 @@
|
|
|
2315
2315
|
if (baseEl) apiProviderWizard.base_url = String(baseEl.value || '').trim();
|
|
2316
2316
|
if (keyEl) {
|
|
2317
2317
|
const typed = String(keyEl.value || '');
|
|
2318
|
-
|
|
2318
|
+
// The wizard re-renders after Test & fetch models and the password input
|
|
2319
|
+
// is rebuilt. Keep a previously captured key so a following Save still
|
|
2320
|
+
// sends api_key instead of silently dropping it.
|
|
2321
|
+
if (typed) apiProviderWizard.typedKey = typed;
|
|
2319
2322
|
apiProviderWizard.keyDirty = typed.length > 0 || apiProviderWizard.keyDirty;
|
|
2320
2323
|
}
|
|
2321
2324
|
if (enabledEl) apiProviderWizard.enabled = !!enabledEl.checked;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dflash_console-0.3.240 → dflash_console-0.3.241}/docs/AGENT-PROMPT-TRANSLATEGEMMA-AI-TOOLS.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dflash_console-0.3.240 → dflash_console-0.3.241}/docs/announcements/public-preview-v0.3.103.md
RENAMED
|
File without changes
|
{dflash_console-0.3.240 → dflash_console-0.3.241}/docs/announcements/public-preview-v0.3.122.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/settings-live.js.api-providers-bak
RENAMED
|
File without changes
|
{dflash_console-0.3.240 → dflash_console-0.3.241}/static/js/settings-live.js.pre-api-merge-bak
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|