Compare commits

..
8 changed files with 421 additions and 5 deletions
+4
View File
@@ -46,6 +46,10 @@ final class InvestmentComplements
} else {
$reference = app(InvestorContext::class)->reference($origin);
abort_unless($reference['kind'] === 'opportunity', 422);
// The context resolver has already checked the actor's private scope.
// A private preparation is valid dossier input, not a public offer
// from which this public-complement catalogue can infer services.
if (($reference['visibility'] ?? 'public') === 'private') return [];
$principal = Opportunity::published()->findOrFail($reference['id']);
$text = $principal->summary;
$basis = 'Resumo cadastrado da oportunidade '.$principal->reference;
@@ -1231,3 +1231,56 @@ Comparar atendimento individual noSongo,missões agrupadas Songo–Tete/Moatize
**Preservação e prova desta evolução:**guardar→prévia/confirmação do contexto→recuperação no mesmo dossier→linhas do relatório existente,com11evidências e valores comerciais em falta. Apenas ficha401e o seu dossier foram actualizados;52outrasfichas,17outrosdossiers,19projectos,1921territórios,12sectores,63documentos e391eventos anteriores de auditoria intactos. Sem nova entidade,grant,migração,código da aplicação ou ronda das provas técnicas/fiscais aceites. Fonte e contexto anteriores conservados,sem publicar a ficha.
Recibo:`docs/investmoz/unification/proactive-regional-clients-qa-20261027.json`;estudo privado:`outputs/proactive-regional-clients-20261027/regional-private-brief.html`. A entrega técnica e a eventual instalação continuam separadas do estado comercial desta oportunidade.
## 27/10/2026 — passagem à prospecção e segundo piloto territorial privado
**Decisão do responsável:** o caso de apoio metrológico está suficientemente estruturado para prospecção. Fica privado e pendente de informação externa; não continuar a aprofundá-lo para concluir a funcionalidade. Nenhum contacto ou proposta comercial foi recebido ou enviado nesta passagem. A ficha401 e o dossier `894343c7-c33d-452e-a6a5-b6675f77ee23` mantêm fonte/contexto3, sem alterações.
**Ficha curta para a equipa:** `docs/investmoz/unification/prospeccao-apoio-metrologico-20261027.pdf`, PDF preenchível de duas páginas e42campos, com uma página por cliente e outra por parceiro. Cliente: instrumentos/gamas/quantidades, programa efectivo e janelas, requisitos, solução actual, contratação e próxima acção. Parceiro: âmbito, equipa/meios e capacidade disponível, prazo, preços discriminados, impostos/moeda, deslocações/custódia e validade da proposta. Sem resposta, os dados ficam por determinar. Guardar uma cópia por entidade/centro de compra ou parceiro, com evidência/data e responsável.
**Retoma da viabilidade do Songo:** quando chegarem inventários, programas, interesse e cotações comparáveis, actualizar a comparação já preparada para o mesmo âmbito, volume, qualidade, local e período. Distinguir entidade, utilizador e centro que decide/paga; a ligação Vulcan/Nacala impede presumir compradores independentes. Somar cada missão/transporte partilhado uma vez. Não usar ausência de resposta como ausência de procura ou zero. Necessidade satisfeita pode conduzir a reformulação futura ou arquivo fundamentado, preservando o dossier.
**Próximo piloto — Gurué:** foi criado, por serviços existentes e apenas na base QA isolada, o caso `GUR-CHA-20261027`, ficha402/fonte1 e dossier `883c8ec3-59a3-4074-b91c-b7d4a5d88ff0`/contexto1. Ideia privada: estudar apoio associado à colheita, qualidade da folha verde e organização das entregas na cadeia do chá. Reutilizados o distrito canónico de Gurué e o sector Agronegócio; nenhum novo mestre, promotor empresarial, montante ou coordenada presumidos.
Cinco referências distinguem actividade de procura: INE2020–2024, edição2025, PDFp9/Quadro1.1; página do próprio Asian Tea Group sobre Chá de Magoma; IGC2014, PDFp75,78–79/impressas60,63–64; e referências privadas da lista já fornecida, com datas2021–2023 e códigos declarados. INE e produtor documentam actividades; o estudo2014 é histórico e orienta perguntas, sem transportar volumes, preços, capacidades ou intenções para2026. Cadastros antigos não comprovam competência ou disponibilidade actual. Não se presume compra de folha externa, oferta em falta, nova fábrica ou interesse em contratar.
**Acção delimitada do Gurué:** compreender como se colhe, avalia e entrega hoje; identificar problema mensurável, intervenientes, critérios do processador, quantidades/janelas, solução/custo actuais e quem contrataria/pagaria pelo apoio. Magoma é unidade potencial a consultar; Chazeiras é referência histórica cuja situação actual deve ser confirmada. Beneficiário não equivale a pagador. Necessidade, parceiros, custos e viabilidade permanecem em hipótese, sem bloquear a funcionalidade técnica ou exigir prolongamento de pesquisa pública.
**Demonstração apenas do delta:** criação→gravação→prévia/confirmação→recuperação→linhas do relatório existente, com5evidências e pressupostos visíveis. Conservados todos os53registos anteriores de oportunidades,18dossiers,19projectos,1921territórios,12sectores,63documentos,394eventos de auditoria,40utilizadores e3organizações. Novos apenas a ficha/dossier/percurso QA e respectivos registos de histórico. Sem alteração de código, schema, permissões ou provas técnicas/fiscais aceites. O formulário foi reaberto e ensaiado com valores sintéticos numa cópia; a versão para a equipa está em branco, com campos interactivos verificados e as duas páginas revistas visualmente.
**Entrega técnica independente:** `1afab4a2` continua candidata técnica aceite, runtime `3439f350`, sem instalação ou publicação nesta passagem. A capacidade do servidor deve ser novamente medida no procedimento da futura entrega; não se declarou resolvida nem se apagou conteúdo. L8 `14360748`, SGF TEMPO e demais provas preservados. Esta passagem não envia a ficha a terceiros nem publica oportunidades reais.
Recibo: `docs/investmoz/unification/proactive-handoff-gurue-qa-20261027.json`. Prova privada e nota do piloto: `outputs/proactive-handoff-gurue-20261027/gurue-proof.json` e `gurue-private-brief.html`. Saldo do Songo: recolha externa; saldo do Gurué: descoberta dirigida da necessidade; saldo da instalação: capacidade e procedimento de entrega. Estes três estados permanecem independentes.
## 27/10/2026 — autonomia pela interface e candidata técnica consolidada
**Âmbito pedido:** reutilizar as provas aceites; demonstrar apenas anexar respostas, rever a ideia privada e encaminhar/actualizar o mesmo dossier pela interface, sem intervenção de código ou SQL na operação da equipa. Songo aguarda respostas externas e Gurué mantém a hipótese agrícola privada; ambos ficaram intactos. Não foram recolhidas respostas comerciais reais nem observada uma sessão de formação com funcionários.
### Guia curto da equipa
1. Entrar com o perfil operacional já autorizado e o MFA normal. Em **Minhas oportunidades → Nova oportunidade → Preparar análise e ideia**, indicar título, sector e apenas o território conhecido. Não substituir o promotor real por quem prepara a análise; a preparação interna permite que ainda seja desconhecido.
2. Em **Evidências e proveniência**, separar facto e interpretação, identificar fonte/exemplar, trecho, período, abrangência e limitações. Manter **Interna — análise privada**. Guardar o rascunho e aguardar a confirmação do servidor.
3. Para uma resposta recebida, abrir **Imagens, documentos e localizações → Documentos**, escolher o original, identificar emissor/versão/data quando conhecidos, página e afirmação fundamentada. Escolher classificação e consulta internas e **Guardar recurso**. O ficheiro fica privado e o seu estado de scan é visível; o download só fica disponível após scan limpo dos mesmos bytes.
4. Regressar ao rascunho e escolher esse ficheiro em **Documento existente associado** na evidência correspondente. Rever a oferta/procura observadas, solução, pressupostos, pendências e próxima acção. Uma resposta parcial não confirma procura, preços ou sustentabilidade. Guardar e recuperar a ficha para conferir os dados.
5. Usar **Preparar ou continuar investimento com esta ficha**. Se já existir, escolher o dossier e **Preparar neste dossier**; não criar outro para uma nova edição. Criar um dossier apenas para um investimento novo, com o título escolhido e consentimento de reutilização do próprio perfil.
6. Confirmar a localização, usar **Rever dados antes de guardar**, conferir divergências e impactos e **Guardar dados do investimento**. O título e as edições deliberadas conservam-se. A referência à resposta acompanha a análise; o original permanece no gestor documental da ficha, acessível pelo link da ficha de origem e seus recursos, sem cópia ou divulgação automática dos bytes.
7. Para novas respostas/edições, voltar à mesma ficha, guardar a revisão e continuar o mesmo dossier com nova prévia/confirmação. O dossier recebe a versão actual após confirmação; o estado anterior conserva-se no histórico. Informação em falta continua por determinar, sem zero presumido.
8. **Divulgação promocional** é uma acção separada. Nada neste percurso publica o piloto, os anexos ou o dossier. A eventual decisão de publicação real continua independente da demonstração sintética e da instalação técnica.
### Delta demonstrado e correcção delimitada
Ensaio com o operador QA existente, login/MFA normais e apenas controlos da interface: nova ficha sintética403, resposta PDF de ensaio anexada e recuperada, ClamAV real limpo, hash do download igual ao original; documento associado à evidência; ideia revista; dossier `5bc28554-a2d1-4e60-9181-93ba0ecede59` criado e depois continuado sem duplicação. Fonte4/contexto2, hipótese e título deliberado preservados. O anexo e os dados são sintéticos; não constituem resposta de clientes ou parceiros reais.
Foi reproduzido e corrigido um aviso enganador: o pedido de complementos públicos tratava uma análise privada autorizada como referência pública desaparecida. **InvestmentComplements** consulta primeiro a autorização existente e devolve uma lista vazia para essa preparação privada; não a transforma em oferta pública. Origens públicas continuam a produzir os seus complementos; pedidos sem acesso continuam sem obter a fonte privada. Dois testes novos dirigidos,18asserções, passaram em transacção QA. A demonstração privada foi retomada sem o aviso. Não se alteraram permissões, tabelas, frontend ou motores fiscais.
Todos os54registos anteriores de oportunidades,19dossiers,63documentos,19projectos,1921territórios,12sectores,3organizações e399eventos de auditoria preservados por comparação de hashes. Novos apenas a amostra QA e seus registos. As provas anteriores de criação/edição, publicação expressa, anonimato, histórico, relatório, Wayfinder, TypeScript e build foram reutilizadas; não se repetiram suites fiscais ou a análise económica dos pilotos. Foi conferida a recuperação da referência documental e das novas linhas pelo relatório existente.
### Candidata para instalação futura
Runtime desta correcção: `51d536b7`; inclui o percurso técnico `3439f350`/candidata aceite `1afab4a2`, documentação e ficha de prospecção `403c444a`. A comparação com main remoto `f8d57bdd` confirmou ancestralidade, sem alterações entretanto integradas a perder. O delta de runtime face à candidata anterior limita-se à consulta de complementos; frontend, schema e configuração mantêm-se.
**Não instalado.** Antes da entrega activa, medir novamente espaço/inodes na partição do instalador e dos backups, confrontar com a necessidade efectiva de compilação isolada/backup, conferir o main então actual, executar backup/restauro fresco e manter a versão activa até a nova estar pronta. Depois conferir revisão servida e apenas o delta. A preparação dos pilotos QA não integra dados na base activa nem publica oportunidades. L8 `14360748` permanece separado; SGF TEMPO intocado. Não se fizeram SSH, limpeza, backup ou instalação nesta passagem.
Recibo: `docs/investmoz/unification/proactive-team-autonomy-qa-20261027.json`. Provas e pacote local: `outputs/proactive-team-autonomy-20261027/`. A verificação comprova que o percurso está disponível aos perfis autorizados através da interface; não declara formação da equipa, viabilidade dos pilotos ou conclusão integral dos requisitos nacionais.
@@ -0,0 +1,169 @@
{
"date": "2026-10-27",
"status": "prospecting_handoff_ready_and_Gurue_private_hypothesis_in_QA_not_installed",
"branch": "codex/proactive-handoff-gurue-qa-20261027",
"baseline": "a78abf06d0ca075b18156ae3fd99649b69202481",
"technical_candidate_unchanged": "1afab4a2a71f182f260e4d2555d79242261a4d2a",
"runtime_unchanged": "3439f35038f15c93224e6cf876bf559135824d13",
"songo": {
"case_id": "CB-METROLOGIA-20261027",
"record_id": 401,
"source_version": 3,
"context_revision": 3,
"unchanged": true,
"state": "private_pending_external_commercial_responses",
"external_messages_sent": 0,
"commercial_responses_received": 0,
"partner_quotes_received": 0,
"resume_when": "Inventories/programmes/interest and partner quotations for comparable scope received;identify independent buying centres before aggregating demand"
},
"prospecting_form": {
"path": "docs/investmoz/unification/prospeccao-apoio-metrologico-20261027.pdf",
"pages": 2,
"interactive_fields": 42,
"canonical_fields_and_widgets_agree": true,
"unique_names": true,
"all_fields_in_page": true,
"saved_values_recovered": true,
"appearance_streams_present": true,
"real_form_not_prefilled_with_test_values": true,
"delivered_format": "fillable_PDF",
"docx_not_delivered": true,
"sha256": "abed1dc12a8f635bf4c3aa39ba5823114d2155aaca9b675a8ca1b9fb6248e989",
"visual_review": "Both final pages inspected;sample retained values checked separately"
},
"gurue": {
"case_id": "GUR-CHA-20261027",
"record_id": 402,
"dossier_id": "883c8ec3-59a3-4074-b91c-b7d4a5d88ff0",
"source_version": 1,
"context_revision": 1,
"evidence_count": 5,
"need_state": "hypothesis",
"private_draft_not_published": true,
"created_saved_recovered_through_existing_services": true,
"preview_and_confirmation": true,
"deliberate_title_preserved": true,
"existing_geo_and_sector_reused": true,
"no_new_grants_or_business_promoter": true,
"QA_operator_1021_only": true,
"Songo_record_401_version_3_unchanged": true,
"Songo_context_revision_3_unchanged": true,
"no_application_code_or_fiscal_changes": true,
"accepted_proofs_reused": true,
"no_contact_or_server_operations": true,
"QA_database": "proactive_investment_20261027_test",
"row_preservation": {
"opportunities": {
"old_rows_unchanged": 53,
"new_rows": 1
},
"desk_cases": {
"old_rows_unchanged": 18,
"new_rows": 1
},
"projects": {
"old_rows_unchanged": 19,
"new_rows": 0
},
"geo_locations": {
"old_rows_unchanged": 1921,
"new_rows": 0
},
"sectors": {
"old_rows_unchanged": 12,
"new_rows": 0
},
"documents": {
"old_rows_unchanged": 63,
"new_rows": 0
},
"value_chains": {
"old_rows_unchanged": 0,
"new_rows": 0
},
"audit_events": {
"old_rows_unchanged": 394,
"new_rows": 5
},
"organizations": {
"old_rows_unchanged": 3,
"new_rows": 0
},
"users": {
"old_rows_unchanged": 40,
"new_rows": 0
},
"investor_journeys": {
"old_rows_unchanged": 15,
"new_rows": 1
},
"journey_steps": {
"old_rows_unchanged": 285,
"new_rows": 19
}
}
},
"report": {
"record_id": 402,
"evidence_rows": 5,
"source_version": 1,
"context_revision": 1,
"source_recovered_without_loss": true,
"hypothesis_and_historic_period_visible": true,
"commercial_inputs_unknown": true,
"existing_report_helper": true,
"accepted_suites_not_repeated": true
},
"source_register": [
{
"file": "ine-gurue-2020-2024.pdf",
"url": "https://ine.gov.mz/documents/20119/337384/2_Gurue-%20Final_Junho2025.pdf/602d05a3-be99-47a4-be68-5277c4ca4a2f?download=true&t=1751024727586&version=1.0",
"bytes": 3038756,
"sha256": "9f0d3b868cfd3401f8d4f2fcceae0e5be164ba6dab927d1210e247b1711093d4",
"accessed": "2026-10-27",
"use": "Private read-only source copy;not imported or published"
},
{
"file": "magoma-primary.html",
"url": "https://www.asianteagroup.com/foot-gurue.html",
"bytes": 5590,
"sha256": "5881a5ec9a4b223932508fd48896c8a467a01387fdc7923eda4c4cb192adad9d",
"accessed": "2026-10-27",
"use": "Private read-only source copy;not imported or published"
},
{
"file": "igc-enterprise-map-2014.pdf",
"url": "https://www.theigc.org/wp-content/uploads/2014/06/An-Enterprise-Map-of-Mozambique-English.pdf",
"bytes": 1746681,
"sha256": "2d02a47c9e806490ba8d0cc016ef23d34bf8818f1b1c2dde5a0806818fa35c67",
"accessed": "2026-10-27",
"use": "Private read-only source copy;not imported or published"
}
],
"provided_private_workbook": {
"sha256": "1b5087b464e39e88c42def39655c2391aaaf684b4c832d6a77ff274b98889f00",
"historical_reference_dates": [
"2021-09-30",
"2023-11-09",
"2022-03-17"
],
"no_personal_data_or_contacts_exported": true,
"not_imported_or_published": true
},
"pilot_limits": [
"Activity documented;current unmet need and commercial interest unconfirmed",
"2014 source is historical;no current volumes/prices/capacity inferred",
"No assumed external green-leaf buyer,new factory,land access or certification",
"Beneficiaries are not automatically buyers or payers"
],
"preserved": {
"L8": "14360748194f3658d91a7d7ae5615efd0fcbfbb7",
"SGF_TEMPO": "untouched",
"accepted_proofs": "reused_without_repeating_suites",
"main_last_read": "f8d57bddf96b4610604a013fcc5bdd703c7dc6d5"
},
"installation": "No remote or deployment operation;capacity remains a precondition to next installation",
"private_outputs": "outputs/proactive-handoff-gurue-20261027/",
"new_application_code": false
}
@@ -0,0 +1,115 @@
{
"date": "2026-10-27",
"status": "team_UI_delta_demonstrated_consolidated_candidate_not_installed",
"branch": "codex/proactive-team-autonomy-qa-20261027",
"runtime_commit": "51d536b7ba0d525323200418155459620ec07e41",
"previous_candidate": "403c444a3e14e0ed83276ca318ad95083195708f",
"accepted_technical_candidate": "1afab4a2a71f182f260e4d2555d79242261a4d2a",
"main_checked": "f8d57bddf96b4610604a013fcc5bdd703c7dc6d5",
"main_ancestor": true,
"delta": "InvestmentComplements:authorised private preparation returns no public offers;public complements and access checks preserved",
"new_tests": {
"count": 2,
"assertions": 18,
"result": "passed",
"scope": "private complement lookup,mixed public/private sources,unauthorised access",
"transaction_rollback": true
},
"proof": {
"record_id": 403,
"dossier_id": "5bc28554-a2d1-4e60-9181-93ba0ecede59",
"source_version": 4,
"previous_context_revision": 1,
"context_revision": 2,
"same_dossier_continued": true,
"private_source": true,
"need_state": "hypothesis",
"document_id": "19abe9ce-4c3f-4d53-b960-7ce0fc00435e",
"resource_id": "d2c76068-3856-420c-8d2d-272684e92b70",
"response_sha256": "b6cb6a7b7230a75bf5f4d56a7a2c1ac0dec7bb0fae0b85381eda56e53f0977c5",
"scan": "clean",
"scan_engine": "ClamAV",
"download_matches_original": true,
"response_reference_recovered_in_analysis_and_dossier": true,
"deliberate_title_preserved": true,
"old_source_snapshot_preserved": true,
"new_UI_workflow": "normal login/MFA;create private draft;upload/recover original;associate response;revise idea;private dossier preview/confirm;edit again;continue same dossier;preview/confirm/reload",
"no_service_or_SQL_writes_for_demonstration": true,
"read_only_verification": true,
"no_actual_team_training_session_claimed": true,
"row_preservation": {
"opportunities": {
"old_rows_unchanged": 54,
"new_rows": 1
},
"desk_cases": {
"old_rows_unchanged": 19,
"new_rows": 1
},
"documents": {
"old_rows_unchanged": 63,
"new_rows": 1
},
"opportunity_documents": {
"old_rows_unchanged": 0,
"new_rows": 1
},
"projects": {
"old_rows_unchanged": 19,
"new_rows": 0
},
"geo_locations": {
"old_rows_unchanged": 1921,
"new_rows": 0
},
"sectors": {
"old_rows_unchanged": 12,
"new_rows": 0
},
"value_chains": {
"old_rows_unchanged": 0,
"new_rows": 0
},
"organizations": {
"old_rows_unchanged": 3,
"new_rows": 0
},
"audit_events": {
"old_rows_unchanged": 399,
"new_rows": 10
}
},
"Songo401_and_Gurue402_unchanged": true,
"new_masters_or_grants": false,
"publication_or_contact_external": false,
"accepted_unaffected_suites_reused": true
},
"accepted_proofs_reused": [
"14 API/139 assertions",
"7 frontend report tests",
"normal login/MFA and create/edit/history",
"explicit publication/anonymous access controls",
"Wayfinder --with-form",
"TypeScript",
"isolated QA frontend build"
],
"frontend_changed": false,
"schema_or_configuration_changed": false,
"no_new_roles_or_grants": true,
"pilots_not_published_or_modified": [
401,
402
],
"commercial_outreach": false,
"human_team_training_claimed": false,
"L8_preserved": "14360748194f3658d91a7d7ae5615efd0fcbfbb7",
"server_operations": false,
"installation_conditions": [
"fresh capacity/inodes measurement against build and backup requirements",
"recheck current main",
"fresh backup/restore",
"keep active release until new ready",
"verify served revision and installed delta only"
],
"private_outputs": "outputs/proactive-team-autonomy-20261027/"
}
@@ -6752,3 +6752,56 @@ Comparar atendimento individual noSongo,missões agrupadas Songo–Tete/Moatize
**Preservação e prova desta evolução:**guardar→prévia/confirmação do contexto→recuperação no mesmo dossier→linhas do relatório existente,com11evidências e valores comerciais em falta. Apenas ficha401e o seu dossier foram actualizados;52outrasfichas,17outrosdossiers,19projectos,1921territórios,12sectores,63documentos e391eventos anteriores de auditoria intactos. Sem nova entidade,grant,migração,código da aplicação ou ronda das provas técnicas/fiscais aceites. Fonte e contexto anteriores conservados,sem publicar a ficha.
Recibo:`docs/investmoz/unification/proactive-regional-clients-qa-20261027.json`;estudo privado:`outputs/proactive-regional-clients-20261027/regional-private-brief.html`. A entrega técnica e a eventual instalação continuam separadas do estado comercial desta oportunidade.
## 27/10/2026 — passagem à prospecção e segundo piloto territorial privado
**Decisão do responsável:** o caso de apoio metrológico está suficientemente estruturado para prospecção. Fica privado e pendente de informação externa; não continuar a aprofundá-lo para concluir a funcionalidade. Nenhum contacto ou proposta comercial foi recebido ou enviado nesta passagem. A ficha401 e o dossier `894343c7-c33d-452e-a6a5-b6675f77ee23` mantêm fonte/contexto3, sem alterações.
**Ficha curta para a equipa:** `docs/investmoz/unification/prospeccao-apoio-metrologico-20261027.pdf`, PDF preenchível de duas páginas e42campos, com uma página por cliente e outra por parceiro. Cliente: instrumentos/gamas/quantidades, programa efectivo e janelas, requisitos, solução actual, contratação e próxima acção. Parceiro: âmbito, equipa/meios e capacidade disponível, prazo, preços discriminados, impostos/moeda, deslocações/custódia e validade da proposta. Sem resposta, os dados ficam por determinar. Guardar uma cópia por entidade/centro de compra ou parceiro, com evidência/data e responsável.
**Retoma da viabilidade do Songo:** quando chegarem inventários, programas, interesse e cotações comparáveis, actualizar a comparação já preparada para o mesmo âmbito, volume, qualidade, local e período. Distinguir entidade, utilizador e centro que decide/paga; a ligação Vulcan/Nacala impede presumir compradores independentes. Somar cada missão/transporte partilhado uma vez. Não usar ausência de resposta como ausência de procura ou zero. Necessidade satisfeita pode conduzir a reformulação futura ou arquivo fundamentado, preservando o dossier.
**Próximo piloto — Gurué:** foi criado, por serviços existentes e apenas na base QA isolada, o caso `GUR-CHA-20261027`, ficha402/fonte1 e dossier `883c8ec3-59a3-4074-b91c-b7d4a5d88ff0`/contexto1. Ideia privada: estudar apoio associado à colheita, qualidade da folha verde e organização das entregas na cadeia do chá. Reutilizados o distrito canónico de Gurué e o sector Agronegócio; nenhum novo mestre, promotor empresarial, montante ou coordenada presumidos.
Cinco referências distinguem actividade de procura: INE2020–2024, edição2025, PDFp9/Quadro1.1; página do próprio Asian Tea Group sobre Chá de Magoma; IGC2014, PDFp75,78–79/impressas60,63–64; e referências privadas da lista já fornecida, com datas2021–2023 e códigos declarados. INE e produtor documentam actividades; o estudo2014 é histórico e orienta perguntas, sem transportar volumes, preços, capacidades ou intenções para2026. Cadastros antigos não comprovam competência ou disponibilidade actual. Não se presume compra de folha externa, oferta em falta, nova fábrica ou interesse em contratar.
**Acção delimitada do Gurué:** compreender como se colhe, avalia e entrega hoje; identificar problema mensurável, intervenientes, critérios do processador, quantidades/janelas, solução/custo actuais e quem contrataria/pagaria pelo apoio. Magoma é unidade potencial a consultar; Chazeiras é referência histórica cuja situação actual deve ser confirmada. Beneficiário não equivale a pagador. Necessidade, parceiros, custos e viabilidade permanecem em hipótese, sem bloquear a funcionalidade técnica ou exigir prolongamento de pesquisa pública.
**Demonstração apenas do delta:** criação→gravação→prévia/confirmação→recuperação→linhas do relatório existente, com5evidências e pressupostos visíveis. Conservados todos os53registos anteriores de oportunidades,18dossiers,19projectos,1921territórios,12sectores,63documentos,394eventos de auditoria,40utilizadores e3organizações. Novos apenas a ficha/dossier/percurso QA e respectivos registos de histórico. Sem alteração de código, schema, permissões ou provas técnicas/fiscais aceites. O formulário foi reaberto e ensaiado com valores sintéticos numa cópia; a versão para a equipa está em branco, com campos interactivos verificados e as duas páginas revistas visualmente.
**Entrega técnica independente:** `1afab4a2` continua candidata técnica aceite, runtime `3439f350`, sem instalação ou publicação nesta passagem. A capacidade do servidor deve ser novamente medida no procedimento da futura entrega; não se declarou resolvida nem se apagou conteúdo. L8 `14360748`, SGF TEMPO e demais provas preservados. Esta passagem não envia a ficha a terceiros nem publica oportunidades reais.
Recibo: `docs/investmoz/unification/proactive-handoff-gurue-qa-20261027.json`. Prova privada e nota do piloto: `outputs/proactive-handoff-gurue-20261027/gurue-proof.json` e `gurue-private-brief.html`. Saldo do Songo: recolha externa; saldo do Gurué: descoberta dirigida da necessidade; saldo da instalação: capacidade e procedimento de entrega. Estes três estados permanecem independentes.
## 27/10/2026 — autonomia pela interface e candidata técnica consolidada
**Âmbito pedido:** reutilizar as provas aceites; demonstrar apenas anexar respostas, rever a ideia privada e encaminhar/actualizar o mesmo dossier pela interface, sem intervenção de código ou SQL na operação da equipa. Songo aguarda respostas externas e Gurué mantém a hipótese agrícola privada; ambos ficaram intactos. Não foram recolhidas respostas comerciais reais nem observada uma sessão de formação com funcionários.
### Guia curto da equipa
1. Entrar com o perfil operacional já autorizado e o MFA normal. Em **Minhas oportunidades → Nova oportunidade → Preparar análise e ideia**, indicar título, sector e apenas o território conhecido. Não substituir o promotor real por quem prepara a análise; a preparação interna permite que ainda seja desconhecido.
2. Em **Evidências e proveniência**, separar facto e interpretação, identificar fonte/exemplar, trecho, período, abrangência e limitações. Manter **Interna — análise privada**. Guardar o rascunho e aguardar a confirmação do servidor.
3. Para uma resposta recebida, abrir **Imagens, documentos e localizações → Documentos**, escolher o original, identificar emissor/versão/data quando conhecidos, página e afirmação fundamentada. Escolher classificação e consulta internas e **Guardar recurso**. O ficheiro fica privado e o seu estado de scan é visível; o download só fica disponível após scan limpo dos mesmos bytes.
4. Regressar ao rascunho e escolher esse ficheiro em **Documento existente associado** na evidência correspondente. Rever a oferta/procura observadas, solução, pressupostos, pendências e próxima acção. Uma resposta parcial não confirma procura, preços ou sustentabilidade. Guardar e recuperar a ficha para conferir os dados.
5. Usar **Preparar ou continuar investimento com esta ficha**. Se já existir, escolher o dossier e **Preparar neste dossier**; não criar outro para uma nova edição. Criar um dossier apenas para um investimento novo, com o título escolhido e consentimento de reutilização do próprio perfil.
6. Confirmar a localização, usar **Rever dados antes de guardar**, conferir divergências e impactos e **Guardar dados do investimento**. O título e as edições deliberadas conservam-se. A referência à resposta acompanha a análise; o original permanece no gestor documental da ficha, acessível pelo link da ficha de origem e seus recursos, sem cópia ou divulgação automática dos bytes.
7. Para novas respostas/edições, voltar à mesma ficha, guardar a revisão e continuar o mesmo dossier com nova prévia/confirmação. O dossier recebe a versão actual após confirmação; o estado anterior conserva-se no histórico. Informação em falta continua por determinar, sem zero presumido.
8. **Divulgação promocional** é uma acção separada. Nada neste percurso publica o piloto, os anexos ou o dossier. A eventual decisão de publicação real continua independente da demonstração sintética e da instalação técnica.
### Delta demonstrado e correcção delimitada
Ensaio com o operador QA existente, login/MFA normais e apenas controlos da interface: nova ficha sintética403, resposta PDF de ensaio anexada e recuperada, ClamAV real limpo, hash do download igual ao original; documento associado à evidência; ideia revista; dossier `5bc28554-a2d1-4e60-9181-93ba0ecede59` criado e depois continuado sem duplicação. Fonte4/contexto2, hipótese e título deliberado preservados. O anexo e os dados são sintéticos; não constituem resposta de clientes ou parceiros reais.
Foi reproduzido e corrigido um aviso enganador: o pedido de complementos públicos tratava uma análise privada autorizada como referência pública desaparecida. **InvestmentComplements** consulta primeiro a autorização existente e devolve uma lista vazia para essa preparação privada; não a transforma em oferta pública. Origens públicas continuam a produzir os seus complementos; pedidos sem acesso continuam sem obter a fonte privada. Dois testes novos dirigidos,18asserções, passaram em transacção QA. A demonstração privada foi retomada sem o aviso. Não se alteraram permissões, tabelas, frontend ou motores fiscais.
Todos os54registos anteriores de oportunidades,19dossiers,63documentos,19projectos,1921territórios,12sectores,3organizações e399eventos de auditoria preservados por comparação de hashes. Novos apenas a amostra QA e seus registos. As provas anteriores de criação/edição, publicação expressa, anonimato, histórico, relatório, Wayfinder, TypeScript e build foram reutilizadas; não se repetiram suites fiscais ou a análise económica dos pilotos. Foi conferida a recuperação da referência documental e das novas linhas pelo relatório existente.
### Candidata para instalação futura
Runtime desta correcção: `51d536b7`; inclui o percurso técnico `3439f350`/candidata aceite `1afab4a2`, documentação e ficha de prospecção `403c444a`. A comparação com main remoto `f8d57bdd` confirmou ancestralidade, sem alterações entretanto integradas a perder. O delta de runtime face à candidata anterior limita-se à consulta de complementos; frontend, schema e configuração mantêm-se.
**Não instalado.** Antes da entrega activa, medir novamente espaço/inodes na partição do instalador e dos backups, confrontar com a necessidade efectiva de compilação isolada/backup, conferir o main então actual, executar backup/restauro fresco e manter a versão activa até a nova estar pronta. Depois conferir revisão servida e apenas o delta. A preparação dos pilotos QA não integra dados na base activa nem publica oportunidades. L8 `14360748` permanece separado; SGF TEMPO intocado. Não se fizeram SSH, limpeza, backup ou instalação nesta passagem.
Recibo: `docs/investmoz/unification/proactive-team-autonomy-qa-20261027.json`. Provas e pacote local: `outputs/proactive-team-autonomy-20261027/`. A verificação comprova que o percurso está disponível aos perfis autorizados através da interface; não declara formação da equipa, viabilidade dos pilotos ou conclusão integral dos requisitos nacionais.
File diff suppressed because one or more lines are too long
+22
View File
@@ -140,6 +140,28 @@ final class ProactiveInvestmentTest extends TestCase
$this->assertTrue(app(\App\Services\InvestmentCatalogue::class)->query(['perspective'=>$kind])->whereKey($id)->exists());
}
}
public function test_private_analysis_complements_keep_preparation_valid_without_inventing_public_offers(): void
{
$private=$this->create('Gurué');$public=$this->create();
$input=$this->publication($public,['summary'=>'SYNTHETIC QA: silos e armazenagem como componente documentada.']);
$plan=$this->postJson('/minhas-oportunidades/'.$public->id.'/divulgacao/previa',$input)->assertOk()->json();
$this->postJson('/minhas-oportunidades/'.$public->id.'/divulgacao/confirmar',['token'=>$plan['token'],'operation_key'=>(string)Str::uuid(),'confirm'=>true,'reason'=>'SYNTHETIC QA public component in transaction only'])->assertOk();
$result=$this->postJson('/complementos-investimento',['contexts'=>[['origin'=>'opportunity:'.$private->id],['origin'=>'opportunity:'.$public->id]]])->assertOk()->json();
$this->assertSame([],$result['issues']);$this->assertNotEmpty($result['items']);
foreach($result['items']as$item)$this->assertSame('opportunity:'.$public->id,$item['origin']['key']);
$this->assertStringNotContainsString('PRIVATE-QA-',json_encode($result));
$this->assertFalse(Opportunity::published()->whereKey($private->id)->exists());
$this->assertSame('draft',$private->fresh()->status);
}
public function test_private_analysis_complements_still_hide_unauthorised_sources(): void
{
$private=$this->create('Gurué');$this->login(User::factory()->create());
$this->postJson('/complementos-investimento',['origin'=>'opportunity:'.$private->id])->assertNotFound();
$result=$this->postJson('/complementos-investimento',['contexts'=>[['origin'=>'opportunity:'.$private->id]]])->assertOk()->json();
$this->assertSame([],$result['items']);$this->assertCount(1,$result['issues']);
$this->assertStringNotContainsString($private->title,json_encode($result));
$this->assertStringNotContainsString('PRIVATE-QA-',json_encode($result));
}
public function test_authenticated_multi_idea_preparation_keeps_each_origin_and_deliberate_edits_in_existing_dossier(): void
{
$first=$this->create();$second=$this->create('Gurué');$this->publish($first);$this->publish($second);$investor=User::factory()->create();$this->login($investor);