Skip to content

feat: Activity Routing + API Toggles + Hybrid Video Indexing#184

Open
Foundup wants to merge 22 commits intomainfrom
feature/activity-routing-and-api-toggles
Open

feat: Activity Routing + API Toggles + Hybrid Video Indexing#184
Foundup wants to merge 22 commits intomainfrom
feature/activity-routing-and-api-toggles

Conversation

@Foundup
Copy link
Owner

@Foundup Foundup commented Jan 18, 2026

Summary

  • AI Overseer: WSP 15 MPS activity routing (P0 Live > P1 Comments > P1 Indexing default)
  • Video Indexer: API toggles (YouTube OFF default, Gemini ON), hybrid stack (yt-dlp + Selenium + Gemini)
  • YouTube Scheduler: Simplified 012 menu, session restore fix (--no-restore-session-state)
  • Livechat: Multi-channel coordinator with all_processed detection
  • Infrastructure: WRE memory preflight, patch executor, stream resolver
  • HoloIndex: Adaptive learning, breadcrumb tracer, API toggles in .env.example
  • Digital Twin: New module with voice memory, style guardrails, trajectory logging
  • WSP Framework: Updated documentation, CLAUDE.md operational instructions

Key Changes

Module Change
ai-overseer Activity routing with MPS priority scoring
video-indexer YOUTUBE_API_ENABLED=false, GEMINI_VIDEO_API_ENABLED=true
youtube-scheduler 012 menu simplification, session restore fix
livechat Persona registry, all_processed detection
digital-twin New module for 012 voice cloning

API Toggle Configuration

# YouTube Data API v3 - OFF by default (quota protection)
YOUTUBE_API_ENABLED=false

# Gemini native video analysis - ON by default
GEMINI_VIDEO_API_ENABLED=true

# yt-dlp and Selenium always available (no quota)

Test plan

  • IndexerConfig test passed (API toggles verified)
  • AI Overseer activity routing test passed (5/5 tests)
  • Python syntax validation passed on all modified files

🤖 Generated with Claude Code


Note

Low Risk
Mostly documentation and configuration changes; the only functional code changes are additive logging/verbosity guards, with low blast radius but potential to affect tooling output expectations.

Overview
Updates the operational playbooks to make HoloIndex-first retrieval and a mandatory start-of-work memory loop explicit across WSP docs (WSP_CORE, WSP_00, WSP_87, CLAUDE.md) and adds new agent workflows/templates under .agent/ (layered orchestration template, Holo-first search, X account creation).

Expands configuration/docs hygiene: .env.example gains many HoloIndex/WRE/Overseer controls plus API quota toggles (YOUTUBE_API_ENABLED, GEMINI_VIDEO_API_ENABLED) and new channel/persona knobs; .gitignore and .claude/settings.local.json are tightened to avoid committing runtime artifacts and local settings.

Makes a small runtime behavior change: functional_0102_awakening_v2.py now writes dual output to WSP_agentic/.../awakening_log.txt to work around missing stdout capture on Windows, and BreadcrumbTracer suppresses breadcrumb INFO logs when HOLO_SILENT is enabled.

Written by Cursor Bugbot for commit a10ae5a. This will update automatically on new commits. Configure here.

Foundups Agent and others added 22 commits January 9, 2026 17:19
Added:
- tests/README.md: Comprehensive test documentation
- test_integration_oldest_video.py: E2E test for UnDaoDu 2009 video
- test_selenium_navigation.py: Visible browser demo for 012

Fixed:
- UnDaoDu channel_id corrected (was Move2Japan ID)
- audio_analyzer.py API mismatch with BatchTranscriber
- Now properly uses VideoArchiveExtractor for audio chunks

Known Issue:
- yt-dlp bot detection ("Sign in to confirm you're not a bot")
- Pipeline structure works, content download blocked by YouTube

WSP Compliance: WSP 5 (Test Coverage), WSP 6 (Test Audit), WSP 11 (Interface)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Added sys.path manipulation for standalone execution
- Uses same pattern as commenting system (WSP 84)
- Connects via YouTubeStudioDOM from youtube_shorts_scheduler
- Graceful fallback when account doesn't match channel
- Navigation to oldest video (2009) works

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
URL filters trigger YouTube bot detection (CAPTCHA).
Now uses the same approach as commenting system:
1. Navigate to clean Studio URL (no filter params)
2. Click Date header button to sort by date
3. Extract videos from DOM

