fix: recover saved investment context without resubmitting confirmation
This commit is contained in:
@@ -2152,3 +2152,14 @@ Corrigido no editor existente: os controlos referidos acompanham o estado ocupad
|
||||
Três casos novos falharam contra a revisão anterior e passaram na candidata: bloqueio/recuperação dos controlos durante comparação, recusa de resposta para rascunho alterado preservando a edição, e falha de nova comparação sem reutilização do plano anterior. Treze testes frontend dirigidos passaram. Tipos, lint, formatação e compilação QA passaram; provas históricas aceites reutilizadas, sem repetição integral. Detalhes/hashes em `context_preview_consistency_increment` do recibo existente `local-validation-20261029.json`.
|
||||
|
||||
**Conferência visual pendente pela equipa:** na candidata, comparar dados de um dossier autorizado, conferir bloqueio temporário e reposição dos controlos; preparar nova edição e repetir a comparação, garantindo que só a prévia actual permite guardar. Em falha de comunicação, os valores permanecem e exige-se nova comparação. Não gravar dados sintéticos no activo para este ensaio. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. Sem instalação ou avanço de main; os requisitos transversais continuam parciais.
|
||||
|
||||
|
||||
### 29/10/2026 — recuperar a versão guardada sem repetir a confirmação
|
||||
|
||||
Continuação sobre `26f6a0d3`, nos requisitos existentes V2-07/V2-10 e na orientação adaptativa da Tempo de 23/10. Reproduzida a diferença entre gravação e leitura: uma confirmação bem-sucedida seguida de falha na consulta era apresentada como falha genérica, com a prévia anterior ainda disponível. O rascunho consumido também podia ser reenviado ao sair antes da recuperação.
|
||||
|
||||
O editor invalida a prévia/corpo de confirmação e consome os parâmetros de entrada logo após resposta positiva da gravação. Até recuperar a versão guardada, suspende edição e envio de rascunho antigo. Se a leitura falhar, informa que os dados foram guardados e disponibiliza «Recuperar dados guardados», que repete apenas a consulta. A recuperação repõe valores/versão actuais e a edição normal, sem novo POST de confirmação. Se a própria gravação for recusada, conserva os dados e a possibilidade de tentar novamente sem afirmar sucesso. Mantida a confirmação/idempotência do backend; nenhuma mudança de schema, permissões ou regras fiscais.
|
||||
|
||||
Dois casos novos: um reproduziu a lacuna no código anterior e o caso de gravação recusada já passava. Na candidata passaram ambos e os treze casos existentes, total de quinze testes frontend dirigidos. Verificados consulta repetida sem regravação, prévia consumida, conservação do hash do URL, ausência de envio do rascunho antigo em pagehide, valores recuperados e uso da nova versão na comparação seguinte. Tipos, lint, formatação e compilação QA passaram. Provas aceites reutilizadas; recibo/hashes em `context_saved_recovery_increment` de `local-validation-20261029.json`.
|
||||
|
||||
**Visual continua pendente pela equipa:** na candidata QA, conferir gravação normal e recuperação após falha apenas da leitura, verificando mensagem, bloqueio temporário e recuperação sem nova gravação; distinguir de gravação recusada. Usar ensaio de falha controlado em QA, sem criar dados sintéticos no activo. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. Sem instalação ou avanço de main; o requisito transversal permanece parcial.
|
||||
|
||||
@@ -1330,5 +1330,51 @@
|
||||
"preservation": "Frontend request consistency only. No new business conditions, backend/schema/permissions/tax-rule changes or writes to active data. Existing accepted suites reused without full rerun.",
|
||||
"visual_acceptance": "Pending team execution and recording against candidate; mocked asynchronous component tests are not a browser-session acceptance.",
|
||||
"installation": "Not triggered; main and active release unchanged."
|
||||
},
|
||||
"context_saved_recovery_increment": {
|
||||
"recorded_at": "2026-10-29T21:04:25.183773+00:00",
|
||||
"base_commit": "26f6a0d348e9f234759f9bbf17d888f81c33173c",
|
||||
"requirements": [
|
||||
"V2-07",
|
||||
"V2-10",
|
||||
"Tempo adaptive journey decision 2026-10-23: preserve choices and deliberate edits"
|
||||
],
|
||||
"defect": "A successful confirmation followed by failed context retrieval was reported as a generic save failure, left the preceding plan available and could resend the consumed draft on page exit.",
|
||||
"behavior": [
|
||||
"After confirmed POST success, discard the preceding preview/confirmation body and consume entry URL parameters immediately.",
|
||||
"While waiting for the saved context, keep editing and draft writes suspended; pagehide does not resend the consumed draft.",
|
||||
"If subsequent retrieval fails, explicitly state that data was saved and offer GET-only recovery. Successful recovery restores current values/version and normal editing without another confirmation POST.",
|
||||
"A rejected save retains edits and does not claim success; existing retry semantics and operation key remain in force."
|
||||
],
|
||||
"checks": {
|
||||
"previous_revision_reproduction": {
|
||||
"cases": 2,
|
||||
"passed": 1,
|
||||
"failed": 1
|
||||
},
|
||||
"directed_frontend_passed": 15,
|
||||
"new_frontend_cases": 2,
|
||||
"existing_cases_reused": 13,
|
||||
"types": "passed",
|
||||
"lint": "passed",
|
||||
"format": "passed",
|
||||
"qa_build": "passed"
|
||||
},
|
||||
"source_sha256": {
|
||||
"resources/js/pages/investor-path/context.tsx": "cdd63b8d784346e01db180e43c827b51e2474712a9b8b09e8af7783e40bb7563",
|
||||
"tests/frontend/investor-usability-components.test.mjs": "dc79c2401952abaa169a0804f9d61901ce7e3bfccd321296b7f8917c81f6352e"
|
||||
},
|
||||
"evidence": {
|
||||
"outputs/validation-20261029/context-recovery-red.log": "6c47dae887ca74c11f296d04c83aaba05049b5930607cb9a311d7f6c6ce8ccc0",
|
||||
"outputs/validation-20261029/context-recovery-tests.log": "08038e93a13fc7c0d50c5a9ab54a913fc47447ce560a6b822f5588a2706d2ce2",
|
||||
"outputs/validation-20261029/context-recovery-types.log": "82962651e47f564de653ad2883f8fd34e7dae4b4468e4ac459cb3331962a3879",
|
||||
"outputs/validation-20261029/context-recovery-lint.log": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
||||
"outputs/validation-20261029/context-recovery-format-check.log": "49429eee939f43fd6719eb1b38510db064d73431b80457d456a38d166de944ae",
|
||||
"outputs/validation-20261029/context-recovery-build.log": "c30f74b414449450af18605e1e4d0b4d5923c585f1b6eda0218d6d12f8ae3d62",
|
||||
"outputs/validation-20261029/context-recovery-build-exit.json": "124fd50cb6d223cdd18fedc166d00af7254199b6e6dedf9be82f71db87af6d01"
|
||||
},
|
||||
"preservation": "Frontend recovery only. Backend confirmation/idempotency, data/schema, permissions and fiscal rules unchanged. No active writes or deployment. Historical accepted suites reused.",
|
||||
"visual_acceptance": "Pending team execution and recording; mocked asynchronous tests do not constitute browser-session acceptance.",
|
||||
"installation": "Not triggered; main and active release unchanged."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7689,3 +7689,14 @@ Corrigido no editor existente: os controlos referidos acompanham o estado ocupad
|
||||
Três casos novos falharam contra a revisão anterior e passaram na candidata: bloqueio/recuperação dos controlos durante comparação, recusa de resposta para rascunho alterado preservando a edição, e falha de nova comparação sem reutilização do plano anterior. Treze testes frontend dirigidos passaram. Tipos, lint, formatação e compilação QA passaram; provas históricas aceites reutilizadas, sem repetição integral. Detalhes/hashes em `context_preview_consistency_increment` do recibo existente `local-validation-20261029.json`.
|
||||
|
||||
**Conferência visual pendente pela equipa:** na candidata, comparar dados de um dossier autorizado, conferir bloqueio temporário e reposição dos controlos; preparar nova edição e repetir a comparação, garantindo que só a prévia actual permite guardar. Em falha de comunicação, os valores permanecem e exige-se nova comparação. Não gravar dados sintéticos no activo para este ensaio. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. Sem instalação ou avanço de main; os requisitos transversais continuam parciais.
|
||||
|
||||
|
||||
### 29/10/2026 — recuperar a versão guardada sem repetir a confirmação
|
||||
|
||||
Continuação sobre `26f6a0d3`, nos requisitos existentes V2-07/V2-10 e na orientação adaptativa da Tempo de 23/10. Reproduzida a diferença entre gravação e leitura: uma confirmação bem-sucedida seguida de falha na consulta era apresentada como falha genérica, com a prévia anterior ainda disponível. O rascunho consumido também podia ser reenviado ao sair antes da recuperação.
|
||||
|
||||
O editor invalida a prévia/corpo de confirmação e consome os parâmetros de entrada logo após resposta positiva da gravação. Até recuperar a versão guardada, suspende edição e envio de rascunho antigo. Se a leitura falhar, informa que os dados foram guardados e disponibiliza «Recuperar dados guardados», que repete apenas a consulta. A recuperação repõe valores/versão actuais e a edição normal, sem novo POST de confirmação. Se a própria gravação for recusada, conserva os dados e a possibilidade de tentar novamente sem afirmar sucesso. Mantida a confirmação/idempotência do backend; nenhuma mudança de schema, permissões ou regras fiscais.
|
||||
|
||||
Dois casos novos: um reproduziu a lacuna no código anterior e o caso de gravação recusada já passava. Na candidata passaram ambos e os treze casos existentes, total de quinze testes frontend dirigidos. Verificados consulta repetida sem regravação, prévia consumida, conservação do hash do URL, ausência de envio do rascunho antigo em pagehide, valores recuperados e uso da nova versão na comparação seguinte. Tipos, lint, formatação e compilação QA passaram. Provas aceites reutilizadas; recibo/hashes em `context_saved_recovery_increment` de `local-validation-20261029.json`.
|
||||
|
||||
**Visual continua pendente pela equipa:** na candidata QA, conferir gravação normal e recuperação após falha apenas da leitura, verificando mensagem, bloqueio temporário e recuperação sem nova gravação; distinguir de gravação recusada. Usar ensaio de falha controlado em QA, sem criar dados sintéticos no activo. Registar revisão, perfil, percurso, esperado/observado e evidência nesta matriz. Sem instalação ou avanço de main; o requisito transversal permanece parcial.
|
||||
|
||||
Reference in New Issue
Block a user