{ "artifact": "RELEASE_MANIFEST", "GTI_FISCAL_VERSION": "1.3.15", "generated_at": "2026-09-28T22:00:00+00:00", "hub": { "version": "1.3.15", "api_compat": "1.0", "engine_version": "0.3.0", "decision_version": "mission-04c-ipi-ex-split" }, "agent_version": "1.3.8", "fiscal_engine": { "ENGINE_VERSION": "0.3.0", "DECISION_VERSION": "mission-04c-ipi-ex-split", "DECISION_ENGINE_VERSION": "fiscal-decision-v1", "PRODUCT_DEFAULTS_ENGINE_VERSION": "product-defaults-v1", "ICMS_CONTEXT_ENGINE_VERSION": "icms-context-v1" }, "migrations": { "alembic_head_in_repo": "0035_cfop_ippt_write_mode", "applied_revision": "0035_cfop_ippt_write_mode", "applied_revision_source": "0035_cfop_ippt_write_mode adds the cfop_ippt_write_mode column to Installation (revises 0034_reference_data_registry). Reconciled during Mission 8 merge.", "count": 34 }, "datasets_active": [ { "kind": "ANP", "sha256": "8271a80007548b01", "record_count": 1031 }, { "kind": "BA_ST_MVA", "sha256": "e07e9085952bc256", "record_count": 303 }, { "kind": "CEST", "sha256": "d7fb7e8da0ace051", "record_count": 1051 }, { "kind": "CFOP", "sha256": "c95c91ed1644fdd1", "record_count": 619 }, { "kind": "FCP", "sha256": "3079d088169003cf", "record_count": 27 }, { "kind": "NCM", "sha256": "3abc0d2eb2501bbd", "record_count": 15156 }, { "kind": "NCM_UTRIB", "sha256": "afc8bfc94c4f9575", "record_count": 10516 }, { "kind": "NFE_MOC_TABLES", "sha256": "5eb4cf2010b10b0b", "record_count": 96 }, { "kind": "RTC_BIOFUEL_INDEX", "sha256": "c49a011503657fc6", "record_count": 23 }, { "kind": "RTC_CBS_RATES", "sha256": "33f17aa3322de841", "record_count": 2 }, { "kind": "RTC_CCLASSTRIB", "sha256": "1448cb63a41bdb67", "record_count": 164 }, { "kind": "RTC_CCREDPRES", "sha256": "65f2461398b6c361", "record_count": 13 }, { "kind": "TIPI_IPI", "sha256": "d155f1baafb4039d", "record_count": 11103 } ], "note": "1.3.9: adds the ADMIN-only Contexto Fiscal section to the Agent detail page (central/app/fiscal_context_ui.py) - confirm/alter/clear the 3 real fiscal decisions field_contract cannot derive alone (icms_treatment/pis_cofins_profile/entry_scope, reduced from an original 5-item list by auditing real production data: icms_rate/credit_rate and rounding were proven NOT_APPLICABLE/ALREADY_DERIVED for this CRT=1 company and dropped). Persists through the existing FiscalContextEntry table, CSRF+RBAC+audit reusing the same mechanism as /agents/{id}/features. No schema change. Hub only - Agent unchanged, no new installer published this release. 1.3.10 (Missao 2 - fechamento de lacunas fiscais, read-only + UI/engine gated): PIS/COFINS's pis_cofins_profile context key now also accepts the literal sentinels NOT_APPLICABLE/OPERATION_TIME (central/app/context_keys.py + central/app/field_contract.py), resolving to NA only when explicitly recorded by an audited FiscalContextEntry - never inferred from emission statistics; sem decisao ADMIN, comportamento identico ao anterior (regression tests in central/tests/test_field_contract.py). CFOP_ENTRADA under an already-decided entry_scope=MIXED_OR_DYNAMIC now resolves to NA instead of MANUAL, so it no longer blocks product completeness or re-asks an already-answered question (same file, same gate, existing scope-required-first test unchanged). Contexto Fiscal UI: PIS/COFINS and CFOP_ENTRADA cards show the Bloco 2 cross-database evidence and a link to docs/dossie_contador.md (also published at central/static/docs/dossie_contador.md); entry_scope is now a dropdown of its 3 valid values. New read-only evidence artifacts: docs/runs/GTI_dryrun_universe_summary.json, docs/runs/BLOCO2_PIS_COFINS_CROSS_DB_V1.json, docs/fiscal_completeness_matrix.md, docs/dossie_contador.md, docs/AGENT2_UPGRADE_RUNBOOK_V1.md. No schema/migration change. No Firebird write anywhere (zero writes, confirmed by construction - the new dry-run scripts never open a write connection). Hub only - Agent code untouched; Agent 2 was upgraded 1.3.7->1.3.8 by a human operator on-site (no self-update mechanism exists - confirmed by code audit), no new Agent installer published this release. 1.3.11 (Missao 3, Bloco A/B/C): anonymized central/static/docs/dossie_contador.md (client business names replaced with generic labels A-E, no product names, no CNPJ/razao social - the previous 1.3.10 copy briefly exposed real client/product names in an unauthenticated static route) and refined its PIS/COFINS finding with Bloco B's read-only correlation analysis (docs/runs/BLOCOB_PIS_COFINS_SOURCE_V1.json): the ~9.5% CST=01 anomaly is confined to a single calendar month with no NCM/CFOP/CSOSN/ICMS-group correlation explaining it, consistent with a one-off technical/migration event rather than a deliberate rule. Also added (inert, unwired) agent/src/gti_fiscal_agent/cfop_ippt_auto_apply.py - a new typed write-capability core for CFOP/IPPT mirroring rtc_auto_apply.py's safety model (compare-before-write, stale-write guard, readback, rollback), fully unit-tested (14 tests) but NOT imported by run_agent_service.py and NOT activated - no Hub authorization/audit plumbing exists yet, no Agent version bump, no installer built, per explicit instruction not to publish this as active before review (see docs/CFOP_IPPT_WRITE_CAPABILITY_V1.md). No schema/migration change. Zero Firebird writes. Hub only - Agent code added but inert; published Agent version remains 1.3.8. 1.3.12 (Missao 4 / Bloco A.1 - prioridade maxima): central.app.field_contract.infer_role no longer infers OWN_PRODUCTION from a single C000032.TIPO=COMPOSICAO occurrence - requires a deterministic majority (>=70% of that product movement history, minimum 5 events); the ambiguous middle zone (30-70%) is UNKNOWN, never guessed. agent/src/gti_fiscal_agent/firebird_reader.py now counts COMPOSICAO vs other rows per product into ev[\"composed_ratio\"]; central/app/enrichment/api.py and fiscal_completion.py carry the new key through. Re-running the dry-run over Agent 2 real database after the fix: AUTO_FILL_SAFE CFOP/IPPT candidates drop from 12 to 3 (a beer misclassified from 1 composicao-vs-19-vendas occurrence no longer proposes a write). New docs/VERSIONING.md documents the already-existing independent Hub/Agent versioning (no behavior change). No schema/migration change. No Firebird write anywhere. Hub only - Agent code (firebird_reader.py) changed but this build does not touch the Agent installer/package; the currently published Agent (1.3.8) is unaffected until a future Agent release rebuilds from this source. 1.3.13: dossie_contador.md (internal + anonymized) updated with Bloco C findings (no XML stored anywhere - NFCE_ITENS is the real source); new docs/PISCOFINS_TRANSMITTED_SOURCE_V1.md and docs/NCM_27_BLOCKED_PRODUCTS_V1.md. No schema change. No Firebird write anywhere. Hub only. 1.3.14 (Missao 5 Fase 1/5): Reference Data Registry (migration 0034, additive only), new admin screen /admin/reference-datasets, P1 NCM confirmed current against the live official Siscomex source, feasibility studies for CCG/DF-e and purchase-XML reading. No schema change to any pre-existing dataset kind behavior. No Firebird write anywhere. Hub only. 1.3.15 (Missao 8): Real merge of feature/cfop-ippt-write into master. Reconciled agent/tests/test_cfop_ippt_auto_apply.py and release/RELEASE_MANIFEST.json. Alembic head unified at 0035_cfop_ippt_write_mode. Installation.cfop_ippt_write_mode remains strictly DEFAULT OFF (DISABLED). Zero Firebird writes." }