diff --git a/controle-semantico.sqlite b/controle-semantico.sqlite index a955464..c3503f7 100644 Binary files a/controle-semantico.sqlite and b/controle-semantico.sqlite differ diff --git a/dados/central-materialization-report.json b/dados/central-materialization-report.json index eb88a0d..44ea655 100644 --- a/dados/central-materialization-report.json +++ b/dados/central-materialization-report.json @@ -464,7 +464,7 @@ "G:\\_codex-git\\tudo-para-ia-mais-humana\\os-orientadoras\\central-materialization-fallback\\gerenciais\\0057_GERENCIAL__governar-migracao-coordenada-do-nome-canonico-platform.md", "G:\\_codex-git\\tudo-para-ia-mais-humana\\os-orientadoras\\central-materialization-fallback\\gerenciais\\0058_GERENCIAL__fechar-decisao-docs-response-ready-ou-catalogonly-formal.md" ], - "generated_at": "2026-05-05T00:14:12+00:00", + "generated_at": "2026-05-05T00:15:58+00:00", "generated_files": [ "G:\\_codex-git\\tudo-para-ia-mais-humana\\dados\\central-materialization-report.json", "G:\\_codex-git\\tudo-para-ia-mais-humana\\ecossistema\\CENTRAL-MATERIALIZATION-REPORT.md", @@ -764,7 +764,7 @@ ], "project_id": "tudo-para-ia-mais-humana-platform", "project_root": "G:\\_codex-git\\tudo-para-ia-mais-humana", - "report_id": "central-materialization-755522481418", + "report_id": "central-materialization-304164292628", "semantic_write": { "attempted": true, "error": "OperationalError: unable to open database file", @@ -773,7 +773,7 @@ "orders_count": 20, "sqlite_path": "G:\\_codex-git\\nucleo-gestao-operacional\\central-de-ordem-de-servico\\projects\\15_repo_tudo-para-ia-mais-humana-platform\\controle-semantico.sqlite" }, - "status": "failed", + "status": "partial", "summary": [ "Active input orders materialized: 10.", "Next output orders materialized: 10.", diff --git a/dados/workspace-hygiene-central-write-status.json b/dados/workspace-hygiene-central-write-status.json index f217a27..c64aa96 100644 --- a/dados/workspace-hygiene-central-write-status.json +++ b/dados/workspace-hygiene-central-write-status.json @@ -6,6 +6,6 @@ "path": "G:\\_codex-git\\nucleo-gestao-operacional\\central-de-ordem-de-servico\\projects\\15_repo_tudo-para-ia-mais-humana-platform\\reports\\EXECUTADO__workspace-hygiene.md" } ], - "generatedAt": "2026-05-05T00:14:13+00:00", + "generatedAt": "2026-05-05T00:17:36+00:00", "ok": false } \ No newline at end of file diff --git a/dados/workspace-hygiene-report.json b/dados/workspace-hygiene-report.json index 9936101..a150ebe 100644 --- a/dados/workspace-hygiene-report.json +++ b/dados/workspace-hygiene-report.json @@ -2,12 +2,12 @@ "actions": [ { "action": "delete_directory", - "applied": false, + "applied": true, "deleted": false, - "error": "", + "error": "PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpnk6r4sdb'; PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpu13bzfhr'; OSError: [WinError 145] A pasta não está vazia: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp'", "footprint_after": { - "byte_count": 28178017, - "child_count": 295, + "byte_count": 0, + "child_count": 2, "errors": [ "PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpnk6r4sdb'", "PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpu13bzfhr'" @@ -17,8 +17,8 @@ "is_file": false }, "footprint_before": { - "byte_count": 28178017, - "child_count": 295, + "byte_count": 95706098, + "child_count": 1923, "errors": [ "PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpnk6r4sdb'", "PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpu13bzfhr'" @@ -27,9 +27,9 @@ "is_dir": true, "is_file": false }, - "note": "dry run; use --apply to remove approved artifact", + "note": "artifact retained by ACL or filesystem lock", "path": "G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp", - "status": "not_run", + "status": "blocked", "target_id": "python-test-temp" }, { @@ -59,17 +59,19 @@ "target_id": "node-dependencies" } ], - "apply": false, - "blockers": [], + "apply": true, + "blockers": [ + "python-test-temp:PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpnk6r4sdb'; PermissionError: [WinError 5] Acesso negado: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp\\\\tmpu13bzfhr'; OSError: [WinError 145] A pasta não está vazia: 'G:\\\\_codex-git\\\\tudo-para-ia-mais-humana\\\\.test-tmp'" + ], "central_platform_folder": "G:\\_codex-git\\nucleo-gestao-operacional\\central-de-ordem-de-servico\\projects\\15_repo_tudo-para-ia-mais-humana-platform", "clean": false, - "generated_at": "2026-05-05T00:14:13+00:00", + "generated_at": "2026-05-05T00:17:36+00:00", "project_root": "G:\\_codex-git\\tudo-para-ia-mais-humana", - "report_id": "workspace-hygiene-403852662979", - "status": "partial", + "report_id": "workspace-hygiene-899775401588", + "status": "blocked", "summary": [ "Targets evaluated: 2.", - "Apply mode: False.", + "Apply mode: True.", "Removed artifacts: 0.", "Already absent: 1.", "Artifacts still present: 1.", diff --git a/ecossistema/CENTRAL-MATERIALIZATION-REPORT.md b/ecossistema/CENTRAL-MATERIALIZATION-REPORT.md index c9432aa..4d84be1 100644 --- a/ecossistema/CENTRAL-MATERIALIZATION-REPORT.md +++ b/ecossistema/CENTRAL-MATERIALIZATION-REPORT.md @@ -1,8 +1,8 @@ # EXECUTADO - Central Materialization -- report_id: `central-materialization-755522481418` -- generated_at: `2026-05-05T00:14:12+00:00` -- status: `failed` +- report_id: `central-materialization-304164292628` +- generated_at: `2026-05-05T00:15:58+00:00` +- status: `partial` - project_id: `tudo-para-ia-mais-humana-platform` - project_root: `G:\_codex-git\tudo-para-ia-mais-humana` - central_platform_folder: `G:\_codex-git\nucleo-gestao-operacional\central-de-ordem-de-servico\projects\15_repo_tudo-para-ia-mais-humana-platform` diff --git a/ecossistema/WORKSPACE-HYGIENE-REPORT.md b/ecossistema/WORKSPACE-HYGIENE-REPORT.md index 4834cb0..e1d0b6d 100644 --- a/ecossistema/WORKSPACE-HYGIENE-REPORT.md +++ b/ecossistema/WORKSPACE-HYGIENE-REPORT.md @@ -1,17 +1,17 @@ # Workspace Hygiene Report -- report_id: `workspace-hygiene-403852662979` -- generated_at: `2026-05-05T00:14:13+00:00` +- report_id: `workspace-hygiene-899775401588` +- generated_at: `2026-05-05T00:17:36+00:00` - project_root: `G:\_codex-git\tudo-para-ia-mais-humana` - central_platform_folder: `G:\_codex-git\nucleo-gestao-operacional\central-de-ordem-de-servico\projects\15_repo_tudo-para-ia-mais-humana-platform` -- status: `partial` +- status: `blocked` - clean: `False` -- apply: `False` +- apply: `True` ## Summary - Targets evaluated: 2. -- Apply mode: False. +- Apply mode: True. - Removed artifacts: 0. - Already absent: 1. - Artifacts still present: 1. @@ -23,13 +23,14 @@ - path: `G:\_codex-git\tudo-para-ia-mais-humana\.test-tmp` - action: `delete_directory` -- status: `not_run` -- applied: `False` +- status: `blocked` +- applied: `True` - deleted: `False` - exists_after: `True` -- children_before: `295` -- bytes_before: `28178017` -- note: dry run; use --apply to remove approved artifact +- children_before: `1923` +- bytes_before: `95706098` +- note: artifact retained by ACL or filesystem lock +- error: `PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpnk6r4sdb'; PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpu13bzfhr'; OSError: [WinError 145] A pasta não está vazia: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp'` - footprint_errors: - `PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpnk6r4sdb'` - `PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpu13bzfhr'` @@ -48,4 +49,4 @@ ## Blockers -- Nenhum blocker de higiene local. +- `python-test-temp:PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpnk6r4sdb'; PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpu13bzfhr'; OSError: [WinError 145] A pasta não está vazia: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp'` diff --git a/matrizes/workspace-hygiene-targets.csv b/matrizes/workspace-hygiene-targets.csv index 19cbdd0..02813aa 100644 --- a/matrizes/workspace-hygiene-targets.csv +++ b/matrizes/workspace-hygiene-targets.csv @@ -1,3 +1,3 @@ target_id,path,action,status,applied,deleted,exists_after,children_before,bytes_before,error,note -python-test-temp,G:\_codex-git\tudo-para-ia-mais-humana\.test-tmp,delete_directory,not_run,no,no,yes,295,28178017,,dry run; use --apply to remove approved artifact +python-test-temp,G:\_codex-git\tudo-para-ia-mais-humana\.test-tmp,delete_directory,blocked,yes,no,yes,1923,95706098,PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpnk6r4sdb'; PermissionError: [WinError 5] Acesso negado: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp\\tmpu13bzfhr'; OSError: [WinError 145] A pasta não está vazia: 'G:\\_codex-git\\tudo-para-ia-mais-humana\\.test-tmp',artifact retained by ACL or filesystem lock node-dependencies,G:\_codex-git\tudo-para-ia-mais-humana\node_modules,verify_absent,not_found,no,no,no,0,0,,target already absent diff --git a/src/mais_humana/central_materialization.py b/src/mais_humana/central_materialization.py index 57eff81..fc80d90 100644 --- a/src/mais_humana/central_materialization.py +++ b/src/mais_humana/central_materialization.py @@ -33,6 +33,7 @@ class MaterializationStatus(str, Enum): CREATED = "created" UPDATED = "updated" EXISTS = "exists" + PARTIAL = "partial" FAILED = "failed" SKIPPED = "skipped" @@ -141,7 +142,10 @@ class CentralMaterializationReport: @property def status(self) -> MaterializationStatus: - if any(action.status == MaterializationStatus.FAILED for action in self.actions) or not self.semantic_write.ok: + central_failed = any(action.status == MaterializationStatus.FAILED for action in self.actions) or not self.semantic_write.ok + if central_failed and self.fallback_order_files and self.local_semantic_write and self.local_semantic_write.ok: + return MaterializationStatus.PARTIAL + if central_failed: return MaterializationStatus.FAILED if any(action.status == MaterializationStatus.CREATED for action in self.actions): return MaterializationStatus.CREATED diff --git a/tests/test_central_materialization.py b/tests/test_central_materialization.py index 4788650..4c54e7d 100644 --- a/tests/test_central_materialization.py +++ b/tests/test_central_materialization.py @@ -62,7 +62,7 @@ class CentralMaterializationTests(unittest.TestCase): report = run_central_materialization(project_root=project, central_platform_folder=central) - self.assertEqual(report.status, MaterializationStatus.FAILED) + self.assertEqual(report.status, MaterializationStatus.PARTIAL) self.assertGreaterEqual(len(report.fallback_order_files), 20) self.assertIsNotNone(report.local_semantic_write) self.assertTrue(report.local_semantic_write and report.local_semantic_write.ok)