Repository navigation
Monorepo scaffold + Phase 0 schema for the Agent Context Attention Layer - #3
Merged
Merged
Conversation
Signed-off-by: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…ed lib Signed-off-by: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Signed-off-by: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Removed interim default owner from CODEOWNERS file. Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com>
FScholPer
marked this pull request as ready for review
July 23, 2026 13:07
Signed-off-by: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Clarified the description of the context attention layer and its role in the repository. Signed-off-by: Frank Scholter Peres(MBTI) <145544737+FScholPer@users.noreply.github.com>
odra
approved these changes
Jul 27, 2026
FScholPer
added a commit
that referenced
this pull request
Oct 21, 2026
Fixes all 4 issues from PR #49 review: Issue #1 (P1 - HIGH): Windows platform compatibility - Move fcntl import to try/except with graceful fallback - Add platform-compatible locking for Windows support - Update build() to handle missing fcntl module Issue #2 (P2 - MEDIUM): Extraction output directory - Clear GRAPHIFY_OUT env var in graphify subprocess - Prevents interference with --out flag - Ensures correct output location Issue #3 (P2 - MEDIUM): Cache path sharing with context-discipline - Add resolve_graph_path() public function - Update MergedGraph.build() to check user cache - Update _graph_setup_status() to check user cache - Both consumers now find cached graphs Issue #4 (P2 - MEDIUM): Registry seeding race condition - Add locking around registry seeding in prepare() - Recheck graph existence after lock acquisition - Prevents concurrent cold starts from corrupting cache Add comprehensive test coverage: - 7 new tests for resolve_graph_path() - Test for GRAPHIFY_OUT env clearing - Test for locking race condition prevention - Total: 19 tests passing Update documentation: - Add resolve_graph_path() usage example to README - Document programmatic access API All code passes: - Ruff linter (clean) - Pyright type checker (0 errors) - Pytest test suite (19/19 passing)
FScholPer
added a commit
that referenced
this pull request
Oct 22, 2026
* Serve graphify from a user cache seeded by central graphs graphify-codegraph now prepares the graph before starting the server: an existing graphify-out in the repository is used as is, otherwise the graph lives under ~/.local/share/score-agent. For eclipse-score repos an empty cache is seeded from ghcr.io/eclipse-score/mcp-servers/graphs (merge-base, then main) with sha256 digest check, and a locked code-only build refreshes it in the background when HEAD moved. Co-Authored-By: frank.scholter_peres <frank.scholter_peres@mercedes-benz.com> * fix(graphify-codegraph): address PR review issues Fixes all 4 issues from PR #49 review: Issue #1 (P1 - HIGH): Windows platform compatibility - Move fcntl import to try/except with graceful fallback - Add platform-compatible locking for Windows support - Update build() to handle missing fcntl module Issue #2 (P2 - MEDIUM): Extraction output directory - Clear GRAPHIFY_OUT env var in graphify subprocess - Prevents interference with --out flag - Ensures correct output location Issue #3 (P2 - MEDIUM): Cache path sharing with context-discipline - Add resolve_graph_path() public function - Update MergedGraph.build() to check user cache - Update _graph_setup_status() to check user cache - Both consumers now find cached graphs Issue #4 (P2 - MEDIUM): Registry seeding race condition - Add locking around registry seeding in prepare() - Recheck graph existence after lock acquisition - Prevents concurrent cold starts from corrupting cache Add comprehensive test coverage: - 7 new tests for resolve_graph_path() - Test for GRAPHIFY_OUT env clearing - Test for locking race condition prevention - Total: 19 tests passing Update documentation: - Add resolve_graph_path() usage example to README - Document programmatic access API All code passes: - Ruff linter (clean) - Pyright type checker (0 errors) - Pytest test suite (19/19 passing) * fix: resolve CI formatting and type checking issues - Apply ruff formatting to 4 Python files - Fix unused variable warnings (document, graph1, graph2) - Add type annotation for seeded list * fix: prioritize in-repo graph over cache and report correct path When no graph exists, report the in-repo path (graphify-out/graph.json) instead of the user cache path. This matches user expectations and the graphify-codegraph prepare() behavior. Fixes test failures in test_initialize_session_reports_missing_graph_setup and test_query_graph_reports_missing_graph_setup.
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.
Summary
First step of the Agent Context Attention Layer for Eclipse S-CORE. Turns this repo into an APM monorepo-hybrid and lands Phase 0 only: the schema / data model. No adapters, graph composition, ranking,
apm.ymlgeneration, or MCP server implementation yet — those are later phases; placeholders mark where they go.(Supersedes #2, which auto-closed when the branch was renamed.)
The layer's job is to turn "trace everything" across S-CORE's 80+ repos into "surface what matters for my current context". Everything becomes a typed, provenance-bearing graph node/edge; later phases rank them per
(task, repo, role)and project the top-N into a generated APM package that compiles toAGENTS.mdand every other harness.Layout — APM monorepo-hybrid
Adding an APM package = copy
packages/_template, edit itsapm.yml, drop primitives under.apm/<type>/. MCP servers are declarations under a package'sdependencies.mcp:— not a separate directory. The engine is a shared lib inlibs/, not fused into the package.Schema (the substance)
Design principle: sphinx-needs is one signal source, not the foundation. Node vocabulary is split into two families:
score_metamodel.yaml(stkh_req,feat_req,comp_req,feat,comp,mod, logical interfaces,dec_rec, safety/security analysis types,testcase, …). Not forked.issue,discussion,pull_request,commit,code_change,contract,repo,module,team,person,artifact,ci_result.Edge relations are a superset: all
needs_extra_linksfrom the metamodel plus the ADR trace relations (affects,depends_on,discussed_in,blocks,supersedes,conflicts_with,authored_by,owns), withADR_RELATION_MAPPINGSdocumenting the overlaps.Invariants baked in now so adapters can't violate them later:
dec_recid /org/repo#123/ commit sha / file path / bazel module label. No synthetic UUIDs.{repo, sha?, adapter, confidence∈[0,1], observed_at}.extra="forbid"throughout.context-delta— the one unit every future adapter emitscontext.jsonldmaps every node/edge type to a stable IRI underhttps://eclipse-score.github.io/context-attention/ns#.Repo baseline & CI
Eclipse governance files added (modeled on
eclipse-score/module_template, adapted to a uv/APM repo — no Bazel/sphinx scaffolding):LICENSES/Apache-2.0.txt+REUSE.toml(REUSE-compliant,reuse lintclean, 29/29 files),.github/CODEOWNERS,.github/dependabot.yml(github-actions/pip/pre-commit),CONTRIBUTION.md,.pre-commit-config.yaml(ruff + reuse).First CI workflow
.github/workflows/on-pr.yml:eclipse-score/cicd-workflows/.github/workflows/score-pr-checks.yml(pinned to93aac16/ v0.0.2; skips Bazel-module check gracefully since there's noMODULE.bazel);python-checksjob runninguv sync+ ruff + pyright + pytest.All third-party actions/workflows are pinned to commit SHAs.
Verification
uv sync,uv run ruff check .,ruff format --check,uv run pyright(0 errors),uv run pytest(4 passed) — all green.apm pack --offlinereturnsok:truefor the root marketplace,packages/context, andpackages/_template;apm marketplace check --offline→ all entries OK;apm doctormarketplace/version-alignment/duplicate-name checks pass. Generated output (.claude-plugin/,.github/,apm.lock.yaml, …) is gitignored, not committed.Frank Scholter Peres frank.scholter_peres@mercedes-benz.com, Mercedes-Benz Tech Innovation GmbH
Provider Information