Commit Graph
46 Commits
Author SHA1 Message Date
OpenClaw Sub-agent 1c4948b965 feat: add /ask/ quick-question page — mobile one-tap send to Discord via webhook 2026-07-31 22:22:14 +10:00
junv c1ea59d23c Update UI 2026-07-19 22:03:33 +10:00
OpenClaw Sub-agent f7a3d228c1 feat: add cashflow-adjusted invest dashboard 2026-06-14 08:19:44 +10:00
junvandCopilot a87b4643fd feat: port JBOT AI robot face into links as Django app
- Add jbot Django app (jbot/__init__.py, apps.py, urls.py, api_urls.py)
- Python backend (jbot/views.py): TTS 2.0, ASR 1.0 BigASR, LLM/memory via OpenRouter
- React SPA frontend at /jbot/ (static_src/jbot/): RobotFace, ChatPanel, expressions,
  voices, push-to-talk, history, memory, settings pages
- Vite entry jbot: static_src/jbot/main.jsx → dist/jbot.js + dist/jbot.css
- react-router-dom added; BrowserRouter basename=/jbot for SPA routing
- core/settings.py: added jbot to INSTALLED_APPS
- core/urls.py: /jbot/ + /api/jbot/ URL includes
- pyproject.toml: websocket-client>=1.9.0 for BigASR binary WS protocol
- Dockerfile: ffmpeg added to production apt-get for WebM→PCM audio conversion
- k8s/manifest.yaml: VOLC_APP_ID, VOLC_ACCESS_TOKEN, OPENROUTER_API_KEY env vars
  via jbot-credentials Secret; LLM_MODEL, VOLC_TTS_VOICE, VOLC_ASR_RESOURCE defaults

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-17 14:13:37 +10:00
junv 1b04d500d1 Add price check 2026-05-11 21:28:59 +10:00
junv d933a99b8d Update logic 2026-04-18 22:01:34 +10:00
junv f44d76e9ad Rebase 2026-04-18 14:19:51 +10:00
OpenClaw Sub-agent 8d05a11eb6 feat(invest): Add investment portfolio management feature
- Portfolio management (MOMO, IBKR personal, IBKR Yanhua)
- Stock holdings with transaction history (buy/sell)
- Weekly AI report generation
- Real-time price cache via Finnhub API
- Dashboard with tree view and performance charts
- REST API with AI-friendly batch update endpoint
- Management command for scheduled report generation

