Skip to content

Feature: Codebase convention memory via Dakera — consistent AI suggestions across tickets #4181

Description

@ferhimedamine

Sweep resolves GitHub issues with AI-generated code, but each ticket is handled in isolation. For high-volume repos where Sweep handles many issues per week, a persistent memory of codebase conventions and past decisions would improve suggestion consistency.

Problem: Sweep has to re-discover codebase conventions on every ticket — 'this team uses dataclasses not TypedDicts', 'tests always go in tests/unit/', 'async functions always get a timeout parameter'. These patterns are re-derived from scratch each time.

Proposed: Optional memory layer in sweepai/handlers/on_ticket.py:

from dakera import DakeraClient

_memory = DakeraClient(
base_url=os.environ.get('DAKERA_URL', 'http://localhost:3300'),
api_key=os.environ.get('DAKERA_API_KEY', ''),
)

def recall_conventions(repo_full_name: str, issue_title: str) -> str:
response = _memory.recall(
agent_id=f'sweep-{repo_full_name.replace("/", "-")}',
query=issue_title,
top_k=5,
)
if not response or not response.memories:
return ''
return '\n'.join(f'- {m.content}' for m in response.memories)

def store_merged_pr_pattern(repo_full_name: str, pr_description: str) -> None:
_memory.store_memory(
agent_id=f'sweep-{repo_full_name.replace("/", "-")}',
content=pr_description,
)

Integration:

  • Before generating code: inject recall_conventions() into Sweep's system context
  • After PR merge: call store_merged_pr_pattern() to persist the successful pattern
  • Enabled only when DAKERA_URL is set (zero-config opt-in)

Setup: docker run -d -p 3300:3300 -e DAKERA_API_KEY=demo ghcr.io/dakera-ai/dakera:latest

Happy to open a PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions