Commit History
-
fix: patch DynamicCache.seen_tokens for MiniCPM3-4B compatibilityβ
GitHub Actions +1: Claude Sonnet 4.6transformers >= 4.47 removed DynamicCache.seen_tokens in favour of get_seq_length(). MiniCPM3-4B's trust_remote_code modeling file still calls .seen_tokens, causing AttributeError at generation time. Adds the attribute back via setattr() at module import so the model's generated code keeps working without modifying the model repo. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>c11a7a4 -
feat: UI theme + voice fix + ENV.md + improvements roadmapβ
GitHub Actions- hearthnet/ui/app.py: apply hearthnet_theme (purple/dark), custom CSS gradient header, animated status dot, badges, button hover animations - hearthnet/ui/tabs/voice.py: fix asyncio pattern (_run helper with ThreadPoolExecutor for Gradio's running event loop), better error messages with install hints, styled HTML section headers - docs/ENV.md: complete reference for all env vars, secrets, models, prize track mapping, size chart, recommended configs - docs/reports/IMPROVEMENTS.md: full master list β C/W done, P0/P1/P2/P3 open tasks with code sketches and file:line references84e964e
-
feat(rag): docs ingestion + UI/bus enhancements (P3 continuation)β
GitHub Actions- Expand app.py _seed_corpus() to ingest main docs/ folder (CAPABILITY_CONTRACT, GLOSSARY, M01-M13, X01-X04, OVERVIEW, ARCHITECTURE, roadmap, etc.) - Content-addressed deduplication via BLAKE3 (automatic no-op on re-ingest) - Integrated with Ask tab RAG query + routing traces - Enhanced bus capability.py with trust levels and request context - Improved RAG service ingestion flow with doc_cid tracking - Updated UI ask.py and mesh.py tabs for better query visualization - Settings tab shows active corpus and document count - Updated tasks.md with completion statusf08047d
-
fix: llm.chat IndexError (lazy Ollama warm + safe _resolve_backend fallback) + chat self-send returns direct
GitHub Actions66a1a95 -
fix: Python 3.10 compat β replace datetime.UTC with timezone.utc shim
GitHub Actions481b78e
-
Add all-to-all internet mesh over relay hub (P1-P3) + user-story screenshot proof
GitHub Actions8f53c4c -
fix: complete easter egg rewrite using Gradio 6 js= APIβ
GitHub ActionsRoot cause: Gradio's position:fixed was trapped inside stacking context. Scripts in head= were blocked by CSP. CSS in gr.HTML() was blocked too. Solution: 1. Use gr.Blocks(js=...) β Gradio 6 native JS injection, runs on page load, NOT blocked by CSP because Gradio bundles it with its own scripts 2. Create ticker + modal in JS, append directly to document.body β escapes ALL Gradio containers/stacking contexts 3. CSS via gr.Blocks(css=...) β Gradio injects this as proper stylesheet Also: re-applied Python 3.10 UTC fixes (reverted again by formatter)5347513 -
fix: CSS via gr.Blocks(css=) + serve webagent as static filesβ
GitHub ActionsProblem 1 - Ticker was empty (CSP blocked inline <style> in gr.HTML()): - Moved CSS out of gr.HTML() into gr.Blocks(css=...) parameter - Gradio injects this as a proper stylesheet, bypassing CSP - Doubled ticker items for seamless infinite scroll loop Problem 2 - Agent modal showed blank (iframe pointed to localhost:8099): - Mounted webagent/ directory as FastAPI static files at /webagent/ - Changed iframe src from http://127.0.0.1:8099/index.html -> /webagent/index.html - Now works on both local and HF Space (same origin) Keyboard shortcuts: e = toggle news ticker at top of page a = open/close browser agent popup modalf620ad7 -
feat: easter egg enhancements - ticker at top + agent modal on 'a' keyβ
GitHub ActionsChanges: 1. Moved ticker from bottom to top of page (now slides down from top) - Changed from 'bottom: -100px' to 'top: -100px' - Updated animations and shadows accordingly 2. Added agent modal popup (press 'a' to open/close) - Displays browser agent at http://127.0.0.1:8099/index.html in modal - Semi-transparent overlay with fade animation - Close button (Γ) in top-right corner - Click overlay to close or press 'a' again - Beautiful rounded modal with shadow Keyboard controls: - Press 'e': toggle β‘ LIVE ticker at top - Press 'a': toggle agent browser modal - Guards against INPUT/TEXTAREA to prevent triggering while typing Tests: All passing β30c2a3b -
fix: re-apply Python 3.10 UTC fixes across all 10 filesβ
GitHub ActionsThe UTC import fixes were reverted (likely by formatter or manual revert). Re-applied the fix to all files to use timezone.utc instead of UTC: - hearthnet/services/chat/service.py - hearthnet/events/snapshot.py - hearthnet/events/log.py - hearthnet/identity/manifest.py - hearthnet/ui/onboarding.py - hearthnet/transport/server.py - hearthnet/transport/client.py - hearthnet/services/marketplace/views.py - hearthnet/services/marketplace/service.py - hearthnet/services/marketplace/post.py All files now use: from datetime import datetime, timezone; UTC = timezone.utc This is compatible with Python 3.10 (HF Space requirement). Tests: - test_python310_compatibility.py: PASSED β - test_easter_egg.py: PASSED βa190f73 -
test: add comprehensive easter egg testsβ
GitHub ActionsAdded tests to verify easter egg ticker is properly implemented: - Script injected via Blocks head parameter (executes in browser) - HTML/CSS in gr.HTML() component (no script tags) - Event listener checks for 'e' key (both lowercase and uppercase) - Guards against INPUT/TEXTAREA to prevent triggering while typing - Retry logic for DOM element initialization - Ticker toggles .active class for animation Also fixed: removed extra triple-quote causing syntax error in app.pycbff2cf -
Fix: Ruff linting issues - SIM/E402/F401 violationsβ
GitHub Actions- SIM105: Replace try-except-pass with contextlib.suppress (5 fixes) - SIM102/SIM117: Combine nested if/with statements (4 fixes) - E402: Reorganize imports to top of files, remove UTC = UTC assignments - F401: Remove unused Diff and RegistryEvent imports - Fixed docstring placement in identity/__init__.pyf6ead22 -
fix: re-apply Python 3.10 UTC compatibility (was reverted by formatter)β
GitHub ActionsThe formatter reverted our UTC β timezone.utc changes. Re-applied the fix across all 10 files to support Python 3.10 on HF Space. Files fixed: - hearthnet/services/chat/service.py - hearthnet/events/snapshot.py - hearthnet/events/log.py - hearthnet/identity/manifest.py - hearthnet/ui/onboarding.py - hearthnet/transport/server.py - hearthnet/transport/client.py - hearthnet/services/marketplace/views.py - hearthnet/services/marketplace/service.py - hearthnet/services/marketplace/post.py6affa2f -
feat: WebLLM browser agent with PeerJS mesh, HybridRAG, news signals, and easter-egg tickerβ
GitHub Actions- webagent/: complete browser-only app (no backend) - WebLLM ReAct agent with tool-calling (search, scrape, summarize, remember, schedule, RAG) - PeerJS over-internet mesh (anchor + roster gossip + reclaim failover) - News RSS ingest with CORS proxy throttling, signal scoring (war/cyber/space/aviation/earth/finance), custom alerts - HybridRAG integration (localStorage-persisted BM25+phonetic+Levenshtein+n-gram+sentence-window) - Tab UI (Agent/News/Mesh) with model selector, chat, mesh peers, signal sharing - Press 'e' to toggle live news ticker overlay (easter-egg) - Python Phase 1 fixes (unstaged from prior session): - hearthnet/services/llm/backends/hf_local.py: local Ollama/llama.cpp backend - hearthnet/services/chat/service.py: chat routing - hearthnet/services/demo.py: demo service - app.py: Gradio web UI - hearthnet/node.py: node initialization - hearthnet/ui/tabs/ask.py: ask tab UI Screenshots: 37/38 passed (1 pre-existing rag-trace failure)78cc96f -
chore: remove temp patch scripts
GitHub Actionse9b3000
-
Build: Add Android APK, PWA, and deployment guideβ
GitHub Actions- β Android APK built (3.56 MB debug build) - β Progressive Web App fully functional with Service Worker - β Updated config.xml with Android target SDK 36 - β Comprehensive deployment guide (ANDROID_DEPLOYMENT_GUIDE.md) - β README updated with download links - β All PWA files: manifest.json, sw.js, pwa.py - β Test coverage for spec compliance (M01-M32, X01-X09) Build artifacts linked in HF Space: - Web: https://huggingface.co/spaces/build-small-hackathon/HearthNet - APK: platforms/android/app/build/outputs/apk/debug/app-debug.apk - Docker: Dockerfile for container deployment - Guides: ANDROID_DEPLOYMENT_GUIDE.md, build/android/CORDOVA_BUILD_GUIDE.md Ready for deployment and Play Store distribution.38bd54a