From bfe42132dafa7a1a5399b78ed4e37011ee5a28b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Oct 2026 10:28:45 +0000 Subject: [PATCH 1/2] chore(main): release 1.0.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 80 +++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 4 files changed, 83 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 37fcefaa..8d7e5f13 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.0.0" + ".": "1.0.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 7529363a..6e895acd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,86 @@ All notable changes to GroktoCrawl are documented in this file. +## [1.0.1](https://github.com/groktopus/groktocrawl/compare/v1.0.0...v1.0.1) (2026-10-16) + + +### Features + +* recover queued legacy jobs after restart ([9a53ca1](https://github.com/groktopus/groktocrawl/commit/9a53ca1287038c0ee47fdadf37be5060c56ad516)) +* recover queued legacy jobs after restart ([6e4ff1d](https://github.com/groktopus/groktocrawl/commit/6e4ff1d739eab21a1095cb2d64d1270a18c7d2fb)) + + +### Bug Fixes + +* **ci:** allow full research suite to finish within its job budget ([231172e](https://github.com/groktopus/groktocrawl/commit/231172e5c8321ffac689fee875be4a10d181d71d)) +* **ci:** include semantic source in storage acceptance containers ([88af3af](https://github.com/groktopus/groktocrawl/commit/88af3af2decf604b3bef876e6efe28a642987030)) +* **ci:** isolate agent images and reload staged source ([12c415d](https://github.com/groktopus/groktocrawl/commit/12c415db6d1ca99b7f94fb30db844ff5023d8191)) +* **ci:** keep MCP tests on the internal Docker network ([9409e7b](https://github.com/groktopus/groktocrawl/commit/9409e7b04fc553024249a941fc42ccab02e317e3)) +* complete bounded durable research planning and callbacks ([3f14069](https://github.com/groktopus/groktocrawl/commit/3f1406970c900ab999b04bb07009c2c16bb2eeeb)) +* expose explicit durable follow-up execution across clients ([be7f8d5](https://github.com/groktopus/groktocrawl/commit/be7f8d5333890cf79eaf36e9900f8f7a651d0264)) +* **followup:** honor callback and evaluation options across clients ([ae88cda](https://github.com/groktopus/groktocrawl/commit/ae88cda422539d8d23df20ed96c325a4a71198c9)) +* make retained research attachments usable in session questions ([ab2fbb1](https://github.com/groktopus/groktocrawl/commit/ab2fbb19a8aefd20dd48af4c17f1f0545cee014f)) +* normalize pending webhook scan keys ([d649ba0](https://github.com/groktopus/groktocrawl/commit/d649ba09e15a6da022fcd0edbc6343f2c408d335)) +* recheck attached evidence before publishing session answers ([2a7d8b0](https://github.com/groktopus/groktocrawl/commit/2a7d8b026ee86c246ce69c5c2b4f43ec03bfa680)) +* recheck retained research before saving deepen findings ([5871b48](https://github.com/groktopus/groktocrawl/commit/5871b48851b836109158ece57f817eea35fea0fc)) +* require owned session evidence for durable follow-ups ([fbe0a8b](https://github.com/groktopus/groktocrawl/commit/fbe0a8b78b426bb0f57029ee3b5ba390740c7c7d)) +* **research:** complete bounded discovery time evaluation and callbacks ([6efc27e](https://github.com/groktopus/groktocrawl/commit/6efc27e52d8bbdf9b84598b329ee2a809072b6c6)) +* **research:** execute live objectives with durable call receipts ([6d75f9a](https://github.com/groktopus/groktocrawl/commit/6d75f9ab0bd432650ccafd16121b5d45e40bbbcc)) +* **research:** execute live objectives with durable call receipts ([9f634de](https://github.com/groktopus/groktocrawl/commit/9f634debeee6877061fd18d5fcb86d95e4d81d76)) +* **research:** preserve publication eligibility error context ([ab6a5f5](https://github.com/groktopus/groktocrawl/commit/ab6a5f55685841a7041278381c902c102e569711)) +* **research:** require explicit fixture run admission ([b9690aa](https://github.com/groktopus/groktocrawl/commit/b9690aaa772302a75bcec250d250e2b453aacc50)) +* resolve scoped retained sources for research follow-ups ([8db0333](https://github.com/groktopus/groktocrawl/commit/8db0333c487629518d9d31a1b86c9bf0c4a843bc)) +* **scraper:** recover blocked normal scrapes before admission ([31cde26](https://github.com/groktopus/groktocrawl/commit/31cde264b1fc303f6655309fff994f3907140694)) +* use retained research in session questions and follow-ups ([7baf683](https://github.com/groktopus/groktocrawl/commit/7baf68384f65974722a794c1f9163346a77717a7)) +* **webhook:** close callback responses without reading bodies ([4f7e23a](https://github.com/groktopus/groktocrawl/commit/4f7e23a6961eea677b6e63f8dbd71f92478f5749)) +* **webhook:** share bounded signed attempts for durable outboxes ([56e7ea9](https://github.com/groktopus/groktocrawl/commit/56e7ea9933ec9934763345df3437b931be068911)) + + +### Documentation + +* align release guidance with completed research workflows ([8eadca0](https://github.com/groktopus/groktocrawl/commit/8eadca03e7f9a5d7060b59307168b0eb6df7519d)) +* align research API and migration guidance with live execution ([c70fb72](https://github.com/groktopus/groktocrawl/commit/c70fb722eda0a15aaf8729ac16b125028896f72b)) +* audit release instructions against implemented behavior ([0d6c240](https://github.com/groktopus/groktocrawl/commit/0d6c24049e4fdffcb28c5c7ad593fb14a3ffd8bf)) +* clarify live research migration boundary ([f6dfa76](https://github.com/groktopus/groktocrawl/commit/f6dfa764ebad0ded6c6ca744375c99cf1659f414)) +* clarify the live research boundary in release overview ([af83611](https://github.com/groktopus/groktocrawl/commit/af836116f6b9a5fdff00692f43d87808a57b6752)) +* clarify webhook outbox retry guarantees ([a841040](https://github.com/groktopus/groktocrawl/commit/a841040d98433bf521771656fa973b085165a170)) +* close implementation audit after passing final research checks ([de49afe](https://github.com/groktopus/groktocrawl/commit/de49afe7bed116032781929131135813c61cd629)) +* define complete 1.0.1 integration cleanup ([38dff34](https://github.com/groktopus/groktocrawl/commit/38dff3432b62ffc88f4a39df897ad0ad525db3b0)) +* define the work required to complete 1.0.1 ([c369a53](https://github.com/groktopus/groktocrawl/commit/c369a534f2658d6287cbe923a6210a0946692aec)) +* link cleanup pull requests and remaining acceptance checks ([b9e6851](https://github.com/groktopus/groktocrawl/commit/b9e68510bcbcea76cfdcec0d58eaddc2a7c79475)) +* persist fixture opt-in through isolated checkpoints ([20af6eb](https://github.com/groktopus/groktocrawl/commit/20af6eb9f68856902085fd74e4160fd59304585d)) +* record final-head hosted research acceptance ([f572e5c](https://github.com/groktopus/groktocrawl/commit/f572e5cb986da593a4b61de5b397d6be729e445a)) +* track remaining research acceptance in release checklist ([bce92fc](https://github.com/groktopus/groktocrawl/commit/bce92fcf13b503bf6bc105fa2ef5e0a1da990042)) +* update legacy job recovery guidance ([c0b9f5e](https://github.com/groktopus/groktocrawl/commit/c0b9f5ec2160a465cc4f77661f227d949d83ddc4)) + + +### CI/CD + +* include migration SQL in workflow test containers ([510ba81](https://github.com/groktopus/groktocrawl/commit/510ba810ec141542b8968360c0241767fa620fd7)) +* isolate research acceptance database credentials and volumes ([06aafa4](https://github.com/groktopus/groktocrawl/commit/06aafa43f552357d613dbc9f45c75783b206f61a)) +* seed research inputs across the runner Docker boundary ([beadd73](https://github.com/groktopus/groktocrawl/commit/beadd738701afaca579253b4a39213857c0d740c)) +* start PostgreSQL for standard research acceptance tests ([15df8c0](https://github.com/groktopus/groktocrawl/commit/15df8c0f3426555d46ccd17caae7c8258846d552)) +* validate final research changes against main ([70b17fc](https://github.com/groktopus/groktocrawl/commit/70b17fc3ebd23dcffdba54bfb1892dd7109340bd)) + + +### Tests + +* align CI contracts with PostgreSQL acceptance setup ([a7ddca3](https://github.com/groktopus/groktocrawl/commit/a7ddca38d923b40a5d76e5b8fa10428eb505374e)) +* align durability checks with recovery contract ([c193b4e](https://github.com/groktopus/groktocrawl/commit/c193b4e7aa3ec63b87e5a8d4e67f469a8404d380)) +* **ci:** align source staging contract with semantic acceptance ([d7a92ae](https://github.com/groktopus/groktocrawl/commit/d7a92ae57a5efe906e68c343fa73409e86426264)) +* cover rejected and interrupted research callbacks ([cd317a6](https://github.com/groktopus/groktocrawl/commit/cd317a6e6f35b5b0f5fa9842291b985264cdd35c)) +* exercise document evidence through CLI and MCP clients ([8506e3e](https://github.com/groktopus/groktocrawl/commit/8506e3ed5ac06ab71a17c716f2e622cc3a4db928)) +* exercise isolated recovery and webhook outbox paths in CI ([4ee5daf](https://github.com/groktopus/groktocrawl/commit/4ee5dafef51e58b4c6cbea9644dbd26cfaf1d4e5)) +* install pinned MCP dependency for runtime acceptance ([319a2fe](https://github.com/groktopus/groktocrawl/commit/319a2fece9903a9d9a65990e472e3b0487f6bc75)) +* preserve owned session boundaries in research lifecycle checks ([9c24058](https://github.com/groktopus/groktocrawl/commit/9c24058cc6ec435dd625292af16ad7ebb225ba3a)) +* **research:** prove selected followups and session handoff over HTTP ([3a3ebf0](https://github.com/groktopus/groktocrawl/commit/3a3ebf0777a2845eba4ede0cb5bbea451b36dbb2)) +* verify attachment questions and citation deletion with Valkey ([0031d43](https://github.com/groktopus/groktocrawl/commit/0031d439c8d89400b2cab373bbe6d4eb663a197f)) +* verify automatic capture recovery through the public API ([4a0aafa](https://github.com/groktopus/groktocrawl/commit/4a0aafa0bc586e8876c9579ead57296fa612486b)) +* verify document questions through Parse HTTP and Valkey ([2927fe8](https://github.com/groktopus/groktocrawl/commit/2927fe8d8841bbb4964acbf224f0826efe61b831)) +* verify follow-up MCP parity and updated capability inventory ([6629d52](https://github.com/groktopus/groktocrawl/commit/6629d52c7c7f9647ae34d3397bf58356ba18963b)) +* verify late document passages survive the complete client workflow ([f864e11](https://github.com/groktopus/groktocrawl/commit/f864e11bd07287f43bd109c55752739baab33861)) +* verify semantic HTTP workflows without Qdrant ([b43d9b8](https://github.com/groktopus/groktocrawl/commit/b43d9b836d1e36be08e5ed9c9641c0444f7cb366)) + ## [1.0.0](https://github.com/groktopus/groktocrawl/compare/v0.14.0...v1.0.0) (2026-10-16) diff --git a/pyproject.toml b/pyproject.toml index 63bec85f..7b75c81a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "groktocrawl" -version = "1.0.0" +version = "1.0.1" description = "Self-hosted, Firecrawl-compatible web scraping and AI research API" requires-python = ">=3.12" dependencies = [ diff --git a/uv.lock b/uv.lock index bb0de8cb..d025e1f1 100644 --- a/uv.lock +++ b/uv.lock @@ -803,7 +803,7 @@ wheels = [ [[package]] name = "groktocrawl" -version = "1.0.0" +version = "1.0.1" source = { virtual = "." } dependencies = [ { name = "beautifulsoup4" }, From 3517618b1ff9ebf713aead0cb4d20f79ac52a64b Mon Sep 17 00:00:00 2001 From: Magnus Hedemark Date: Fri, 16 Oct 2026 06:31:00 -0400 Subject: [PATCH 2/2] docs: explain the 1.0.1 research workflow fixes --- CHANGELOG.md | 120 ++++++++++++++++++++++++--------------------------- 1 file changed, 57 insertions(+), 63 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e895acd..9f321c77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,83 +4,77 @@ All notable changes to GroktoCrawl are documented in this file. ## [1.0.1](https://github.com/groktopus/groktocrawl/compare/v1.0.0...v1.0.1) (2026-10-16) +GroktoCrawl 1.0.0 shipped its new durable research endpoint connected to demonstration data. That was a release defect. This patch connects it to configured search, page capture and model services, and completes the related workflows that were left unfinished. The existing `/v2/agent` research endpoint was already using real services. -### Features +### Research that produces usable evidence -* recover queued legacy jobs after restart ([9a53ca1](https://github.com/groktopus/groktocrawl/commit/9a53ca1287038c0ee47fdadf37be5060c56ad516)) -* recover queued legacy jobs after restart ([6e4ff1d](https://github.com/groktopus/groktocrawl/commit/6e4ff1d739eab21a1095cb2d64d1270a18c7d2fb)) +The durable endpoint turns your objective into a bounded investigation: up to three searches and eight retained sources, with explicit time and content limits. It saves the actual source text, checked knowledge and report artifacts. Completed operations can be reused after a restart. If an interrupted external call has an unknown outcome, the run reports that uncertainty instead of silently making the same paid call again. +You can attach retained research to a session, ask questions about it, inspect exact cited passages, and explicitly start a follow-up investigation from selected evidence. These workflows are available through the API, CLI and MCP. Uploaded documents can also be parsed, queried and read back through citations. -### Bug Fixes +### Scraping that tries recovery before giving up -* **ci:** allow full research suite to finish within its job budget ([231172e](https://github.com/groktopus/groktocrawl/commit/231172e5c8321ffac689fee875be4a10d181d71d)) -* **ci:** include semantic source in storage acceptance containers ([88af3af](https://github.com/groktopus/groktocrawl/commit/88af3af2decf604b3bef876e6efe28a642987030)) -* **ci:** isolate agent images and reload staged source ([12c415d](https://github.com/groktopus/groktocrawl/commit/12c415db6d1ca99b7f94fb30db844ff5023d8191)) -* **ci:** keep MCP tests on the internal Docker network ([9409e7b](https://github.com/groktopus/groktocrawl/commit/9409e7b04fc553024249a941fc42ccab02e317e3)) -* complete bounded durable research planning and callbacks ([3f14069](https://github.com/groktopus/groktocrawl/commit/3f1406970c900ab999b04bb07009c2c16bb2eeeb)) -* expose explicit durable follow-up execution across clients ([be7f8d5](https://github.com/groktopus/groktocrawl/commit/be7f8d5333890cf79eaf36e9900f8f7a651d0264)) -* **followup:** honor callback and evaluation options across clients ([ae88cda](https://github.com/groktopus/groktocrawl/commit/ae88cda422539d8d23df20ed96c325a4a71198c9)) -* make retained research attachments usable in session questions ([ab2fbb1](https://github.com/groktopus/groktocrawl/commit/ab2fbb19a8aefd20dd48af4c17f1f0545cee014f)) -* normalize pending webhook scan keys ([d649ba0](https://github.com/groktopus/groktocrawl/commit/d649ba09e15a6da022fcd0edbc6343f2c408d335)) -* recheck attached evidence before publishing session answers ([2a7d8b0](https://github.com/groktopus/groktocrawl/commit/2a7d8b026ee86c246ce69c5c2b4f43ec03bfa680)) -* recheck retained research before saving deepen findings ([5871b48](https://github.com/groktopus/groktocrawl/commit/5871b48851b836109158ece57f817eea35fea0fc)) -* require owned session evidence for durable follow-ups ([fbe0a8b](https://github.com/groktopus/groktocrawl/commit/fbe0a8b78b426bb0f57029ee3b5ba390740c7c7d)) -* **research:** complete bounded discovery time evaluation and callbacks ([6efc27e](https://github.com/groktopus/groktocrawl/commit/6efc27e52d8bbdf9b84598b329ee2a809072b6c6)) -* **research:** execute live objectives with durable call receipts ([6d75f9a](https://github.com/groktopus/groktocrawl/commit/6d75f9ab0bd432650ccafd16121b5d45e40bbbcc)) -* **research:** execute live objectives with durable call receipts ([9f634de](https://github.com/groktopus/groktocrawl/commit/9f634debeee6877061fd18d5fcb86d95e4d81d76)) -* **research:** preserve publication eligibility error context ([ab6a5f5](https://github.com/groktopus/groktocrawl/commit/ab6a5f55685841a7041278381c902c102e569711)) -* **research:** require explicit fixture run admission ([b9690aa](https://github.com/groktopus/groktocrawl/commit/b9690aaa772302a75bcec250d250e2b453aacc50)) -* resolve scoped retained sources for research follow-ups ([8db0333](https://github.com/groktopus/groktocrawl/commit/8db0333c487629518d9d31a1b86c9bf0c4a843bc)) -* **scraper:** recover blocked normal scrapes before admission ([31cde26](https://github.com/groktopus/groktocrawl/commit/31cde264b1fc303f6655309fff994f3907140694)) -* use retained research in session questions and follow-ups ([7baf683](https://github.com/groktopus/groktocrawl/commit/7baf68384f65974722a794c1f9163346a77717a7)) -* **webhook:** close callback responses without reading bodies ([4f7e23a](https://github.com/groktopus/groktocrawl/commit/4f7e23a6961eea677b6e63f8dbd71f92478f5749)) -* **webhook:** share bounded signed attempts for durable outboxes ([56e7ea9](https://github.com/groktopus/groktocrawl/commit/56e7ea9933ec9934763345df3437b931be068911)) +A normal scrape could recognize challenge text yet return it before reaching the +browser recovery path. The scraper now tries the configured recovery tools before +reporting that the page is unavailable. Callers do not need to know which retry +option to request. A successful browser solve is checked against the resulting +content; unresolved challenge pages remain errors and are not cached as articles. +This does not guarantee access to every protected site. +### Recovery, callbacks and storage -### Documentation +Queued legacy jobs can be recovered after a restart. Claimed work that cannot safely be resumed ends with an explicit `OUTCOME_UNKNOWN` result; partial artifacts remain visible. Completion callbacks use persistent delivery records and stable event identities. Receivers must deduplicate retries. -* align release guidance with completed research workflows ([8eadca0](https://github.com/groktopus/groktocrawl/commit/8eadca03e7f9a5d7060b59307168b0eb6df7519d)) -* align research API and migration guidance with live execution ([c70fb72](https://github.com/groktopus/groktocrawl/commit/c70fb722eda0a15aaf8729ac16b125028896f72b)) -* audit release instructions against implemented behavior ([0d6c240](https://github.com/groktopus/groktocrawl/commit/0d6c24049e4fdffcb28c5c7ad593fb14a3ffd8bf)) -* clarify live research migration boundary ([f6dfa76](https://github.com/groktopus/groktocrawl/commit/f6dfa764ebad0ded6c6ca744375c99cf1659f414)) -* clarify the live research boundary in release overview ([af83611](https://github.com/groktopus/groktocrawl/commit/af836116f6b9a5fdff00692f43d87808a57b6752)) -* clarify webhook outbox retry guarantees ([a841040](https://github.com/groktopus/groktocrawl/commit/a841040d98433bf521771656fa973b085165a170)) -* close implementation audit after passing final research checks ([de49afe](https://github.com/groktopus/groktocrawl/commit/de49afe7bed116032781929131135813c61cd629)) -* define complete 1.0.1 integration cleanup ([38dff34](https://github.com/groktopus/groktocrawl/commit/38dff3432b62ffc88f4a39df897ad0ad525db3b0)) -* define the work required to complete 1.0.1 ([c369a53](https://github.com/groktopus/groktocrawl/commit/c369a534f2658d6287cbe923a6210a0946692aec)) -* link cleanup pull requests and remaining acceptance checks ([b9e6851](https://github.com/groktopus/groktocrawl/commit/b9e68510bcbcea76cfdcec0d58eaddc2a7c79475)) -* persist fixture opt-in through isolated checkpoints ([20af6eb](https://github.com/groktopus/groktocrawl/commit/20af6eb9f68856902085fd74e4160fd59304585d)) -* record final-head hosted research acceptance ([f572e5c](https://github.com/groktopus/groktocrawl/commit/f572e5cb986da593a4b61de5b397d6be729e445a)) -* track remaining research acceptance in release checklist ([bce92fc](https://github.com/groktopus/groktocrawl/commit/bce92fcf13b503bf6bc105fa2ef5e0a1da990042)) -* update legacy job recovery guidance ([c0b9f5e](https://github.com/groktopus/groktocrawl/commit/c0b9f5ec2160a465cc4f77661f227d949d83ddc4)) +Research memory and the semantic page index can operate on PostgreSQL/pgvector without Qdrant after the documented migration and verification steps. Qdrant remains a supported backend and rollback option. Migration is explicit; upgrading does not silently move existing data. +### Important limits -### CI/CD +- Direct HTTP creation accepts `as_of`; CLI and MCP creation currently expose the objective, retry key and callback. `as_of` asks the research system to evaluate evidence for a date. It does not fetch an archived version of a page or prove that newly captured content existed on that date. +- Research remains bounded; it does not promise exhaustive discovery or perfect answers. +- Interrupted external calls are not exactly-once operations. The system preserves receipts and reports uncertainty where safe replay cannot be established. +- CI uses controlled search, capture and model services to verify integration and recovery. Those tests do not demonstrate a measured improvement in live-model answer quality. -* include migration SQL in workflow test containers ([510ba81](https://github.com/groktopus/groktocrawl/commit/510ba810ec141542b8968360c0241767fa620fd7)) -* isolate research acceptance database credentials and volumes ([06aafa4](https://github.com/groktopus/groktocrawl/commit/06aafa43f552357d613dbc9f45c75783b206f61a)) -* seed research inputs across the runner Docker boundary ([beadd73](https://github.com/groktopus/groktocrawl/commit/beadd738701afaca579253b4a39213857c0d740c)) -* start PostgreSQL for standard research acceptance tests ([15df8c0](https://github.com/groktopus/groktocrawl/commit/15df8c0f3426555d46ccd17caae7c8258846d552)) -* validate final research changes against main ([70b17fc](https://github.com/groktopus/groktocrawl/commit/70b17fc3ebd23dcffdba54bfb1892dd7109340bd)) +### Upgrading +Keep existing data and configuration backups. Live durable research requires +PostgreSQL schema 16, Valkey, configured search/capture/model services and all four +research feature flags. Keep `FEATURE_EXPERIMENTAL_RESEARCH_FIXTURE_RUNS=false`; +setting it true deliberately selects the development demonstration. Check the +research capabilities endpoint before starting a run. -### Tests +PostgreSQL vector migration has two separate parts: research-memory vectors and +the semantic page index. Full research-memory artifacts still live in Valkey. +Use the migration runbooks to initialize, backfill and compare each index before +changing its serving mode. Keep the documented rollback path until verification +is complete. + +Update the CLI from the same release as the server. MCP clients should refresh +their tool inventory to see explicit follow-up execution. Existing `/v2/agent` +remains the iterative research interface; the durable research API is a separate, +bounded workflow with retained evidence and restart handling. + +### Change list + +This patch includes the following reviewed changes: + +- [#670](https://github.com/groktopus/groktocrawl/pull/670): connect durable research to configured services; retain exact evidence and recover completed operations safely. +- [#671](https://github.com/groktopus/groktocrawl/pull/671): make attached research available to session questions, execute explicit follow-ups, verify document journeys and repair normal-request challenge recovery. +- [#672](https://github.com/groktopus/groktocrawl/pull/672): add PostgreSQL-only research-memory and page-vector modes with migration verification and reverse-copy support. +- [#673](https://github.com/groktopus/groktocrawl/pull/673): recover never-started jobs across six job families and retain completion/failure notification delivery across restarts. +- [#674](https://github.com/groktopus/groktocrawl/pull/674): plan bounded multi-query research, apply evidence-time checks and deliver durable research callbacks; correct CLI follow-up routing. +- [#675](https://github.com/groktopus/groktocrawl/pull/675): reconcile the architecture, ADR index, README, contributor/agent guidance, client guides, migration and recovery instructions with the implemented release. + +### Verification + +The implementation and documentation pull requests passed their required checks. +Each final hosted and self-hosted integration suite passed 2,798 tests, with +162 skips and 17 deselections reported separately. All nine live-research HTTP +cases passed against real PostgreSQL and Valkey with controlled search, capture, +model and callback services. The tests cover different objectives, retained +source reads, interruption recovery, callbacks, evidence dates and follow-ups. -* align CI contracts with PostgreSQL acceptance setup ([a7ddca3](https://github.com/groktopus/groktocrawl/commit/a7ddca38d923b40a5d76e5b8fa10428eb505374e)) -* align durability checks with recovery contract ([c193b4e](https://github.com/groktopus/groktocrawl/commit/c193b4e7aa3ec63b87e5a8d4e67f469a8404d380)) -* **ci:** align source staging contract with semantic acceptance ([d7a92ae](https://github.com/groktopus/groktocrawl/commit/d7a92ae57a5efe906e68c343fa73409e86426264)) -* cover rejected and interrupted research callbacks ([cd317a6](https://github.com/groktopus/groktocrawl/commit/cd317a6e6f35b5b0f5fa9842291b985264cdd35c)) -* exercise document evidence through CLI and MCP clients ([8506e3e](https://github.com/groktopus/groktocrawl/commit/8506e3ed5ac06ab71a17c716f2e622cc3a4db928)) -* exercise isolated recovery and webhook outbox paths in CI ([4ee5daf](https://github.com/groktopus/groktocrawl/commit/4ee5dafef51e58b4c6cbea9644dbd26cfaf1d4e5)) -* install pinned MCP dependency for runtime acceptance ([319a2fe](https://github.com/groktopus/groktocrawl/commit/319a2fece9903a9d9a65990e472e3b0487f6bc75)) -* preserve owned session boundaries in research lifecycle checks ([9c24058](https://github.com/groktopus/groktocrawl/commit/9c24058cc6ec435dd625292af16ad7ebb225ba3a)) -* **research:** prove selected followups and session handoff over HTTP ([3a3ebf0](https://github.com/groktopus/groktocrawl/commit/3a3ebf0777a2845eba4ede0cb5bbea451b36dbb2)) -* verify attachment questions and citation deletion with Valkey ([0031d43](https://github.com/groktopus/groktocrawl/commit/0031d439c8d89400b2cab373bbe6d4eb663a197f)) -* verify automatic capture recovery through the public API ([4a0aafa](https://github.com/groktopus/groktocrawl/commit/4a0aafa0bc586e8876c9579ead57296fa612486b)) -* verify document questions through Parse HTTP and Valkey ([2927fe8](https://github.com/groktopus/groktocrawl/commit/2927fe8d8841bbb4964acbf224f0826efe61b831)) -* verify follow-up MCP parity and updated capability inventory ([6629d52](https://github.com/groktopus/groktocrawl/commit/6629d52c7c7f9647ae34d3397bf58356ba18963b)) -* verify late document passages survive the complete client workflow ([f864e11](https://github.com/groktopus/groktocrawl/commit/f864e11bd07287f43bd109c55752739baab33861)) -* verify semantic HTTP workflows without Qdrant ([b43d9b8](https://github.com/groktopus/groktocrawl/commit/b43d9b836d1e36be08e5ed9c9641c0444f7cb366)) +These are integration results, not a claim that a live model always produces +better answers. Follow the upgrade and backup instructions for your deployment. ## [1.0.0](https://github.com/groktopus/groktocrawl/compare/v0.14.0...v1.0.0) (2026-10-16)