For大哥's personal investment advisor system.
2026-04-18 11:26:48 +10:00
junvandCopilot 3955e95b9e geo: replace ip-api.com with local DB-IP City Lite MMDB
- Rewrite nginxmon/geo.py to use maxminddb + DB-IP City Lite MMDB
  (https://cdn.jsdelivr.net/npm/dbip-city-lite/dbip-city-lite.mmdb.gz)
  instead of ip-api.com HTTP API — eliminates all network timeouts and
  rate-limit issues; lookups are now sub-millisecond in-process
- Keep _lookup_batch() signature unchanged so routermon receiver
  requires no changes
- MMDB downloaded on first use (lazy) and refreshed monthly via
  APScheduler; reader cached module-level (thread-safe for reads)
- Add management command: manage.py download_geo_db
- Update k8s init container to download MMDB on first deploy if absent
- Add maxminddb==3.1.1 dependency

CC BY 4.0 — DB-IP (https://db-ip.com)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-16 16:44:02 +10:00
junvandCopilot 611305b0ab fix(routermon): fix receiver startup, logging config, and JS template escaping
- Remove SO_REUSEADDR from UDP socket so only one gunicorn worker binds
  port 5514 (second worker intentionally gets EADDRINUSE and skips)
- Add print() fallback for bind confirmation/errors so startup is visible
  even when Django logging config is not fully set up
- Fix duplicate LOGGING dict in settings.py: second assignment was
  overriding the first and removing the root logger handler, silently
  swallowing all routermon/core startup logs
- Add sys.stderr fallback in core/apps.py ready() for startup exceptions
- Fix JS SyntaxError: {{ top_domains_json }} needs |safe filter since
  Django auto-escapes quotes to &quot; inside script tags

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-16 14:58:39 +10:00
junv 5b1df2ee5e Add router monitor 2026-04-16 14:01:43 +10:00
junv 049d417cc8 Remove knowledge graph feature
The knowledge graph feature (links graph) was not functioning correctly
and was slowing down the application. This commit removes it entirely:

- Delete knowledge_graph_urls.py, knowledge_graph_views.py, llm_client.py
- Delete knowledge_graph.html template
- Remove KnowledgeGraphSnapshot model and all llm_*/kg_* fields from
  SiteSettings (migration 0048)
- Remove build_knowledge_graph() and schedule_kg_build() from tasks.py
- Remove KG settings save logic and bulk delete action from views.py
- Remove knowledge_graph_urls include from links/urls.py
- Remove schedule_kg_build scheduler job from core/apps.py
- Remove KG snapshot job registry from links/apps.py
- Remove Knowledge Graph nav item from base.html
- Remove KG settings cards and llmSettingsHelper JS from settings.html
2026-04-14 12:04:44 +10:00
junv 7eb002a437 Add nginx visualization 2026-04-01 15:51:20 +11:00
junv 20c7857302 Add building graph 2026-03-30 18:06:46 +11:00
junv 3a20fcb63a Optimize frontend 2026-03-29 11:10:37 +11:00
junv c26c620f78 Add redis caching 2026-03-29 10:23:46 +11:00
copilot-swe-agent[bot]andwahyd4 768ab6c5d8 feat: add build time and version info to Docker image and page footer
Agent-Logs-Url: https://github.com/wahyd4/links/sessions/514d1f3d-d003-4f16-9a54-d221dba306f7

Co-authored-by: wahyd4 <836576+wahyd4@users.noreply.github.com>
2026-03-27 01:12:04 +00:00
junv 7a7dedab88 Update 2026-03-22 16:29:38 +11:00
junv f4d36e6953 Add image imports 2026-03-22 16:15:53 +11:00
junvandCopilot f6f115690b Fix llms.txt/ai-plugin.json URL routing
- Move routes to top of urlpatterns (before catch-all alias resolver)
- Serve directly from committed static/ dir instead of staticfiles/ (STATIC_ROOT)
  so they work without collectstatic being run
- Eliminates APPEND_SLASH redirect to alias catch-all when file not in staticfiles/

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:29:52 +11:00
junvandCopilot 9d0f1fc87c Make API docs LLM-friendly
- Add operationId to all 20 API operations
- Add tag groups (Pages, Posts, Collections, Images, Files) with descriptions
- Enrich info.description with concept table, usage patterns, and examples
- Add /llms.txt (llmstxt.org standard) with plain-text API overview
- Add /.well-known/ai-plugin.json (OpenAI plugin manifest)
- Add URL routes for llms.txt and ai-plugin.json

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:23:51 +11:00
junvandCopilot 64871ab7e0 Fix OpenAPI docs, add image import, file preview modal, keyboard nav
- Fix OpenAPI YAML: correct components/schemas indentation (was inside paths:)
- Downgrade openapi version 3.1.0 → 3.0.3 for ReDoc 2.5.2 compatibility
- Add /import/images/<path> endpoint with worker-mode background download
- Add source_url field to FileUpload model (migration 0044)
- Add file preview modal with image/video/audio/unsupported cases
- Add arrow key navigation + prev/next buttons + file counter in modal
- Add /import/images/{image_url} to OpenAPI spec with source_url field

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 15:11:44 +11:00
junv 8777aabdc9 Update image folder 2026-03-22 14:36:10 +11:00
junv 1ffdb5d2ba Fix static resources issue 2026-03-21 22:49:18 +11:00
junv a8ff146e95 Try to fix css broken issue 2026-03-21 22:39:00 +11:00
junv 2e47fd1046 Update settings 2026-03-21 22:08:50 +11:00
junv 45e7289755 Update debug 2026-03-21 21:14:16 +11:00
junv 332654a726 Test files API 2026-03-21 20:45:23 +11:00
junv 7f7a890ad5 Update files function! 2026-03-21 20:30:44 +11:00
junv b8c256424e Fix build error and page screenshot issue! 2026-03-21 16:55:22 +11:00
junv 551fdf5cbb Add network scan 2026-03-21 16:41:14 +11:00
junv 4d256c2e07 Add craw4ai 2025-11-04 22:22:40 +11:00
junv d5d6855834 Update 2025-11-04 21:42:54 +11:00
junv 41a8726fd3 Update worker to be apscheduler 2025-11-04 20:15:43 +11:00
junv 21ead6ab54 Make editing custom link work 2025-06-11 22:01:13 +10:00
junv 3e7d300d7f Add image thumnail 2024-11-24 10:31:26 +11:00
junv af3d1f84b3 Update music 2024-11-18 15:06:06 +11:00
junv f299874daa Update playing music logic 2024-11-18 13:56:02 +11:00
junv bbda32887e be able to upload and view images 2024-11-17 12:26:23 +11:00
junv f8abdfee75 first version images 2024-11-17 11:11:08 +11:00
junv fc15d9093c Update default time zone to au 2024-11-09 09:10:51 +11:00
junv 03573880ed Add favicon 2024-11-09 08:48:36 +11:00
junv c5cba262c8 run beats every 2 mins 2024-11-04 23:18:52 +11:00
junv b1878f9ce7 Fix api endpoints 2024-11-04 22:00:11 +11:00
junv 5eb4047028 Update 2024-11-04 16:39:15 +11:00
junv ea08f337d7 Add logic to display thumbnails 2024-11-04 15:20:18 +11:00