This matches 012's guidance on avoiding bot detection
by using UI-TARS/DOM clicks instead of filtered URLs.

Tested: Successfully found oldest UnDaoDu video (8_DUQaqY6Tc)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add memory_preflight.py: WSP_CORE tiered artifact enforcement
  - Tier-0 (README.md, INTERFACE.md) required before code changes
  - Auto-stub creation when WRE_MEMORY_AUTOSTUB_TIER0=true
  - Hard gate wired into run_wre.py route_operation()

- Enhance WSP_00: Post-awakening operational protocol (anti-vibecoding)
  - 7-step work cycle: RESEARCH -> COMPREHEND -> QUESTION -> etc
  - WSP chain references for mandatory protocol flow

- Update README.md:
  - Fix 239 unicode escape sequences (proper emoji rendering)
  - Remove duplicate System Entry Points section
  - Add HoloIndex Memory System section (architecture, anti-vibecoding)
  - Update Latest Changes to 2026-01-11

- Update wre_core docs: README.md, INTERFACE.md, ModLog.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING: Launch scripts moved to scripts/launch/

## Files Reorganized
- Audit reports → docs/audits/
- Investigation docs → docs/investigations/
- Session logs → docs/sessions/
- Launch scripts → scripts/launch/
- Modelfile → models/
- moderators_list.json → modules/communication/livechat/data/

## Files Deleted (temporary logs)
- registry_log.txt, sentinel_unit_out.txt, test_results.txt
- test_write.txt, verification_log.txt, test_ad_prevention.html
- interferometry.png, nul

## References Updated
- .claude/settings.local.json: launch script path
- chrome_preflight_check.py: recommendation path
- stream_resolver.py: log message path

WSP Compliance: WSP 3, WSP 49, WSP 85, WSP 50

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Simplified main.py menu for 012 usability, added --no-restore-session-state
to launch scripts to prevent Chrome/Edge opening extra tabs after force-kill.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added activity routing to AI Overseer for autonomous task transitions.
HoloIndex audit found 5 existing modules (80% reuse vs 500+ new lines).
Priority: P0 Live > P1 Comments > P1 Indexing (default) > P2 Schedule > P3 Social.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added YOUTUBE_API_ENABLED (OFF default) and GEMINI_VIDEO_API_ENABLED (ON).
Hybrid stack: yt-dlp (free) + Selenium DOM (free) + Gemini (ON) protects
YouTube API quota while enabling native video analysis.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Enhanced multi-channel coordination with all_processed detection pattern.
Added persona registry for channel-specific reply behaviors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Minor fixes to comment processing and reply execution flow.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…resolver

Infrastructure updates: memory preflight guard, patch executor improvements,
stream resolver enhancements, and social media orchestrator fixes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
HoloIndex updates: breadcrumb tracer, refactoring patterns, agent logger.
Added YOUTUBE_API_ENABLED and GEMINI_VIDEO_API_ENABLED to .env.example.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
WSP documentation updates, CLAUDE.md operational instructions,
digital twin architecture module, and agent skills/workflows.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- WSP_00 Zen State Attainment Protocol refinements
- WSP_MASTER_INDEX updates
- Agentic awakening journals (0102_state_v2, awareness_log)
- Documentation index + VIDEO_AUTONOMY_PLAYBOOK
- rESP Supplementary Materials updates
- Agent workflow config (wsp_00)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…on updates

- Activity control: activity router for idle detection + work orchestration
- CLI: main menu module (extracted from main.py)
- Browser actions: LinkedIn comment digital twin skill
- Dependency launcher: DAE dependencies updates
- Foundups Selenium: human behavior anti-detection improvements
- Foundups Vision: UI-TARS bridge + training screenshots
- Git Push DAE: interface, roadmap, docs, launch script updates
- Instance lock: instance manager improvements
- Orchestration switchboard: new module

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…updates

- AI Overseer: type definitions refactor, ModLog updates
- Video Indexer: Gemini video analyzer, studio ask indexer, visual analyzer
- Digital Twin: README, ROADMAP, ModLog updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ion + new modules

