feat(ecoseek): Phase 2 — direct hermes.ecoseek.org + legacy broker fallback - #6
Merged
Merged
Conversation
…llback Update ecoseek plugin to prefer direct connection to hermes.ecoseek.org over the legacy broker at broker.ecoseek.org: - HERMES_REMOTE_URL (default: https://hermes.ecoseek.org) - HERMES_ECOSEEK_API_KEY for authentication - HERMES_REMOTE_MODEL (default: hermes, was openclaw/main) - Fallback to ECOSEEK_BROKER_URL + ECOSEEK_BROKER_KEY if direct not configured Both __init__.py and didal.py now use _get_remote_endpoint() which resolves the best available connection method. Plugin version bumped to 0.5.0.
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
alrobles
pushed a commit
that referenced
this pull request
Jun 1, 2026
…te + cell_size_check + synchronous=FULL) Production corruption #6 left b-tree pages with zeroed headers but intact old cell content — the Bug E pattern. This fix applies three pragma calls on every connect(): - synchronous=FULL (was NORMAL): closes the WAL-checkpoint reordering window where a crash between WAL commit and main-DB write leaves a partially-written b-tree page header. Cost is <1ms per commit on local SSD; negligible at kanban write volume. - secure_delete=ON: forces SQLite to zero freed page bytes on disk. If a torn write or hardware fault later corrupts a page, the underlying cell content is zero, so corruption is detectable and no stale rows can resurface as live data. - cell_size_check=ON: adds a read-side guard so corrupt cells surface as errors at read time rather than as silent wrong-data returns. All three are connection-scoped and re-applied on every connect(). secure_delete also writes a persistent flag into the DB header on the first call against a fresh DB, making the protection durable across processes for new DBs. Tests added for all four required cases: each pragma active on a fresh connection, and all three re-applied after close+reopen. Also adds the required negative test (migration path does not reset pragmas).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
Updates the ecoseek plugin (remote/Beta side) to prefer direct connection to
hermes.ecoseek.orgover the legacy broker atbroker.ecoseek.org. This is the companion to ecoseek PR NousResearch#58 which updates the Alpha/Emily side.Related Issue
Part of DiDAL Phase 2 implementation. Companion PR: alrobles/ecoseek#58
Type of Change
Changes Made
plugins/ecoseek/__init__.py: AddedHERMES_REMOTE_URL+HERMES_ECOSEEK_API_KEYconfig with_get_remote_endpoint()resolver. Prefers direct hermes.ecoseek.org, falls back to legacy broker. Updated error messages. Updated docstring.plugins/ecoseek/didal.py: Same config refactor —_send_to_beta()now uses_get_remote_endpoint()instead of hardcoded broker URL. Model default changed fromopenclaw/maintohermes.plugins/ecoseek/plugin.yaml: Version bumped to 0.5.0.How to Test
HERMES_ECOSEEK_API_KEY=agenticplu-...in~/.hermes/.envhermes plugins enable ecoseekHERMES_PLUGINS_DEBUG=1 hermes tools list 2>&1 | grep ecoseekescalate_remote,dialectical_exchange,eco_analyze,ku_hpcFor backward compatibility:
HERMES_ECOSEEK_API_KEY, setECOSEEK_BROKER_URL+ECOSEEK_BROKER_KEYChecklist
Code
pytest tests/ -qand all tests passDocumentation & Housekeeping
Link to Devin session: https://app.devin.ai/sessions/6e7495b7d2e2416ba3f9626d6dcb9a2e
Requested by: @alrobles