1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Make project MCP workflows self-synchronizing

This commit is contained in:
Andraxion 2026-07-26 09:32:25 -04:00
parent a30f021a52
commit 73165c9f51
17 changed files with 1124 additions and 56 deletions

View file

@ -382,18 +382,44 @@ class CanonicalApplicationService:
applier_id=self.applier_id,
application=self.applier.apply,
)
index_result = self.index.build()
index_check = self.index.check()
refresh_errors: list[dict[str, object]] = []
index_result: dict[str, object] | None = None
index_check: dict[str, object] | None = None
try:
index_result = self.index.build()
index_check = self.index.check()
except DocForgeError as error:
refresh_errors.append(
{
"component": "index",
"error": error.as_dict(),
"remediation": {
"tool": "docforge_sync",
"arguments": {},
},
}
)
renders: list[dict[str, object]] = []
config = self.project.descriptor.render
if config is not None:
for view in config.views:
renders.append(self.rendering.render(view.view_id))
try:
renders.append(self.rendering.render(view.view_id))
except DocForgeError as error:
refresh_errors.append(
{
"component": "render",
"view_id": view.view_id,
"error": error.as_dict(),
}
)
return {
**applied,
"derived_refresh": {
"status": "degraded" if refresh_errors else "ok",
"index": index_result,
"check": index_check,
"renders": renders,
"errors": refresh_errors,
},
}