- 21 Oct, 2026 4 commits
-
-
郭阔 authored
- nh_login_preflight (platform.sh): sources with credentials at $CONF_DIR/logins/<source>.json (600) get a login check via the skill's login-tools.js before claude runs; auto-login on failure; harvest never blocked (paywall honestly reported by result contract) - harvest.sh invokes preflight after result contract preparation - SKILLS_DIR / SKILLS_REPO_URL documented in default.conf.example - test: preflight invoked when credentials configured (fake skill)
-
郭阔 authored
- nh_cdp_port: stable per-source CDP port (9300+name hash) - nh_entry_write: entry scripts now export CDP_PORT_OVERRIDE + CDP_PROFILE_OVERRIDE so parallel harvests each drive a dedicated Chromium (own port + own profile); regenerated idempotently - pairs with news-hub-skills CDP_PROFILE_OVERRIDE support - darwin test asserts isolation env in generated entry
-
郭阔 authored
- bin/setup.sh: one-command machine bootstrap (auto platform detect) — directory layout, dependency check (brew install on consent), claude auth check, skills repo auto-clone from SKILLS_REPO_URL + npm install + full bundle import (all sources), dual skill symlink registration, default.conf/web.conf generation (random panel password), optional web panel service install, digest schedule, remaining-manual-steps summary; idempotent - web/app.py: platform_layer integration — paths/timer reads/trigger/ active-harvest checks unified; add/edit/disable actions now work on darwin; per-source harvest toggle route (schedule load/unload + skill enable/disable; auto staggered schedule creation on first enable) - index.html: toggle switch column, unscheduled skill sources merged into list, platform-neutral labels - bin/platform_layer.py: python facade reusing platform.sh via 'platform.sh call' dispatcher for all mutations; file reads native
-
郭阔 authored
- bin/platform.sh: single source of truth for platform differences — OS detection (NH_OS override for tests), PATH bootstrap without shadowing caller-injected commands, platform default paths, scheduler abstraction (systemd timer + systemctl <-> launchd plist + launchctl with named entry scripts), file-level disable on darwin (survives reboot, one-click recoverable), sed -i / GNU-sed shims, root check only on linux, conf loading (EnvironmentFile equivalent) - bin/schedule.py: plist parse/write + auto-detect by filename (timer/plist/.disabled); schedule sources listing subcommand - harvest/continue/daily-digest: drop hardcoded nvm//home/yichu paths, self-bootstrap via platform.sh, harvest now loads conf itself (run.sh wrapper no longer required) - add-source/modify-source: fully cross-platform schedule management (plist generation + launchctl on darwin, timer + systemctl on linux) - status.sh: cross-platform overview/detail/journal (launchd log on darwin) - deploy/migrate: linux-only guard with pointer to setup.sh - tests: env-synced platform simulation (NH_OS), fake launchctl suite, darwin plist/disable/enable roundtrip tests; new disable contract (unload + preserve times) replaces clear-times; 37 tests green
-
- 20 Oct, 2026 2 commits
-
-
郭阔 authored
- web/app.py: IS_DARWIN branches (launchctl kickstart for manual trigger, direct execution for digest/continue without sudo); _active_harvests() concurrency guard on /run and /continue; normalized detail state (last run time from log filename, next trigger computed from schedule) - detail.html: layout redesign — status badge header, real overview cards, merged duplicate run metadata, collapsible logs/config, history moved up - gitignore: exclude .zcode/
-
谢宇轩 authored
-
- 09 Sep, 2026 1 commit
-
-
谢宇轩 authored
-
- 07 Sep, 2026 1 commit
-
-
谢宇轩 authored
-
- 02 Sep, 2026 2 commits