Skip to content

Development#11

Merged
ChrisCoder9000 merged 4 commits intomainfrom
development
Feb 5, 2026
Merged

Development#11
ChrisCoder9000 merged 4 commits intomainfrom
development

Conversation

@ChrisCoder9000
Copy link
Contributor

@ChrisCoder9000 ChrisCoder9000 commented Feb 5, 2026

Summary by CodeRabbit

  • Chores

    • Version bumped to 2.4.4-dev
  • Bug Fixes

    • Improved handling of edge cases with empty ID lists in embedding operations
    • Added safeguards against duplicate node entries in relationship data structures
  • Improvements

    • Optimized performance of embedding retrieval operations throughout the system
    • Updated API response format for relationship representation in status endpoints

@ChrisCoder9000 ChrisCoder9000 merged commit 3bdfc93 into main Feb 5, 2026
1 check was pending
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 5, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Version dependencies updated from 2.4.2-dev to 2.4.4-dev. Entity sibling search optimized with embedding cache to reduce redundant vector store lookups. API response model updated to use Predicate instead of Relationship in relationship tuples.

Changes

Cohort / File(s) Summary
Version Updates
README.md, pyproject.toml
Bumped version from 2.4.2-dev to 2.4.4-dev across documentation and project metadata.
Entity Sibling Caching
src/core/search/entity_sibilings.py
Introduced embedding cache to avoid repeated vector_store_adapter lookups for same (id, store) pairs. Refactored embedding collection to batch-fetch relation and node IDs, populate cache in bulk, and reuse cached values in subsequent lookups. Added guard to prevent duplicate seed nodes in neighbor connections. Removed debug print statement.
API Response Model
src/services/api/constants/requests.py
Updated GetEntityStatusResponse.relationships field type from List[Tuple[Relationship, Node]] to List[Tuple[Predicate, Node]].

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • Development #8: Both PRs modify entity_sibilings.py with overlapping changes to embedding caching, batch collection logic, and neighbor-scoring operations.

Poem

🐰 Cached embeddings hop so fast,
No vector lookups in the past,
Batch fetching in a single bound,
Sibling searches speedier around!

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch development

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Pylint (4.0.4)
src/services/api/constants/requests.py

************* Module .pylintrc
.pylintrc:1:0: F0011: error while parsing the configuration: Source contains parsing errors: '.pylintrc'
[line 18]: 'C0103' (config-parse-error)
[
{
"type": "convention",
"module": "constants.requests",
"obj": "",
"line": 42,
"column": 0,
"endLine": null,
"endColumn": null,
"path": "src/services/api/constants/requests.py",
"symbol": "line-too-long",
"message": "Line too long (132/100)",
"message-id": "C0301"
},
{
"type": "convention",
"module": "constants.requests",
"obj": "",
"line": 54,
"column": 0,
"endLine": null,
"endColumn": null,
"path": "src/services/api/constants/requests.py",
"symbol": "line-too-long",
"message": "Line too long (140/100)",
"message-id": "C0301"
},
{
"type": "error",
"module": "constants.requests",
"obj": "",

... [truncated 6194 characters] ...

ype": "refactor",
"module": "constants.requests",
"obj": "RetrieveRequestResponse._serialize_relationships._ser",
"line": 95,
"column": 8,
"endLine": 95,
"endColumn": 16,
"path": "src/services/api/constants/requests.py",
"symbol": "too-many-return-statements",
"message": "Too many return statements (9/6)",
"message-id": "R0911"
},
{
"type": "warning",
"module": "constants.requests",
"obj": "",
"line": 14,
"column": 0,
"endLine": 20,
"endColumn": 1,
"path": "src/services/api/constants/requests.py",
"symbol": "unused-import",
"message": "Unused Relationship imported from src.constants.kg",
"message-id": "W0611"
}
]

src/core/search/entity_sibilings.py

************* Module .pylintrc
.pylintrc:1:0: F0011: error while parsing the configuration: Source contains parsing errors: '.pylintrc'
[line 18]: 'C0103' (config-parse-error)
[
{
"type": "convention",
"module": "src.core.search.entity_sibilings",
"obj": "",
"line": 27,
"column": 0,
"endLine": null,
"endColumn": null,
"path": "src/core/search/entity_sibilings.py",
"symbol": "line-too-long",
"message": "Line too long (116/100)",
"message-id": "C0301"
},
{
"type": "convention",
"module": "src.core.search.entity_sibilings",
"obj": "",
"line": 30,
"column": 0,
"endLine": null,
"endColumn": null,
"path": "src/core/search/entity_sibilings.py",
"symbol": "line-too-long",
"message": "Line too long (102/100)",
"message-id": "C0301"
},
{
"type": "convention",
"module": "src.core.search.

... [truncated 9094 characters] ...

": "warning",
"module": "src.core.search.entity_sibilings",
"obj": "EntitySinergyRetriever.retrieve_sibilings",
"line": 50,
"column": 8,
"endLine": 50,
"endColumn": 45,
"path": "src/core/search/entity_sibilings.py",
"symbol": "unused-argument",
"message": "Unused argument 'polarity'",
"message-id": "W0613"
},
{
"type": "refactor",
"module": "src.core.search.entity_sibilings",
"obj": "EntitySinergyRetriever",
"line": 37,
"column": 0,
"endLine": 37,
"endColumn": 28,
"path": "src/core/search/entity_sibilings.py",
"symbol": "too-few-public-methods",
"message": "Too few public methods (1/2)",
"message-id": "R0903"
}
]


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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