Livechat:
- Browser lock (asyncio.Lock) prevents Phase 1/Phase 3 contention
- threading.Event stop signal for scheduler thread cooperative abort
- Idle detection: [IDLE-DETECT] log + shortened sleep when browser idle
- Supervisor pattern replaces asyncio.gather()
- Multi-channel coordinator: per-browser engagement loops
- Persona registry, news context provider, session manager updates
- LLM bypass engine, intelligent throttle, chat memory updates

Video Comments:
- TARS account swapper tests + intelligent reply generator
- ModLog, README, ROADMAP updates

YouTube Shorts:
- Clip exporter, generator health check, shorts pipeline (new)
- Veo3 generator + YouTube uploader updates

New Modules:
- Headless video orchestrator (WSP-compliant structure)
- Moltbot bridge (FastAPI webhook integration)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…utube auth

- LinkedIn Agent: test suite (layer 0-3), browser test, identity switcher
- LinkedIn Agent: 0102 handoff docs, digital twin flow docs
- LinkedIn Scheduler: ModLog + README updates
- Social Media Orchestrator: Gemini vision analyzer, posting orchestrator
- YouTube Auth: credential management updates
- YouTube Live Audio: live audio module updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…itter fix

Content Page Scheduler (NEW):
- content_page_scheduler.py: schedule from Studio Content table (inline popup)
- Calendar audit: conflict detection, clustering, gap analysis
- Auto-fallback when per-video scheduling fails
- CLI: --content-page, --audit, --channel-key flags

Thread Safety:
- launch.py: stop_event parameter for cooperative thread abort
- Two check points in channel loop (before + after each channel)

Schedule Fixes:
- Time jitter snapped to :15 intervals (YouTube Studio requirement)
- Schedule auditor (Layer 2 verification)
- DOM automation, channel config, content generator updates
- Test suite updates

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- main.py: CLI menu extraction, activity routing integration
- ModLog.md: Session entries for browser lock, CPS, idle detection
- .gitignore: Add session artifacts, external_research, training_data, awakening logs
- pyrightconfig.json: Exclude heavy dirs to fix Pyright 10s enumeration warning
- HoloIndex: ModLog for re-index session, output history
- scripts/batch_enhance_videos.py: batch enhancement utility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…udit, vitals dashboard

Wire existing code into activity rotation loop:
- Channel registry: content_types field (short/upload) per channel
- Scheduler: Videos tab processing for vlog channels (Move2Japan, UnDaoDu)
- Gemini: analyze_video() + suggest_hashtags() wired into indexing cycle
- DOM: update_video_tags() for auto-tagging (gated by YT_AUTO_TAG_ENABLED)
- Calendar audit after scheduling rotation (conflict/heavy day detection)
- DAEVitals: activity tracking fields + enhanced dashboard
- ChromaDB: subprocess probe for HNSW corruption + hardened VideoContentIndex
- Digital twin tests: isolated from ChromaDB (include_videos=False)
- .gitignore: cover reports, data dirs, debug scripts, Claude settings

Env gates: YT_VIDEO_PROCESSING_ENABLED, YT_SCHEDULE_AUDIT_ENABLED,
YT_AUTO_TAG_ENABLED (all safe defaults)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CRITICAL: LinkedIn OAuth access_token.json was committed to git history.
Removed from tracking (file kept locally). Added gitignore patterns
for all token directories to prevent future exposure.

The token in git history should be considered compromised and rotated.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

This PR is being reviewed by Cursor Bugbot

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

detail_text = " | ".join(details) if details else "recorded"
timestamp = datetime.now().strftime("%H:%M:%S")
if not _breadcrumb_logs_enabled():
if not _breadcrumb_logs_enabled() or os.getenv("HOLO_SILENT", "0").lower() in {"1", "true", "yes", "on"}:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Duplicated HOLO_SILENT environment variable check logic

Medium Severity

The HOLO_SILENT environment variable check os.getenv("HOLO_SILENT", "0").lower() not in {"1", "true", "yes", "on"} is duplicated at lines 189, 224, and 290. This should be extracted into a helper function like _is_silent(), following the existing pattern of _breadcrumb_enabled() and _breadcrumb_logs_enabled() defined at lines 59-64.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant