Fix readme - #5
Closed
Nyakult wants to merge 2 commits into
Closed
Conversation
DuffyCoder
referenced
this pull request
in DuffyCoder/EverOS
Apr 22, 2026
…ng conv Two paired hardenings so a single bad memcell no longer aborts the whole add() pass. Observed failure: one conv produces 90 memcells, one of them's atomic_fact extraction legitimately returns empty (pure greeting / filler session filtered by prompt rule #5), old code raised ``ValueError("atomic_fact list is empty")``, asyncio.gather re-raised on first exception, and the remaining 89 successful event_logs were discarded alongside it. - src/memory_layer/memory_extractor/event_log_extractor.py: empty ``atomic_fact`` is a valid prompt outcome — return None so the caller skips this memcell's event_log gracefully. Logged at INFO so post-hoc analysis can still count how often it fires. - evaluation/src/adapters/evermemos/stage1_memcells_extraction.py: switch ``asyncio.gather(*event_log_tasks)`` to ``return_exceptions=True``. Iterate results, skip exception items with a warning, count successes. Previously the first exception cancelled siblings and the whole conv fell over. Success-count print is now the exact truth (``success_count / len(results)``) instead of a post-hoc re-computation over tuples we may not have gotten because of the raised exception.
Kendrick-Song
added a commit
that referenced
this pull request
Jul 27, 2026
…ence
_validate_components previously only checked the process-wide
capability accessor. A caller that constructed SearchManager with
embedding=None or reranker=None while the accessor happened to be
available (test fixture drift, subclass customization) slipped past
the gate and produced an opaque AttributeError('NoneType') deep in
dispatch instead of a clean 422 ProviderNotConfiguredError.
Guard now uses belt-and-suspenders: fails if EITHER accessor says
unavailable OR self._embedding / self._reranker is None. Single
source of truth = both agree the provider exists.
Fixes fable5-review finding #5.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Kendrick-Song
added a commit
that referenced
this pull request
Jul 27, 2026
Round-2 review found 5 defects in _backfill.py — 3 introduced by the first fix-pass (Groups A/E) plus 2 pre-existing: - #1 subject-only embed failure silently corrupts subject_vector: scan filter now covers OR subject_vector IS NULL for tables that carry a subject; batch-level embed writes only the sides that succeeded; next run picks up the residue. - #3 sync drain unscoped: kinds param plumbed through worker.drain* and claim_pending_batch so Phase-3 sync no longer touches other kinds' queue state. - #5 preflight order: capability check now runs before scan + tokenize + estimate; empty-backlog path also preflights. - #6 Phase-3 idempotency: _scan_skill_source also checks SKILL.md on disk, so a Ctrl-C after extract_agent_skill but before sync no longer causes re-extraction on next run. - #9 count/limit race: _scan_null_vector_backlog drops the outer limit; the where-filter naturally bounds the fetch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Kendrick-Song
added a commit
that referenced
this pull request
Jul 28, 2026
Round-3 Minor findings final wrap: - #12: task-number leaks (Task 14 / 22 / 25) in released source docstrings replaced with descriptions of the current invariant. extract_user_profile.py:11-13,103-107 rewritten: the Task-14 registration gate it referenced was removed by ae5543d (Group I replaced it with per-strategy body-guards); the docstring's mutual-exclusion argument now correctly states the applies_to + body-guard mechanism. - #13a: test_backfill_batch_concurrency wall-clock assertion (span < total * 0.8) replaced with overlap assertion (p_start < s_end AND s_start < p_end). Tests concurrent execution semantic without CI-runner-latency assumption. - #13b: test_backfill_flags.py SIGINT-to-getpid test marked slow to protect against CI race where 0.3s timer fires before asyncio.Runner installs its handler. Subprocess variant deliberately not shipped (both variants would be slow-gated anyway; the added maintenance surface would not pay for itself). Docstring documents the exclusion rationale. - #5/#6/#8/#11-second: design-note docstrings at the relevant sites so future readers know these are accepted choices, not oversights. #8's rationale lives once in trigger_profile_clustering with pointers from the three sibling body-guards to avoid a four-copy paste-flood. Fixes PR #361 review Minor findings #5, #6, #8, #11 (abort semantic), #12, #13a, #13b. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
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.
updated MemOS url