commit14
This commit is contained in:
@@ -1,5 +1,25 @@
|
||||
# Continuidade do desenvolvimento do SGC
|
||||
|
||||
**Último estado — sourcing preparado, demonstração parcial:** candidata **040fb0cb67a77d61**, manifesto `040fb0cb67a77d618011bc7ab365c53d3d4b1a787c4c0c0a2d54f315b3658e58`, [entrega/provas/recuperação](consultas-adjudicacao-sgf.md). Em 8039/55439/1:1:1 há fornecedores, três cotações e um avaliador por cotação; o fluxo completo foi confirmado **só nas cópias isoladas**. Proprietário recusou quarta conta e autorizou exactamente prepare ao ID 1, evaluate/propose ao ID 2; não conceder confirm, aprovação ao requerente ou escrita ao Consulta para completar o cenário. Requisição 1/100 MZN/versão 3 e reserva única intactas. Não declarar integração integral ou adjudicação concluída na demonstração.
|
||||
|
||||
Schema sourcing R1 é extensão auditada do ledger base R2. Código e schema/dados recuperam-se separadamente; simples rollback ao 166 não permite reabrir com o catálogo alterado. Backup privado antes da extensão em `private/sourcing-recovery/before.dump`, hash `cb9d55db5fee08cb36e3af4c962556b465be9e14071b5c3505c834d2ef4d7bcd`; journals nativos e prova de restauro das cópias preservados. Não usar down/truncate na demonstração nem executar plano SQL real. Valores diferentes da reserva e níveis superiores de aprovação estão bloqueados/sinalizados, não contornados. Implantação real/Tempo mantêm 0.1.1. Encomendas/recepção/pagamentos/contactos externos e revisão visual continuam separados; não repetir browser bloqueado ou suites aceites sem mudança relevante.
|
||||
|
||||
**Último estado — leitura Consulta corrigida e primeiro percurso fechado em 8039:** sucessora `OPERATIONAL-CANDIDATE-166e397e3ca63f02`, ZIP SHA-256 `620660d76329c800f3c6b18a521c03ccdadce09502d2a7744e1e91b77560f785`, manifesto `166e397e3ca63f02d3dc57651c8eecf50e1fc314410c78e05386b518d3a661de`. [Matriz/provas](transferencia-sgf.md). Não conceder direitos adicionais para leitura; Port::authorize permite somente view em registo já isolado. Requisição 1/100 MZN/versão 3 e reserva única preservadas; actualização→reversão→reaplicação conferidas, sem schema novo. A limitação 404 descrita historicamente abaixo foi resolvida. Próximo percurso escolhido: da requisição aprovada até cotações/comparação/adjudicação independente; mapear antes de implementar. Não declarar integração integral. Implantação real permanece adiada em 0.1.1, revisão visual separada. Recuperação desta correcção em `private/read-correction-recovery`; ID final de aplicação `3afbba5e3ed60b853d62b869`. Nenhum novo direito, conta ou DCL SQL.
|
||||
|
||||
**Último estado — demonstração autorizada e habilitada:** 8039/55439/base sgf_modules_dev_2576427d1939/contexto 1/1/1. Aplicados exactamente os 14 direitos aprovados; centro/dotação 10.000 MZN/2026 sintéticos; percurso e reserva única conferidos, independente ID 2 aprova preparação ID 1. [Entrega, provas e recuperação](demonstracao-requisicoes-8039.md). Não reexecutar bootstrap (fechado) nem provisionadores destrutivos. Nenhuma conta ou DCL SQL criada; preservada instalação real em 0.1.1. **Pendência concreta:** perfil Consulta tem view mas regra actual oculta requisições de terceiros (404); decidir âmbito de leitura antes de alterar regra/direitos, sem conceder aprovação/configuração como contorno. Sessão desta cópia agora file; owner/runtime mantido como limitação de demonstração. Revisão visual e implantação real continuam separadas. Registos de proposta pendente abaixo são históricos, sucedidos pela confirmação e execução exclusivamente sintéticas.
|
||||
|
||||
**Última orientação: não avançar com a instalação desactivada no destino real.** Próximo passo é a confirmação da [proposta única de ambiente sintético](proposta-desenvolvimento-sgf.md), reutilizando a instância existente 8039/55439, não criar outra. Nenhuma alteração funcional/SQL autorizada por esta proposta; não executar GRANT/REVOKE do plano real. Preservar `sgf_tempo_dev`, configuração Tempo e 0.1.1. Os registos de implantação real abaixo ficam adiados; valores sintéticos e contas existentes estão discriminados na proposta, sem obrigação de segundo administrador para esta demonstração.
|
||||
|
||||
**Estado actual — candidata corrigida, 02/11/2026:** os bloqueantes históricos de duas tabelas, preparação de centros/dotações e separação SQL foram resolvidos/ensaiados na candidata `OPERATIONAL-CANDIDATE-401ce31ae5f2dd20`. [Decisão actualizada](decisao-instalacao-sgf.md) e [prova de 157 controlos/restauro de 103 tabelas](proofs/sgf-corrected-delivery.json) prevalecem sobre o estado anterior abaixo. **Não instalar, activar nem executar GRANT/REVOKE sem confirmação separada**; SGF mantém 0.1.1. Proposta SQL concreta em `docs/proofs/sgf-corrected-sql-plan.json`, nunca aplicada no destino. Backup/restauro de dados reais e configuração nominativa continuam por realizar na janela autorizada. Não repetir suites aceites nem navegador bloqueado. Ver também o registo detalhado no final deste documento.
|
||||
|
||||
**Decisão de instalação sem execução — 02/11/2026:** proprietário escolheu decidir, não instalar. [Decisão](decisao-instalacao-sgf.md) e [inventário read-only](proofs/sgf-installation-decision-inventory.json): destino C:/laragon/www/sgf-tempo, PostgreSQL sgf_tempo_dev/127.0.0.1:55432, PHP 8.4.27, 87 tabelas, runtime sgf_dev_app sem DDL, cb/ir ausentes. Candidata 5fae7cf7f99c42ba/ZIP/hashes e ambos os plans conferidos sem aplicar. Não recomendar percurso operacional antes de fechar ligação migradora/DCL mínima e bootstrap de centros/dotações: interface selecciona fontes existentes e BudgetWorkspace depende de duas tabelas não entregues nesse schema. Catálogo funcional pronto em candidata não equivale a direitos runtime/admin já configurados; equipamento/peças não bloqueiam o recorte básico. Há só uma concessão administrativa da empresa, pendente regra de dois na entrega/activação. Navegação modular tecnicamente aceite em 02/11, separada de pendências visuais/associações/volume e da instalação de Compras. Sem repetir suites, criar backup, migrar, outorgar, parar/reiniciar serviço ou activar. Manter SGF 0.1.1. A decisão não autoriza executar a operação antes de confirmação nem ocultar as lacunas com fixtures/SQL de negócio.
|
||||
|
||||
**Reconciliação da entrega modular — 02/11/2026:** documentos próprios do SGF agora conferidos registam entrega técnica de navegação modular e conclusão de regressão/perfis (185/3.220, focados 8/90, três perfis sintéticos), com recheck de integridade datado de 02/11. As referências históricas seguintes a «sem resultado apresentado» ficam sucedidas por esta evidência e pela matriz: não reimplementar nem repetir suites por causa delas. Revisão visual, recargas, associações antigas e volume/paginação continuam separados. Esta retoma fez leitura/reconciliação documental, sem nova execução dos resultados reportados. Candidata de requisições não instalada, SGF permanece 0.1.1. Instalação continua a exigir decisão separada; esta reconciliação não a presume.
|
||||
|
||||
**Transição de bundles/caches nativos — 02/11/2026:** candidata `OPERATIONAL-CANDIDATE-5fae7cf7f99c42ba`, ZIP e hashes em [proofs/sgf-update-cache-delivery.json](proofs/sgf-update-cache-delivery.json). 32 controlos novos aprovados, sem suites anteriores repetidas: actualização com proveniência, arquivo/reposição do bundle anterior, falha/recuperação, ordem de reversão, nova tentativa com histórico, Artisan config/route/event cache nativos, compilação interrompida e cache inválido, CLI e reinícios efectivos de servidor isolado. `current.json` privado da implantação não é o ponteiro purchasing, que continua 0.1.1. Não adoptar bundle desconhecido nem migrar schema por arrasto. Acção cache exige manutenção/--offline; após rollback, voltar a compilar para a versão reposta e reiniciar os serviços próprios. Caches personalizados e gestores de serviços de cada cliente continuam a exigir procedimento compatível. Nenhuma aplicação no destino/publicação/concessão real. Próxima acção: revisão e decisão separada de instalação, não nova autorização por etapa técnica nem activação presumida. Reorganização modular permanece distinta e pendente.
|
||||
|
||||
**Aplicação/reversão do código — 02/11/2026:** `CodeDeployment` e `sgf-code-deploy.php` preparados para primeira instalação com manutenção/serviços parados, journal/backups, lock, verificação de hashes/baseline e restauro de código/caches padrão. 42 controlos novos aprovados via PHP fixado, sem DB/serviços/browser/suites antigas; [prova](proofs/sgf-code-deploy-delivery.json). Candidata `OPERATIONAL-CANDIDATE-10dce6cd57fa1f31`. Não activa configuração nem retira manutenção/reinicia serviços. Recusa caches personalizados e recuperação sobre alterações locais/caches posteriores. Não implementa ainda transição sobre bundle existente: não inferir updates integrais do novo percurso. Preservados SGF de destino 0.1.1 e artefactos anteriores. Próximo incremento: transição versionada e caches nativos/gestão de serviços em isolamento; nenhuma instalação ou activação no destino sem decisão separada. Reorganização modular permanece distinta e pendente.
|
||||
|
||||
**Arranque e HTTP SGF — 02/11/2026:** candidata `OPERATIONAL-CANDIDATE-4b25f81932efd69d` integra bundle/rotas pelo provider nativo e associa `purchasing_requisitions.view` à descoberta de Compras. Novo middleware mantém contexto/opção/âmbito/schema, módulo adquirido/seleccionado e geração de contexto; autoridade inicial administrativa permanece sem outorga automática. 27 controlos novos HTTP aprovados em instalação com código e dependências copiados, APP_ENV production, base/role próprias removidas; sem repetir suites aceites ou usar browser. [Prova](proofs/sgf-composition-delivery.json). Nenhuma aplicação no destino, ponteiro 0.1.1 e candidatas antigas preservados. Pendência seguinte: aplicação atómica/reversão das sobreposições/código e caches/reinício, antes de propor activação. Não declarar instalação comercial concluída nem confundir esta integração com reorganização modular posterior, que mantém entrega própria pendente.
|
||||
|
||||
**Composição operacional/preparação de schema — 01/11/2026:** candidata `OPERATIONAL-CANDIDATE-29687a1c9bc0e0b5`, sem instalação no SGF. `scripts/prepare-sgf-operational.php` prepara artefacto; `scripts/sgf-internal-install.php` distingue plan read-only e migrate transaccional de schema, com destino/manifesto/backup conferidos, contrato orçamental e journal imutável. Mesmo motor e permissões, novo ramo operacional por destino/schema/âmbito explicitamente habilitados, sem obrigar nome de base QA ou ambiente de ensaio. 20 controlos novos + restauro em production/base não-QA aprovados em [proofs/sgf-operational-delivery.json](proofs/sgf-operational-delivery.json), sem repetir suites aceites. Não confundir preparação de schema com activação: não alterou código/provider/rotas/concessões/dados no SGF instalado; ponteiro 0.1.1 e candidatas anteriores preservados. Próximo passo é composição de arranque/rotas e prova HTTP numa cópia isolada. Não executar migrate no destino, activar 0.1.2/outra versão ou publicar sem a decisão separada. Reorganização modular mantém-se distinta e sem resultado próprio apresentado.
|
||||
@@ -533,3 +553,112 @@ Próxima acção: diagnosticar elegibilidade de encaminhamento para cada etapa a
|
||||
**Autorização/entrega interna sem factura (01/11/2026):** migração48 eventos instalada só8005 com backup/restauro108 tabelas preservadas. /stock/requisicoes/{id} imprime requisição e entregas; submit, authorize/reject, deliver parcial/integral e receive. Tarefas review departamental independente e deliver+warehouse semgrants; requisitante não aprova/entrega, aprovador não entrega. Parcial aceite na submissão e autorizado. Cada entrega chama StockWorkflow issue; evento/auditoria/movimentos atómicos, repetição/versão controladas; recepção não movimenta stock.85testes/495asserções e PG12/122+2disputas reais passaram; geral a concluir. Reserva exclusiva e compra automática ainda NÃO implementadas, UI explícita. Não declarar CA01–09/totalidade proposta. Cancelamento, versão, delegação, avisos novos e destinatário alternativo pendentes. proofs/warehouse-fulfilment-install.json.
|
||||
|
||||
**Verificação final da autorização/entrega:** bateria geral908 testes/906 passaram/2ignorados/9508 asserções, sem falhas. PostgreSQL12/122 e2disputas reais já descritos; prova consolidada docs/proofs/warehouse-fulfilment.json. O acesso operacional exige atribuição explícita das tarefas warehouse_request_prepare/review/deliver e, para entregar, warehouse. Sem atribuições automáticas. Não se confundem estes resultados com reserva exclusiva ou geração automática de compras, que continuam pendentes.
|
||||
|
||||
**02/11/2026 — Reserva e reposição parametrizada concluídas neste incremento:** migração49 instalada só na avaliação8005, diário warehouse_reservations imutável;109 tabelas preservadas por backup/restauro conferidos. Autorização reserva stock utilizável livre; entrega consome a reserva e o StockWorkflow atomicamente; revisor pode actualizar reserva ou cancelar apenas o saldo. Saídas, transferências, correcções, devoluções/abates e estornos protegem os compromissos. Retenção/validade pode criar défice, que impede a entrega; não remover controles de qualidade para satisfazer a reserva. Autorizações antigas precisam de actualização explícita da reserva.
|
||||
|
||||
/stock/reposicao no menu Armazém e activos: supply_prepare prepara regra por artigo/armazém, supply_review activa/suspende com independência de todos os preparadores. Requisitante e centro são parametrizados conforme autorização expressa do proprietário, sem pessoas/valores fictícios. Política/catálogo/acordo/tributação reutilizados; peças exigem equipamento compatível. Gera só rascunho canónico, com executor real auditado e requisitante designado, sem impersonação, submissão, aprovação, orçamento, encomenda ou factura automática. Origem/local/equipamento visíveis na requisição gerada. Necessidade pendente quando falta configuração, fonte válida, destino ou estimativa. Reposição ligada em curso evita duplicação; rejeição não se recria pela mesma regra. Preservar as aprovações e o motor comum; não voltar a tratar compromisso físico como reserva planeada.
|
||||
|
||||
Provas: geral920/918 passaram/2 antigos ignorados/9620 asserções; PG24/232 mais3disputas reais (incluindo activação concorrente com um rascunho); tipos/lint/build/análise PHP/18 hashes e HTTP de consulta passaram. docs/proofs/warehouse-replenishment.json e warehouse-reservations-install.json. A porta8005 estava desligada e foi retomada com a configuração/base existentes. Sem dados sintéticos/grants e sem prova visual por capturas. Estes resultados substituem a pendência histórica de reserva/compra automática; não significam que toda a proposta esteja concluída.
|
||||
|
||||
Próximos incrementos concretos: avisos/tarefas do próprio armazém; fila durável e recuperação de sinal após interrupção, com varrimento de validade/mínimo sem evento; prioridades e prazos de expiração parametrizados; reserva após nova entrada continua a exigir intervenção explícita do revisor. Não introduzir prioridades, datas ou destinatários presumidos. Vendas e facturação continuam reservadas à composição SGF.
|
||||
# Continuidade — candidata SGF corrigida em 02/11/2026
|
||||
|
||||
**Não instalar nem activar por continuidade implícita.** Proprietário autorizou apenas preparação isolada; SGF destino `C:\laragon\www\sgf-tempo`, base `sgf_tempo_dev` em `127.0.0.1:55432`, mantém pacote 0.1.1. Candidata actual `OPERATIONAL-CANDIDATE-401ce31ae5f2dd20`, ZIP SHA-256 `59dbdc64c4d9f14dfb4025a6177b829d136a4e2cb633ca036b10b5ae3197e703`; [decisão actualizada](decisao-instalacao-sgf.md) prevalece sobre os bloqueantes históricos.
|
||||
|
||||
Resolvidos na candidata: duas tabelas UI (migração revisão 2, 16 novas), preparação de centros/dotações por API/interface e catálogo administrativo/frontend. 157 controlos aprovados numa reprodução de estrutura actual com roles distintas; recuperação de 103 tabelas conferida. Não repetir suites aceites sem motivo novo. Proposta SQL em `docs/proofs/sgf-corrected-sql-plan.json` exige confirmação antes de qualquer GRANT/REVOKE real; instalador nunca a executa. Usar ligação migradora temporária, runtime sem CREATE/ownership; não colocar segredos no bundle/.env persistente.
|
||||
|
||||
Próximo passo: decisão explícita de instalação técnica desactivada com pacote/hashes e SQL concretos. Na janela aprovada, backup/restauro dos dados reais em base nova, planos reconferidos, migração e código/caches com procedimentos de recuperação distintos; não usar `sgf.ps1 stop` (pára cluster partilhado). Configuração real/dotações e dois administradores continuam requisitos para activação; fixtures nunca vão para cliente. Sem publicação, alteração de direitos públicos funcionais ou contratação para terceiros. Preservar alterações locais em curso e a aceitação própria da navegação modular.
|
||||
|
||||
|
||||
|
||||
### 02/11/2026 ? candidata SGF utiliz?vel, ainda n?o instalada
|
||||
|
||||
Conclu?das depend?ncias or?amentais de interface, administra??o pelo cat?logo nativo e prepara??o de centros/dota??es. Candidata 401ce31ae5f2dd20, schema revis?o 2; 157 controlos integrados + 17 React/render/assets + 54 deployment. Restauro efectivo de 103 tabelas e actualiza??o/recupera??o de c?digo sobre dados sint?ticos verificados. Ver docs/transferencia-sgf.md e a proposta revista no SGF. N?o executar a proposta antiga 5FAE. SGF continua 0.1.1, sem tocar em sgf_tempo_dev ou conceder direitos; instala??o/configura??o e mapa SQL s? para decis?o posterior. Preservar trabalho paralelo; equipamento/pe?as fora, revis?o visual/associa??es antigas/volume-pagina??o pendentes.
|
||||
|
||||
**Avaliação geral de02/11/2026:** base funcional ampla, em consolidação para piloto/configuração e posterior entrega comercial. Revalidados33 testes/314 asserções,18 hashes e HTTP de reposição/avisos/relatórios de Pessoas/CSV. A geral918 aprovados é evidência anterior, não repetida nesta avaliação. Prioridade: recuperação durável da reposição após falhas e varrimento agendado; depois paginação das listas actualmente limitadas a100, avaliação de volume e parametrização das etapas ainda fixas. Completar tarefas/avisos de armazém e aceitação por perfis/impressão. Sem revisão visual completa ou certificação de produção. Não confundir candidata/demonstração SGF com instalação real, nem declarar a proposta integralmente concluída.
|
||||
|
||||
**Consolidação para piloto — reposição,02/11/2026:** prioridades1–3 implementadas. Migração50 replenishment_work instalada só8005, backup/restauro110tabelas preservadas, sem contas/grants. Sinal durável atómico com alteração física; rascunho/origem/checkpoint atómicos; recuperação após interrupção e dois trabalhadores concorrentes não duplicam compra. ReplenishmentRun restringe execução a CLI/empresa/trabalho/SGC, sem login ou conta sintética; auditoria identifica execução periódica e atribuição do responsável de origem. Revalida regra/requisitante/centro/contexto/destino e mantém todas as aprovações.
|
||||
|
||||
sgc:replenishment-tick descobre origens existentes e reavalia trabalhos vencidos; agendador por minuto, intervalo técnico persistido por trabalho por defeito5minutos. Validade/mínimo não dependem de novo movimento. Auxiliar scripts/replenishment-evaluation.php ligado à base de avaliação existente e observado em passagens sucessivas, integrado no arranque dev; não instalou serviço de arranque Windows nem alterou produção. Depois de reinício, retomar desenvolvimento/auxiliar; não provisionar outra base.
|
||||
|
||||
/stock/reposicao: paginação independente de regras/necessidades/histórico/trabalhos interrompidos, filtro, pendências primeiro, indicação da última passagem conhecida e recuperação explícita só para supply_prepare/review. Actualizar não cria aprovações; admin de consulta não recupera. Sem revisão visual completa. Acompanhamento adicional das reservas e validação com utilizadores existentes são a fase seguinte; roteiro preparado em desenvolvimento.md, ainda não executado por pessoas reais.
|
||||
|
||||
Provas NOVAS: regressão198/1579, final reposição18/155, PG33/310+4disputas, tipos/lint/build/análise/18hashes/HTTP passaram; docs/proofs/replenishment-pilot.json e replenishment-recovery-install.json. Não somar suites sobrepostas nem apresentar33/314 e918+2 históricos como execução nova. SGF real continua0.1.1; candidatura/transferência e identidade adicional mantêm as autorizações próprias, sem instalação nem criação neste incremento. Preservar trabalho paralelo no repositório.
|
||||
|
||||
**02/11/2026 — acompanhamento de reservas concluído neste incremento:** /stock/requisicoes tem tarefas por perfil (autorizar/reservas/entregas/recepções), pesquisa/filtros antes da paginação e contagens completas do âmbito. WarehouseWorkdesk é projecção de leitura dos diários existentes; estados conferidos contra progress(), sem outro motor ou concessão paralela. Detalhe mostra saldo sem reserva, qualidade/origem a conferir e pessoas elegíveis actuais; falta de responsável fica visível, sem atribuição automática. Entrega continua independente, com reserva/stock revalidados. Recepção permanece pendente após cancelar só o saldo; consulta/recepção não lançam saída.
|
||||
|
||||
Proprietário esclareceu: desenvolvimento/validação seguem com contas sintéticas, sem pessoas reais nesta fase. AGENTS.md actualizado. A avaliação persistente mantém contas/perfis/competências existentes; ensaios com actores/perfis suplementares só em bases descartáveis. Não voltar a exigir participantes reais para prosseguir nesta etapa. Isto não autoriza a identidade adicional do SGF nem instala candidatas no destino0.1.1.
|
||||
|
||||
Provas NOVAS: regressão111/1008, final18/326, PG38/517+3disputas, tipos/lint/build/análise/18hashes e HTTP passaram. docs/proofs/warehouse-workdesk.json e ficheiros -pg/-http. Sem migração ou concessões; sem bateria geral repetida, aceitação real ou revisão visual completa. Próximos incrementos mantêm validação sintética e qualquer expiração/prioridade/notificação persistente depende de configuração explícita dos efeitos. Preservar o trabalho paralelo e a separação Compras autónomo/SGF.
|
||||
|
||||
**02/11/2026 — diagnóstico e ensaio integrado do piloto:** /stock/piloto é consulta administrativa, sem efeitos operacionais, com sete conferências e contas/tarefas elegíveis. Verifica independência real de três intervenientes, centro/âmbito, catálogo actual, regras activas/fontes, serviço recente e trabalhos pendentes; distingue condições de ensaio de configuração comercial concluída. Reutiliza inspectRule/validação canónica sem locks de escrita. Telemetria partilhada via ReplenishmentQueue::status não aceita registo antigo/danificado como confirmação de serviço.
|
||||
|
||||
Ensaio sintético integrado percorreu pedido125/reserva120/entrega100, entrada física108 de ordem já emitida, reforço autorizado5, entrega25 e recepção: pedido encerrado, stock103, reserva0, uma requisição automática ainda rascunho, sem factura interna, aprovação ou orçamento automáticos. Não confundir origem física preexistente com execução do novo rascunho. Só bases descartáveis, sem pessoas reais ou novas concessões na avaliação.
|
||||
|
||||
Provas NOVAS53/705, final8/142, PG46/659+3disputas, tipos/lint/build/análise/18hashes/HTTP; docs/proofs/warehouse-pilot-readiness.json e respectivos -pg/-http. Na avaliação8005:12contas existentes; instalação/serviço conferidos, mas tarefas, catálogo, regras de reposição e configuração própria ainda a preparar. Não declarar cliente/piloto integralmente pronto nem activar perfis/valores por inferência. SGF real0.1.1 e proposta da identidade adicional continuam separados, sem instalação/autorização nova. Evidências anteriores e ausência de revisão visual completa preservadas.
|
||||
|
||||
**02/11/2026 — diagnóstico exportável:** /stock/piloto.csv exporta as conferências datadas em UTF-8/CSV, só para administração, usando a mesma inspecção read-only. Não exporta contas nem activa configurações. Interface inclui imprimir, ainda sem revisão visual de impressão.10testes/161asserções, tipos/lint/build/análise/18hashes e HTTP passaram; docs/proofs/pilot-export.json. Manter as configurações pendentes explícitas e a validação sintética; não apresentar exportação como aprovação ou aceitação comercial. SGF e contas/perfis persistentes preservados.
|
||||
|
||||
**02/11/2026 — ligação de entregas do armazém para integração:** WarehouseExchange, GET /stock/integracao/entregas e contrato integrations/contracts/warehouse-fulfilment-v1.json. Só leitura autenticada dos factos deliver/receive já registados; reutiliza RA, destino, equipamento, intervenientes e stock_operation_id, sem nova saída ou factura. Cursor incremental cifrado liga empresa/conta/contexto/departamento/competências; mudar âmbito exige reiniciar. Paginação preserva eventos antigos e permite novas consultas depois do fim. Consumidor deve persistir factos+cursor atomicamente e deduplicar por instalação de origem/empresa/idempotency_key; hash divergente exige reconciliação. Não usar feed como saldo actual ou réplica do motor de stock; estornos continuam no percurso próprio.
|
||||
|
||||
Provas NOVAS41/523 na regressão dirigida e10/83 do subconjunto novo em PostgreSQL descartável; formatação/análise PHP/18hashes/HTTP passaram. Provas warehouse-exchange[-pg/-http].json. Avaliação8005 devolveu zero factos na primeira página; percursos com entregas/equipamento foram sintéticos em testes. Sem contas/grants/migrações, build ou revisão visual nova, nem instalação SGF (real0.1.1 preservado). Não somar suites sobrepostas nem confundir com a bateria geral histórica. Próxima ligação deve consumir o contrato e reutilizar os motores/fontes existentes; autenticação técnica remota e confirmação persistente do consumidor ainda não fazem parte deste incremento. Contratos de Pessoas continuam com formalização/RH próprios; não exportar rascunhos como contratos formalizados. Ver desenvolvimento.md para contrato e limites exactos.
|
||||
|
||||
**02/11/2026 — receptor durável de entregas preparado:** packages/integration (WarehouseFeed/WarehouseInbox/WarehousePull), carregável sem Laravel. Duas definições de tabela para migração explícita do destinatário; nenhum schema instalado em aplicações persistentes. Origem+empresa de origem+empresa local+evento deduplicam factos; geração de leitor mantém checkpoint próprio. Recepção e cursor confirmados atomicamente, com versão/cursor de comparação. Retry exacto após commit sem confirmação é reconhecido; conflito/alteração de conteúdo/página antiga não avança. Recepção exige entrega original reconciliada, sem outra saída, factura ou aprovação.
|
||||
|
||||
Leitura por lotes reutiliza consulta autenticada fornecida pelo host; falha preserva páginas anteriores e execução posterior retoma. Não há transporte remoto, credenciais técnicas, agendador ou projecção funcional do destinatário activados. Mudança de âmbito na origem pode usar nova geração técnica de leitor preservando factos/checkpoint anterior, sem criar outra conta. Exemplo e limites em packages/README.md e desenvolvimento.md. Cursor da origem agora resume permissões por hash para caber mesmo com perfil completo; os antigos exigem reinício de leitura, sem alterar eventos/chaves.
|
||||
|
||||
Provas NOVAS56/628 na regressão dirigida;25/188 em PostgreSQL descartável, duas contenções reais (mesma página/páginas diferentes) e processo terminado após commit antes da confirmação, retomado sem duplicar. Formatação/análise PHP/18hashes/HTTP passaram. warehouse-inbox.json, warehouse-inbox-pg.json e warehouse-exchange-http.json; logs warehouse-inbox-regression.txt/warehouse-inbox-pg.txt. Suites sobrepostas, sem bateria geral/build/revisão visual nova. Preservados dados/perfis persistentes e SGF real0.1.1; identidade adicional continua sem autorização. Próximo recorte é transporte/configuração do host e reconciliação autorizada de vínculos, preservando o motor único e distinguindo diário recebido de projecção de stock/contabilidade e de instalação efectiva.
|
||||
|
||||
**02/11/2026 — consulta HTTP autenticada implementada:** WarehouseHttpSource/WarehouseTransportFailure ligam WarehousePull ao endpoint fixo da origem através de sessão já autorizada. Não fazem login, contexto, contas ou grants. Origem HTTPS, Cookie por fornecedor protegido, query codificada, sem redirects e com verificação TLS/limites de tempo/tamanho; HTTP só em loopback explícito para desenvolvimento. Erros sanitizados distinguem expiração/âmbito/cursor/falha técnica e preservam o checkpoint. Não gravar cookies ou colocar credenciais em URLs/argumentos/logs.
|
||||
|
||||
Provas NOVAS75/746 na regressão dirigida;44/306 em PostgreSQL descartável +2contenções reais e saída de processo após commit/antes de confirmação; formatação/análise PHP/18hashes passaram. Prova nativa cURL contra8005 reutilizou sessão sintética existente por stdin privado e receptor SQLite em memória: cursor válido e consulta sem sessão recusada,0factos na primeira página. warehouse-http-source[-pg/-http].json e logs respectivos; sem dados ou direitos empresariais persistentes alterados. Sem build/bateria geral/revisão visual/TLS comercial novo.
|
||||
|
||||
Transporte de sessão preparado, não API técnica permanente nem integração comercial activada. Próximas lacunas: configuração administrativa/armazenamento e renovação protegidos no host, eventual autenticação técnica restrita, agendamento e reconciliação/projecção autorizada no destinatário. Não duplicar motores ou inferir implantação. SGF real0.1.1 e identidade adicional continuam sob as autorizações existentes, sem instalação/conta nova. Documentação de ligação e limites em packages/README.md/desenvolvimento.md.
|
||||
|
||||
**02/11/2026 — integração desta etapa é interna ao SGC, conforme resposta expressa do proprietário:** AGENTS.md actualizado. Priorizar as ligações funcionais e a reutilização entre módulos, sem pressupor instalação/integração com SGF ou novos acessos externos. InternalSupplyTrace integra no detalhe do armazém necessidade→compra→aprovação pendente→encomendas→recebimentos, com ligação inversa da compra ao pedido permitido. Sem novas tabelas/formulários/credenciais ou cópia de documentos; impressão interna preservada, sem factura.
|
||||
|
||||
Última versão que mencionou a origem define as compras historicamente ligadas; a situação actual do artigo/armazém é separada. Não atribuir compras futuras ao pedido já fora dessa origem. Reposição partilhada não equivale a afectação exclusiva nem a stock livre/utilizável. Entradas/estornos são lidos das fontes actuais; actualização de reserva é intervenção explícita no formulário existente, por pessoa elegível. WarehouseWorkdesk::canView centraliza acesso ao detalhe e às ligações; processos de compra invisíveis não revelam referências/valores. Aprovações, qualidade, stock e perfis mantêm os motores existentes.
|
||||
|
||||
Provas NOVAS52/668 na regressão dirigida e7/105 em PostgreSQL descartável, incluindo piloto parcial/entrada de ordem preexistente/reserva/conclusão. Não somar suites sobrepostas. Teste documental de encomenda/recepção e estorno simulado verifica a projecção; não declarar que o novo rascunho percorreu adjudicação/encomenda ou que o motor de estornos foi integralmente reexecutado. Tipos/lint/build/análise PHP/18hashes e HTTP conferidos;0pedidos persistentes disponíveis para inspecção do detalhe em8005, com detalhes exercitados nas bases de testes. Sem revisão visual completa/bateria geral/migração/contas/grants/dados empresariais persistentes novos. Provas internal-supply-integration[-pg/-http].json e logs respectivos. SGF real0.1.1 e trabalho paralelo preservados. Continuar a cobertura interna por percursos concretos, sem apresentar o conjunto de propostas como concluído.
|
||||
|
||||
**02/11/2026 — listas de tarefas ligam os módulos internos:** /requisicoes/tarefas reúne rascunhos/aprovações de compra e decisões/reservas/entregas/confirmações de armazém; /pessoas/tarefas reutiliza PeopleWorkdesk e a equipa atribuída, mantendo a área separada. Novas entradas As minhas tarefas. WorkflowTaskInbox delega a autoridade aos motores actuais e abre os formulários originais; não cria outro workflow, tabela, prazo, pessoa ou concessão. Consulta não decide nem marca avisos como lidos. Facturas/consulta/adjudicação e fases ainda não cobertas conservam os seus percursos; não declarar o catálogo inteiro concluído.
|
||||
|
||||
Entrega bloqueada permanece como atenção; cada recepção tem tarefa/âncora própria, incluindo após cancelamento apenas do saldo. Confirmar uma entrega retira só a sua tarefa, sem novo movimento. Autorizar próprio pedido/entregar o que se autorizou continuam impedidos; administração de consulta/manutenção não recebem tarefas de execução. Empresa, departamento, contexto, competência e vigência de equipa continuam efectivos. Ordenação/paginação sobre o âmbito autorizado completo, sem corte global100 nem prioridade organizacional inventada.
|
||||
|
||||
Provas NOVAS60/925 na regressão dirigida;15/362 em PostgreSQL descartável, incluindo8testes novos. Tipos/lint/build/análise PHP/18hashes/HTTP passaram. A conta sintética administrativa da avaliação8005 viu0tarefas em cada área; pendências e intervenções reais do ensaio apenas nas bases descartáveis. workflow-task-inbox[-pg/-http].json e logs respectivos. Não somar suites sobrepostas, nem contar a bateria geral/contenções anteriores como repetidas. Sem revisão visual completa/migração/contas/grants/dados empresariais persistentes; SGF0.1.1 e trabalho paralelo preservados. Continuar pelas funcionalidades internas em falta, usando fontes/motores existentes e mantendo Compras/Pessoas separados.
|
||||
|
||||
**02/11/2026 — Finanças integrada no percurso interno:** a factura reutiliza as linhas congeladas da encomenda (unidade/preço/IVA); só referências, quantidades e novos dados do documento são introduzidos. Totais independentes, limites de recepção/devoluções/estornos, arredondamento, conflitos e validação por outra pessoa permanecem nos motores existentes. As minhas tarefas acrescenta Finanças para facturas e conferências de pagamentos externos; projecções de elegibilidade comuns às listas/formulários, decisões revalidadas no servidor. Catálogo de tarefas dos perfis actualizado dentro da competência financeira existente, sem concessões novas ou granularidade fictícia.
|
||||
|
||||
Focos por factura/encomenda e pagamento/factura preservam contexto e paginação; compra → encomenda → factura → registo externo usa documentos originais e ligações concretas. Empresa, independência, manutenção e conflitos continuam efectivos. Tarefa não revela referências/evidências/contas e não produz decisão. Revisão de pendentes importados continua sujeita a activação e competência específica pa_access/validate; não há saldo alternativo quando o núcleo está indisponível. Mudança bancária permite rejeitar, mas confirmação continua bloqueada até nova conferência válida. Não há transferência bancária, segunda dívida, factura de saída interna ou ligação nova ao SGF.
|
||||
|
||||
Provas novas: regressão 81/800; autoridade/integração financeira e catálogo 23/357; teste corrigido de activação isolado em SQLite 1/6. Tipos/lint/build/análise PHP/18 hashes e seis consultas HTTP8005 passaram. Facturas visíveis 1, pagamentos/tarefas 0 nas contas administrativas/financeiras existentes; pendências e decisões exercitadas só nas bases descartáveis. Prova PostgreSQL e artefactos de resumo acrescentados após conclusão abaixo. Sem bateria geral/revisão visual completa/migração/contas/grants/decisões persistentes; SGF real0.1.1 preservado. Consulta de pagamentos conserva auditoria de acesso. Continuar pelas fases internas ainda não representadas na lista de tarefas (consulta ao mercado, avaliações/adjudicação e execução contratual), sem substituir os motores ou confundir cobertura parcial com produto concluído. O piloto persistente continua dependente de parametrização explícita; não inventar responsáveis, artigos publicados, mínimos ou centros de custo.
|
||||
|
||||
Prova PostgreSQL final:83/623 aprovados, base descartável removida. Após limite120s e correcção do pressuposto de ambiente num teste antigo, execução integral aprovada com limite300s; não contar tentativas anteriores como aprovações. Artefactos finance-integration[-pg/-http].json e logs correspondentes. Continuar para consulta ao mercado/adjudicação usando as autoridades existentes.
|
||||
|
||||
**02/11/2026 — adjudicação/emissão ligada às tarefas:** PurchaseWorkflow::canDecide é a fonte da etapa final actual, incluindo congelamento por cancelamento pendente e exclusão da manutenção. canIssue partilhado por formulário/lista projecta elegibilidade para conferir a emissão após aprovação, sem prometer base válida ou executar a ordem. O comando revalida matriz/propostas, aprovações, conflitos, regras, datas e orçamento; proposta expirada mantém conferência pendente mas impede emitir. Após emissão real a tarefa desaparece. Catálogo dos perfis explica adjudicação/emissão sem concessão nova. Atribuição expirada sem outro acesso continua a produzir403, não uma lista vazia autorizada.
|
||||
|
||||
Quatro testes novos em PostgreSQL descartável (4/217) passaram: selecção real com três propostas/avaliações, três etapas e emissão, cancelamento/rejeição, leitura sem efeito, manutenção/expiração e validade da proposta. Base removida. Tipos/lint/build/análise PHP/18hashes e HTTP dos três perfis existentes passaram;0tarefas locais de Compras/adjudicação em todos. Provas award-task-integration-pg.json, award-task-integration-http.json e logs respectivos; resumo/regressão final abaixo. Sem revisão visual/bateria geral/migração/contas/grants/decisões persistentes/alteração SGF0.1.1. A projecção não cria avisos persistentes da adjudicação. Próxima cobertura interna: tarefas da consulta ao mercado e avaliações, extraindo/reutilizando a autoridade actual antes de acrescentar linhas à lista; depois execução contratual. Não copiar guardas para um segundo workflow nem inventar responsabilidades, prazos ou regras de cliente.
|
||||
|
||||
Regressão final aprovada:98/2070 (adjudicação/ordens, tarefas e requisições internas), com expectativa de expiração corrigida e repetição integral. Provas award-task-integration[-pg/-http].json; PostgreSQL4/217, teste isolado1/32. Suites sobrepostas, não somar. Não houve revisão visual completa nem execução da bateria geral.
|
||||
|
||||
**02/11/2026 — consulta ao mercado integrada:** QuotationParticipation é autoridade comum a formulário/tarefas/comandos; competências recarregadas sob bloqueio da empresa. Pendências: propostas em falta pelos mínimos preservados, avaliações elegíveis enquanto falta o mínimo qualificado, impedimentos da comparação e conferência do resultado na adjudicação. Não seleccionar/aprovar automaticamente nem reabrir consulta encerrada por adjudicação rejeitada. Proposta exacta por quotation_id, preparação existente por prepare=1; origem validada e história/cache protegidos. Avaliações históricas não são substituídas quando o avaliador perde competência; a comparação reavalia qualificação. Sem prazos/pessoas/minímos inventados.169/2924 na regressão dirigida;11/353 em PostgreSQL descartável. Tipos/lint/build/análise PHP/18hashes/HTTP passaram;0tarefas locais nos três perfis. Provas quotation-task-integration[-pg/-http].json. Sem novas contas/grants/decisões persistentes/bateria geral/revisão visual/alteração SGF0.1.1.
|
||||
|
||||
**Diagnóstico antes de activar perfis:** OrganizationActivationPreview na Parametrização compara competências actuais/perfis, preparação implícita, contextos, manutenção, tarefas e administradores. Reutiliza os mesmos resolvedores de OrganizationAccess/WorkContext e o contador de administradores do comando real; consulta consistente sem concessões/activação.6/101 novos,89/1394 regressão dirigida,19/215 PostgreSQL descartável e HTTP8005 passaram. Tipos/lint/build/análise PHP/18hashes conferidos. Provas organization-activation-preview[-pg/-http].json. Suites sobrepostas: não somar.
|
||||
|
||||
**Próximo passo concreto sujeito a autorização:** diagnóstico local8005 versão1 tem12contas sintéticas,0perfis/atribuições,0administradores permanentes configurados e alçadas provisórias. Activação directa não é permitida pelos controlos existentes. Proposta pendente em docs/proofs/pilot-access-proposal.json e secção final de desenvolvimento.md: preservar funções/contextos/preparação implícita das12contas,11perfis (6base+5tarefas), manter administradores6/8; tarefas adicionais9requisitar,10autorizar,13entregar,11preparar reposição,12conferir reposição. Confirmar somente no piloto as mesmas alçadas25.000/150.000MZN comIVA, sem alterar valores; preservar IVA16%, processos/histórico/pa_access e SGF. Não criar pessoas reais/contas novas, publicar artigos, definir mínimos ou executar negócio. Substituição da autoridade de acesso requer escolha explícita e auditada (AGENTS.md). Proposta preparada sem aplicação, ensaio exclusivamente descartável em PilotAccessProposalTest; resultados finais anexados abaixo. Antes de aplicar após eventual autorização, conferir novamente a origem/versão e preservar os dados; nenhuma autorização do SGF decorre daqui.
|
||||
|
||||
Proposta concreta ensaiada e pronta para decisão:SQLite1/156 ePostgreSQL1/156 aprovados, com os mesmos comandos do produto e sem aplicação local.11perfis/12atribuições, dois administradores existentes e cinco tarefas adicionais, sem perdas ou mudança de âmbito/pa_access/processos. Provas pilot-access-proposal-dry-run.json e pilot-access-proposal-pg.json. A proposta e a activação8005 continuam pendentes de autorização expressa; não confundir a simulação com mudança persistente. Próxima intervenção dependente: confirmar a autorização do proprietário e verificar novamente versão/origem antes de aplicar a distribuição concreta. Outras funcionalidades não ficam declaradas concluídas por este pedido de autorização.
|
||||
|
||||
## 02/11/2026 — continuidade da devolução de excedente
|
||||
|
||||
Percurso nativo implementado e ensaiado em base própria; ver docs/warehouse-unused-return.md. Manter stock_returns.enabled=false fora da QA e competências warehouse_return_* sem concessões por arrasto. Reutilizar entrega e recepção originais, confirmação independente, escritor único e auditoria; não acrescentar devolução ao formulário genérico nem confundir declaração de excedente com consumo técnico SGF. Provas válidas consolidadas36/544, sem necessidade de repetir suites inalteradas. Consulta conjunta da história51/páginas25 usa3SELECTs centrais; não é ensaio de carga.
|
||||
|
||||
Continuam separadas implantação/composição operacional, revisão visual, carga de escrita e eventual regra de previsão líquida. A média histórica actual é por saídas brutas; devolução altera saldo e hash, preservando a convenção. Não reescrever históricos aprovados nem inventar atribuição temporal. Sem lotes/reservas/equipamento/peças/qualidade ou correcção de devolução confirmada neste recorte. Preservar os dados, cache, seis associações, demonstrações e trabalho em curso; não activar piloto/candidatas ou conceder direitos por consequência destes testes.
|
||||
|
||||
**02/11/2026 — autorizado e aplicado o piloto de acessos:** proprietário respondeu «autorizo» à proposta exacta para SGC8005. Não voltar a pedir autorização para esta distribuição nem reaplicar o instalador. Proposta original mantém o hash/estado histórico de preparação; autorização e estado efectivo estão em pilot-access-authorization.json e pilot-access-activation.json. Configuração passou de1para27:11perfis/17vínculos em12contas existentes; administradores6/8, tarefas9requisitar/10autorizar/13entregar/11preparar reposição/12conferir reposição. Preservadas competências/contextos/preparação/âmbito anteriores. Mesmas alçadas25.000/150.000MZN comIVA confirmadas só para o piloto; IVA16% e snapshots históricos intactos.
|
||||
|
||||
Aplicação atómica por OrganizationConfiguration, sob bloqueio da empresa e revalidação da origem/versão/hash autorizado. Backup privado antes da mudança, snapshot consistente e restauro verificado112tabelas;107tabelas protegidas e demais campos de Tenant preservados, incluindo contas/pa_access/processos/aprovações/orçamento/stock. Restore descartável removido. Prova pilot-access-activation.json e logs correspondentes. Não houve migração/contas novas/decisão operacional/publicação de artigos/mínimos/políticas/regras automáticas ou mudança SGF0.1.1. Perfis sintéticos não são defaults de entrega comercial; a empresa continua a definir os seus próprios intervenientes. Verificação HTTP posterior e pendências reais do piloto são anexadas após conclusão abaixo, sem declarar nova bateria geral ou revisão visual.
|
||||
|
||||
**Verificação final da activação8005:** pilot-access-activation-http.json confirmou versão27,12contas,11perfis/17vínculos,2administradores e todos os acessos/contextos anteriores. Cinco perfis abriram os percursos próprios e não obtiveram administração; preparação/conferência da reposição e requisição/revisão/entrega ficaram separados. Tarefas0na situação actual; Pessoas continua separado e acessível à administração no contexto próprio. Só consultas, sem nova operação de negócio/revisão visual/bateria geral.
|
||||
|
||||
O piloto ainda não tem artigos publicados (0), políticas internas aprovadas (0) ou regras automáticas activas (0); existe1armazém e os intervenientes independentes estão prontos. Serviço periódico/recuperação recentes e sem pendências. O indicador de configuração de cliente mantémfalse pelo requisito de contexto contratado explicitamente, distinto do âmbito sintético preservado; não acrescentar direitos comerciais por inferência. Próxima etapa: parametrizar catálogo e regras específicas sem inventar quantidades/mínimos ou responsáveis. Manter esta separação entre acesso já autorizado/aplicado e configuração operacional/comercial ainda por concluir.
|
||||
|
||||
Reference in New Issue
Block a user