tempest 0.0.0.9000
Tempest’s research tools declare their actual read, provisional-write, and web effects, including moderator delegation. Deputy >= 0.0.0.9002 can enforce its base permission policy without a permissive callback, while file writes and ambient execution remain disabled. The supported ecosystem pins use the validated merged Deputy, dsprrr, Graft, and shinymcp revisions (JamesHWade/deputy#223, JamesHWade/deputy#234).
tempest_app(demo = TRUE)opens an offline ecosystem demonstration with actual deputy and dsprrr execution, synthetic initial and corrected research, a shinymcp card, explicit Graft acceptance and withdrawal, and fresh-process exact-evidence reuse (#186).tempest_mcp_app()presents one completed STORM or Co-STORM product as a pinned, read-only MCP App with a compact overview, exact claim-by-span evidence, and the committed report; rendering and inspection do not rerun research or record acceptance (#186).Deputy-backed STORM and Co-STORM setup errors now identify safe underlying causes while redacting credential-like details (#69).
tempest_research_workspace(),tempest_resource(), andtempest_source_id()now provide supported workspace, fetched evidence, and source identity constructors for host retrievers passed to STORM or Co-STORM (#70).Tempest’s Graft artifact consumer now uses contract 4 task-oriented APIs and typed S7 stores, references, selections, artifacts, and decisions while preserving exact research identity, reviewed predecessor checks, and current eligibility rechecks (JamesHWade/graft#91).
Accepted research now uses artifact selections throughout STORM and Co-STORM inputs, save, restore, resume, and daily-briefing examples. Native Graft views, graph promotion plans/receipts, compiled schemas, and snapshot sidecars are removed. Current formats are workspace 7, research manifest 5, STORM bundle 10, Co-STORM snapshot/bundle 13, and trajectory review 3; older shapes are rejected without compatibility wrappers (zf9y; Graft #50, #74).
Research manifests now retain the exact artifact evidence selection for STORM and Co-STORM, reject a different workspace basis, and preserve that provenance in published corrections. Manifest schema 5 requires regenerating earlier preproduction bundles (zf9y; Graft #50, #74).
The offline artifact correction proof now executes two complete STORM runs, reviews contradictory evidence, and verifies historical reports and supports plus current eligibility after fresh-process reopening (zf9y; Graft #50).
tempest_publish_artifact_research(),tempest_read_artifact_research(), andtempest_reuse_artifact_research()preserve completed research through Graft’s public artifact and decision interfaces, retain exact reports and evidence, and recheck current host eligibility at research admission (srvc).tempest_session_resume()and STORM resume now require freshly supplied artifact knowledge matching the saved selection; policy callbacks and store handles remain transient (srvc).tempest_trajectory_review()now projects exact input artifact selections and output publications with explicit historical acceptance decisions in schema 3; native output receipts and every other review schema are rejected (JamesHWade/graft#74).Persisted workspace, STORM, and Co-STORM formats are now 7, 10, and 13. Regenerate older experimental bundles; compatibility readers are not provided.
tempest_artifact_knowledge()admits an exact host-selected artifact input without a Graft view and preserves its content, revision references, dependencies, and provenance across save/resume (graft #64).Tempest no longer pins ellmer to a fork commit in
Remotes. Released ellmer (>= 0.5.0) satisfies the dependency, so Tempest installs beside packages that require ellmer 0.5 (querychat 0.4.0 broke every dowci CI build on the old pin). When the installed ellmer lacks the ChatGPT subscription-authentication port,openai/chats fall back to API-key authentication with a once-per-session note instead of aborting.The daily briefing example preserves complete selected evidence across unchanged days and reviewed corrections, with an executable offline companion (graft #50).
Subscription authentication now uses the ellmer 0.5-based port of upstream subscription support, allowing current Graft dependencies to resolve (tidyverse/ellmer#1067).
The development package version is
0.0.0.9000while Tempest remains unreleased. Compatibility contracts and persisted storage formats retain their independent versions.Tempest now installs reviewed Deputy, dsprrr, and Graft commits for repeatable integration checks, while a weekly job checks compatibility with their current
mainbranches (#69). dsprrr’smodule()no longer takestype, and its runner requires a real ellmerChat, so the test fakes are R6-classed environments that expose chat history (0mpk).Briefing items now decide structurally whether a verified claim changes accepted knowledge:
tempest_run()compares each claim’s text with theClaimrecords retained in the artifact selection, so an observation must be a claim that is not yet accepted and renders under “What changed”, while a no-change item must restate an accepted claim. The previous language-pattern gate for no-change claims is removed, and reloading a report re-checks the same disposition (0mpk).Internal ellmer Chat clients are now governed directly by Deputy Agent objects while preserving Tempest’s exact completion and terminal-trace bindings; this removes Tempest’s parallel hand-built Chat facade and accepts real R6 ellmer clients, including shinychat attachment content (pjsd).
The public namespace now has 23 exports and one S3 method,
print.tempest_knowledge(). Product entry points remain compact, while workspace, resource, and source-ID constructors provide a narrow supported host-retriever seam. Generic workflow, compiler, evaluation, progress, async execution, and Shiny implementation surfaces remain internal; the bundled application is reachable throughtempest_app()(pjsd; #70; #83).User-facing failures now inherit
tempest_errorand exactly one public category:tempest_input_error,tempest_execution_error,tempest_persistence_error,tempest_authority_error, ortempest_cancelled; internal subclasses remain for diagnostics, and the original provider or package condition stays reachable through the ordinary parent chain (pjsd).SimulatedUser,tempest_task(),tempest_costorm_task(),tempest_compile_programs(),tempest_save_program_set(), andtempest_load_program_set()are removed without replacement; standalone evaluation and file-backed ProgramSet compilation are no longer Tempest capabilities, and resume continues to verify a supplied ProgramSet against persisted program identity (pjsd).Progress callbacks now receive one canonical plain named record with exactly
event_id,run_id,workflow,event_type,stage,step,status,timestamp,message,payload,parent_event_id, andcorrelation_id, so hosts can store and reduce progress with ordinary R code instead of event constructors, decoders, or label tables (pjsd).TempestSessionis reduced to six operations (warmup(),step(),suggest_questions(),add_expert(),retire_expert(), andpublish()) and six read-only projections (session_id,topic,status,experts,transcript, andmindmap);publish()replaces the mutatingreport()method, and completion claiming, event emission, Deputy routing, mind-map maintenance, and workspace and manifest mutation are now private (pjsd).tempest_app()replacesrun_app()so every Tempest entry point is visibly namespaced (pjsd).tempest_claim_supports()now returns the complete joined proof table, adding claim text and the exact evidence-span quote, offsets, page, and section heading to the existing support, claim, and source identities (pjsd).tempest_report()is now the one read accessor for the committed Markdown report of a completedtempest_run()product or a published session, replacingtempest_report_md()andtempest_session_report_md()(pjsd).tempest_run()now returns one validated product value read throughtempest_report(),tempest_sources(),tempest_claims(),tempest_claim_supports(), andtempest_trajectory_review(); the raw retriever, mutable workspace, manifest, and stage state are no longer part of the supported result surface (pjsd).tempest_run()now canonicalizes dsprrr’s typed tabular structured results before strict validation and renders governed briefing items: observations copy threshold-verified claims exactly, while affirmative no-change findings must also pass a conservative deterministic language gate that rejects claims asserting another change; assessments and review actions stay visibly labeled and bound to their exact claim IDs, missing or inconclusive evidence is never presented as no change, and reports reject altered or repetitive items whose hidden provenance no longer matches the visible Markdown (pjsd).tempest_trajectory_review_data()exposes the validated, schema-versioned plain projection from an exacttempest_trajectory_review()value; Tempest rechecks the closed fields, nested identities and bindings, canonical-set ordering and uniqueness, bounded acceptance reconciliation, and content-bound review identity so downstream adapters do not duplicate source invariants (scans#21).Tempest 0.3 begins a hard, pre-production API reset: Agent Skill and Open Knowledge Format APIs and assets, standalone
tempest_suggest_questions(), permissive provider, model, and environment aliases, always-rejected STORM arguments, optional partial session recovery, and the Deputy SDK-compatibility hook have been removed without deprecation or migration shims; Graft is the sole accepted-knowledge compatibility boundary (pjsd).Experimental OpenTelemetry tracing can be enabled for bounded Tempest STORM, stage-execution, retrieval search/fetch, and Co-STORM moderator-completion, turn-commit, warmup, and report operations through a host-configured provider; the bundled Shiny STORM worker forwards only a validated Boolean intent, and local OTLP/HTTP Collector setup is documented without adding provider or backend ownership; the privacy-safe projection is off by default and excludes research content, identifiers, URLs, and arbitrary progress payloads (bavj).
The bundled Shiny workspace settings drawer now moves keyboard focus into its named controls, keeps mobile focus inside the full-width drawer, closes with Escape, restores the exact launcher, synchronizes launcher state, and leaves the desktop chat interactive (dqyv).
Tempest now uses Deputy’s current constructor, drop-in Chat, hook, and policy APIs: every product-owned session identifier passes through
Agent$new(session_id = )and is verified against the live runtime, async hosting callsstream_async()directly, run limits live only inUsageLimits, retired compatibility modes and hook results are gone, and current"cost_unavailable"and"tool_loop"terminal reasons remain distinct instead of collapsing to a generic error (JamesHWade/deputy#56).Co-STORM expert-session identities now bind their research run and expert owner while retaining a fresh session instance suffix; snapshot and bundle schema 13 rejects earlier formats rather than silently reinterpreting its legacy session identifiers (scans#21).
tempest_expert()now accepts only six authored scientific-profile fields, derives immutable identity and version from canonical content, and separates Co-STORM retirement into session-roster state; expert profile schema 2, STORM state schema 5 and bundle schema 10, and Co-STORM snapshot and bundle schema 13 have no compatibility readers (pjsd).Internally,
TempestResourceis the only writable evidence representation: retriever fetches, provider-native evidence, caches, workspace persistence, and direct workspace insertion all require exact records, while source-shaped values remain read-only presentation projections; legacy source lists and conversion paths have been deleted without compatibility handling (pjsd).
tempest 0.2.0
- Tempest is now explicitly scoped as a scientific-research product. Its experimental application-neutral workflow, runtime, capability, connection, skill, deliverable, artifact, and generic host-state kernel has been removed physically, including 41 public export names and two internal run restore/resume symbols;
tempest_run()andtempest_session()are the supported execution paths, with no compatibility or migration layer (an7p). - Tempest 0.2 is a hard cut to canonical research-product contracts:
ResearchWorkspacereplacesSourceStore; STORM and Co-STORM expose nostorealiases, legacy collection names, generic runtime injection, or generic result projections; old product bundles fail as unsupported; manifests carry exact dsprrr program, Graft snapshot, and Deputy execution identities; and the namespace contains exactly 63 exports with two registered S3 methods. Deputy identities support correlation and audit joins only, not claims of causal content provenance. - Current persistence is split among shared product-envelope primitives, ResearchWorkspace snapshots, Co-STORM bundles, and STORM bundles; it accepts only ResearchWorkspace snapshot schema 5, Co-STORM snapshot and bundle schema 9, STORM bundle schema 7 with state schema 4, ProgramSet schema 2, research-manifest schema 3, StageRecord output-digest payload schema 3, and promotion-bundle schema 1. Readers reject every other version, missing or extra fields, and values that only become valid after coercion.
- The bundled Shiny app now presents Co-STORM setup as a one-time native shinychat greeting with consistently sized controls, lets users replace generated panels with up to five named expert perspectives, adds asynchronous STORM, Transcript, and bounded Run review panels, retains explicit bounded session download/upload without autosave or parallel-research controls, labels mutable progress separately from authoritative StageRecords, and announces progress and success with polite status regions and failures with alerts.
-
tempest_agent_skills()andtempest_install_agent_skills()expose and install exactly the two supported research skills; the three retired generic-workflow skill directories have been removed. -
tempest_claim_support()andtempest_claim_supports()make each verifier judgment an explicit claim-by-evidence-span record with a deterministic identity, source binding, status, score, and rationale;tempest_verify_claims()replaces the complete pair set atomically, while claim summaries and citation audits are derived projections. -
tempest_config()removes the obsoleteartifact_store,enable_discourse_manager,node_expansion_trigger_count, andenable_unseen_surfacingcontrols; passing any of them is an error. -
tempest_costorm_task()andtempest_task()now evaluate real completed Co-STORM and STORM products by default, accept exact caller datasets plus optional ProgramSet and knowledge-view controls for their built-in solvers, return exact committed reports, and expose only bounded credential-safe trajectory summaries as solver metadata; custom solvers cannot claim those unverified controls. -
tempest_governed_procedure_ref()resolves an acceptedGovernedProcedureand exact dsprrrProgramArtifactonly through a pinned Graft view. ProgramSets carrying these typed references require the matching live view before provider execution; serialized references never grant authority by themselves. -
tempest_graft_schema()loads the immutable compiled scientific schema, whiletempest_promotion_bundle(research, claim_ids = NULL),tempest_save_promotion_bundle(),tempest_read_promotion_bundle(),tempest_graft_plan(), andtempest_promotion_receipt()provide a deterministic review-only path from a completed STORM result or succeededTempestSessionto exact accepted Graft revisions. Loose Workspace, Manifest, and StageRecord tuples are rejected; reading requires the original bundle id as an out-of-band trust pin; Tempest never commits a promotion implicitly; and prior promotion formats are rejected. -
tempest_program_set(),tempest_compile_programs(),tempest_save_program_set(), andtempest_load_program_set()make all ten STORM and Co-STORM stage programs explicitly addressable, preserve exact dsprrr artifact and evaluator identities, isolate compilation from the baseline, clear a selected stage’s stale governed reference when its artifact changes, and fail closed on incomplete, corrupt, or mismatched program bundles.tempest_run(),tempest_session(), session restore/resume, andtempest_shiny_server()accept and verify the ProgramSet before any stage executes. -
tempest_report_md()is now explicitly a deterministic, non-authoritative renderer that cannot finalize a Manifest, publish a product, or grant promotion authority, whiletempest_session_report_md()reads only the exact report already committed to a succeeded, quiescent Co-STORM session; both preserve canonical titles and citation-policy validation when callers omit the rendered References section. -
tempest_research_manifest()records the stable run, configuration, program, knowledge-snapshot, runtime, trace, and deliverable identities for STORM and Co-STORM without serializing runtime objects or credentials (04zh). -
tempest_research_workspace()andResearchWorkspacedefine the canonical provisional run-scoped evidence boundary, including an optional real path-freegraft::GraftSnapshot, its complete scalar identity, and accepted Graft references (04zh). -
tempest_run()andtempest_session()expose correlated research manifests and authoritative workspaces using only the canonical 0.2 product vocabulary (04zh). -
tempest_run()andtempest_session()now persist explicit product-owned execution records for every typed stage, reject unbound or malformed provider output before it can alter scientific state, commit extracted evidence and verification atomically, disclose every failure, cancellation, and fallback in the final report, and permit publication trust only when exact program, trace, claim, evidence-span, and verification provenance can be reconstructed. -
tempest_run()continues only from an exactoutput_dirbundle whenresume = TRUE; the internal state-only continuation seam has been removed. -
tempest_run(parallel_research = TRUE)rejects before any provider work because every open-ended expert turn must synchronously bind one terminal Deputy completion. -
tempest_session()now routes its moderator and every expert through persistent, permission-bounded Deputy agents. Co-STORM snapshots and bundles retain only credential-safe opaque run, session, agent, stage, role, expert, and correlation traces; provider execution and trace recording fail closed, and no Deputy Agent is serialized. -
tempest_session_process_turn_async()accepts and commits only completion-ID-bound Deputy results; raw chat payloads and legacy execution hints are unsupported. -
tempest_shiny_server()returns exactly ten product-specific members andtempest_shiny_store()exposes exactly thirteen product-named members, with distinct Co-STORM session/evidence/events, STORM events, authoritative report state, and a monotonic report-navigation event; the installed host example uses the same asynchronous STORM adapter as the bundled app, with no generic run, capability, connection, workflow, deliverable, or artifact accessors. -
tempest_suggest_questions()is a deterministic projection and no longer accepts chat or configuration controls. -
tempest_trajectory_review()returns a deterministic, bounded, non-authoritative review of one exact completed STORM or Co-STORM product, with ordered StageRecords, safe program, Deputy, evidence, and knowledge identities, explicit proposed or accepted promotion state, and non-causal join proofs; mutable progress, prompts, responses, source text, credentials, live objects, and capabilities are excluded.
tempest 0.1.0
- Persistence bundles from before the reusable workflow-kernel cutover are intentionally unsupported: Co-STORM restore requires schema version 4, and staged STORM restore requires schema version 3 with typed artifact indexes; completed perspective stages persist fingerprinted expert profiles (vtvt, wgr8).
- The bundled Shiny app now escapes untrusted model and source content, rejects unsafe links, isolates browser session storage behind upload/download archives with quotas and private permissions, provides cancellable STORM workers, runs Co-STORM expert generation, enrichment, suggestions, and reports asynchronously with provider-correct requests and ordered stale-safe commits, quarantines timed-out expert chats, and exposes an accessible keyboard-operable mind-map outline (da4c, 16dv, pyxm, qx4q, t593, gcg1).
-
run_app()now inherits the package-leveltempest.chatdefault while its model fields remain untouched; editing any model field switches the app to explicit per-role models. Tempest once again declares the shinychat development dependency required by the app and reports how to update an incompatible loaded version before launching. -
SourceStorenow validates source, claim, evidence-span, and dispute mutations, rejects orphan references and source-budget overflow, and keeps reverse indexes correct when claims are replaced; the unused parallel S7 source representation was removed (67h9, y2kw). -
SourceStoreandtempest_resource()now support fingerprinted web, file, message, database, and host-defined evidence resources with opaque locators, connection provenance, redaction and retention metadata, and durable claim lineage without requiring public URLs (fr54). -
tempest_agent_skills()andtempest_install_agent_skills()expose and install the two supported research skills; three generic-workflow directories remain only as inactive deletion inventory until T8 removes them physically (cheg). -
tempest_artifact(),tempest_artifact_catalog(),tempest_artifact_store(),tempest_deliverable_spec(),tempest_generate_deliverable(),tempest_objective(), andtempest_operation_registry()add an application-neutral output lifecycle with versioned operation references, validation, evidence lineage, typed multi-format artifacts, approval-before-export enforcement, safe invalid-output retries, host storage adapters, and checksummed persistence shared by STORM, Co-STORM, and host-defined outcomes (xbwy). -
tempest_artifact_codec_registry()andtempest_artifact_store()provide versioned runtime codecs and complete typed storage adapters for inline or external custom artifact representations without serializing executable codec functions (fr54). -
tempest_config()now validates scalar model, logical, search, source, expert, query, and retrieval budgets immediately with classed errors, and provider tools cannot exceed configured search limits (y2kw). -
tempest_config()now honors thetempest.chatR option for a default provider/model string or cloneable ellmer Chat; explicitmodelsandchat_fnarguments still take precedence, and role-specific prompts are preserved (serz). -
tempest_config()now creates its built-in OpenAI clients withellmer::chat_openai(auth = "codex"), reusing file-backed ChatGPT subscription authentication managed by Codex CLI; custom chat options and factories remain available for API-key and alternative-provider access (tidyverse/ellmer#1067). -
tempest_create_ragnar_store()preserves and validates compatible persistent stores by default; destructive replacement now requiresreset = TRUE(yb8s). -
tempest_costorm_workflow_run()andtempest_storm_workflow_run()expose the built-in research workflows as executableTempestRunspecifications with shared evidence, typed checkpoints, selected expert teams, scoped connections, and an approval-gated Co-STORM dialogue boundary (vtvt). -
tempest_execution_events()provides one cursor-based event query forTempestRunandTempestSession; Co-STORM sessions now own normalized event history directly, and persistence migrates legacy progress history out of the auxiliary artifact environment. -
tempest_report_md()now applies strict citation actions to complete matched assertions, removes unsupported assertions underdrop, givesrevisedistinct behavior, and no longer lets unrelated claims sharing a source determine sentence status (e9kn). -
tempest_run_async()now executes in a real Mirai worker, preserves result and error semantics, returns without blocking, and can be stopped withtempest_run_cancel()(4303). -
tempest_session_save()now replaces bundles atomically from a complete sibling staging directory, records SHA-256 checksums for every declared file, andtempest_session_resume()verifies manifest completeness and integrity with explicitpartial_recoverysupport (arqh). - Retriever URL fetching now parses and resolves destinations structurally, rejects non-public and obfuscated IPv4/IPv6 targets, revalidates redirects, and enforces timeout, redirect, content-type, and body-size limits; cache writes are atomic, corrupt entries are quarantined, and transient fetch failures are retried instead of cached indefinitely (vbg7, cax6).
- Search-provider, evaluation-task, app-startup, asynchronous-run, and UI integration boundaries now have deterministic fixture-based contract coverage without API keys or network access (kqgx).
-
tempest_expert(),tempest_skill(),tempest_capability_spec(),tempest_connection_ref(), andtempest_runtime()add stable expert profiles, reusable skill contracts, per-context least-privilege capability resolution, opaque host connection bindings, exact expert-session restoration, and durable per-step grant records; global all-chat tool registration and thetempest_config(tools = )argument have been removed, so hosts should attach tool implementations through scoped runtime capabilities (wgr8). -
tempest_artifact_store(),tempest_expert(),tempest_progress_event(),tempest_session_save(),tempest_shiny_ui(), and related host-app APIs now carry explicit experimental lifecycle badges, and the pkgdown reference groups separate core workflows, evidence, host extension points, persistence, progress, and dsprrr modules (2nzw). -
tempest_claims()now preserves support scores from structured fact extraction, andtempest_sources()now includes derivedcontext_textplus fallback snippets for source rows backed by content or provider-native citation context (w3fm, fmbv). -
tempest_config()now defaults toopenai/gpt-5.6-solfor coordinator and writer roles, andopenai/gpt-5.6-lunafor expert, mind map, and judge roles. Built-in subscription clients use lower reasoning effort for auxiliary mind-map and judge calls, andrun_app()bounds provider requests to 120 seconds by default. -
tempest_config(),tempest_retriever(), and session persistence now use catchable cli/rlang condition classes for invalid providers, missing search-provider environment variables, unsafe URLs, chat setup failures, invalid artifact stores, and invalid session objects, all sharing a commontempest_errorbase class (and atempest_persistence_errorbase for save/load failures) so callers can catch them with a single handler (9c6a). - The Chat tab now suggests follow-up questions as clickable cards using shinychat’s recognized suggestion markup. A set appears when the expert panel assembles and refreshes after each answer; clicking a card sends that question to the Moderator. Toggle it off with “Suggest follow-up questions” in the sidebar. New exported helper
tempest_suggest_questions(). -
tempest_config()gainsmax_search_queries_per_turnandretrieve_top_kcontrols to mirror the upstream STORM runner’s query and section-retrieval limits. -
tempest_config(search_provider = )now accepts upstream-style retrievers for You.com, Bing, DuckDuckGo, SearXNG, Google Custom Search, and Azure AI Search in addition to the existing native, Wikipedia, Serper, Brave, and Tavily providers. -
tempest_config()gainscache_enabledandcache_ttlcontrols for retriever search/fetch caching,TempestRetriever$cache_stats()reports local cache counters, andtempest_cache_clear()clears all or stale cache entries (ryfx). -
tempestnow imports dsprrr directly for STORM structured extraction and generation modules. -
tempest_run()now executes STORM structured steps through dsprrr modules, with ellmer fallbacks for module creation or runtime failures. -
tempest_run_save(),tempest_run_resume(), and thetempest_run_*()accessors give host applications checksummed generic run bundles plus stable status, event, approval, per-attempt capability-grant, artifact, cancellation, strict restore-integrity, permission-narrowing, and explicit partial-recovery controls without reaching into mutable R6 internals (vtvt). -
tempest_run_workflow(),tempest_workflow_spec(), andtempest_workflow_step()add a generic deterministic run shell with expert assignments, bounded retry history, ordered events, typed artifacts, requested-output completion checks, pre-execution policy gates, post-generation output approvals, cooperative cancellation, process-local runtime services, and explicit runtime snapshot restoration (vtvt). -
tempest_run()andtempest_session()now pass source context into dsprrr claim extraction for provider-native citations, so optimized extraction works for native web-search turns as well as inline[S...]citations (c8jk). -
tempest_run()andtempest_session()now expose evidence review tools for agents to inspect claims, cited sources, evidence spans, and unsupported claims without requiring write access (my3y). -
tempest_run()andtempest_session()now expose claim-orientedadd_claimandlist_claimsagent tools while keepingadd_factandlist_factsas transitional aliases (msg3). -
tempest_okf_concepts(),tempest_okf_context(),tempest_okf_resources(), andtempest_read_okf()read bounded Open Knowledge Format bundles as typed evidence resources and explicitly untrusted agent context without executing referenced code or granting capabilities. -
tempest_progress_event()andtempest_progress_event_data()define a host-neutral STORM/Co-STORM progress event contract for package and host-app integrations (g7wt). -
tempest_progress_labels()provides compact host-neutral STORM and Co-STORM progress labels for stage chips and current-step displays (a3rg). -
tempest_progress_collector(),tempest_progress_filter(), andtempest_progress_replay()provide host-neutral in-memory progress sinks with filtering and replay helpers (wpt9). -
tempest_progress_state()reduces recorded STORM and Co-STORM progress events to compact host-neutral workflow state for UI and telemetry adapters (7f9q). -
tempest_run()gainsoutput_dir,resume, andrun_idarguments for persistent staged runs with JSON and Markdown artifacts. -
tempest_run()gainsparallel_writingfor upstream-style concurrent section writing with mirai. -
tempest_run()gains aprogresscallback that emits host-neutral STORM workflow events for stages, persistence, verification, final artifacts, and terminal failures (4fn5). -
tempest_run()gainsremove_duplicatefor upstream-style duplicate removal during the polish step. -
tempest_run(parallel_research = )andparallel_writingnow start and stop the mirai daemons they require, fall back to sequential execution when workers are unavailable, and retry any failed perspective or section so no research or content is silently dropped. A transient error during sequential research is also caught and skipped rather than aborting the whole run. -
tempest_session()gains aprogresscallback that emits Co-STORM session, warmup, expert/tool, dialogue, fact extraction, mind-map, suggestion, report, artifact, and failure events (qngb). -
tempest_session()now acceptssession_idso host apps can align Co-STORM progress, persistence, and artifacts with their own project/session identity (z0e0). -
tempest_session_process_turn_async()records completed user and moderator turns and performs evidence, mind-map, and suggestion enrichment asynchronously, returning a typed stale-safe result with host-presentable notices. -
tempest_session_save(),tempest_session_resume(),tempest_session_snapshot(), andtempest_session_restore()provide schema-versioned Co-STORM session persistence bundles and in-memory snapshot/restore helpers (zj62).tempest_session_save(overwrite = TRUE)only replaces directories that already look like a Tempest session bundle, so a mistyped path cannot recursively delete unrelated files. -
tempest_session_warmup_async()runs bounded expert orientations in parallel and commits transcript, evidence, and one mind-map update in deterministic order with per-expert timeouts and stale-result suppression. -
tempest_shiny_ui(),tempest_shiny_server(), andtempest_shiny_store()provide an experimental embeddable Shiny adapter for host apps, with fake-chat example code underinst/examples/shiny-host(z0e0). -
tempest_shiny_server()now exposes reactive generic run, event, approval, assignment, capability-grant, artifact, and evidence state; the example host app demonstrates a custom objective, selected expert, scoped connection policy, approval checkpoint, and non-report JSON deliverable (fr54). -
tempest_config(search_provider = )searches now apply a request timeout and retry on transient HTTP errors, and a single missing or non-public result URL no longer discards every other result for the query. - Co-STORM sessions now route turns, update the mind map, and summarise using the most recent dialogue turns instead of the oldest.
- Co-STORM evidence now records expert session ids, expert ids, and progress correlation ids on claims from expert tools, warmup, chat, and STORM research runs so Facts and Sources can be traced back to the agent turn that produced them (vtz9).
- Co-STORM moderators now receive the exact live expert roster and the real
delegate_to_expert()contract, must delegate substantive research questions before answering, preserve returned source and claim IDs, and surface an explicit evidence gap when a turn cites no inspected source. Each moderator turn delegates at most one narrow question, and experts reuse shared evidence before a bounded search, preventing exhaustive research loops from blocking the chat. Moderator answers avoid generic end-of-answer next-step menus, while suggestion cards focus on topic-specific research questions tied to evidence gaps, uncertainty, and mind-map expansion (svyx). - Persisted runs now write artifacts atomically and write the run manifest last, so an interrupted save cannot corrupt artifacts or leave
resumepointing at a stage whose output is missing. - The bundled Shiny app now targets shinychat’s
chat_server()API for streaming, cancellation, greetings, and client state management. - The bundled Shiny app now saves, loads, and autosaves Co-STORM session bundles from the Chat sidebar so restored sessions repopulate the chat, sources, mind map, transcript, and report views (n64q).
- The bundled Shiny app now renders STORM and Co-STORM workflow progress from host-neutral progress events and reducer state (e08d).
- The bundled Shiny app now streams STORM workflow progress from the background worker so stage chips update while a run is still in flight (1fxn).
- The bundled Shiny app now carries provider-native source context into Co-STORM fact extraction so warmup and chat turns populate Facts and Sources when sources were attached to the answer turn (b77g).
- The bundled Shiny app now invalidates Co-STORM progress output from asynchronous warmup callbacks so progress icons render while warmup is still running (2zbg).
- The bundled Shiny app now delegates its greeting, cancellation, suggestion cards, footer container, slash commands, attachments, and streamed tool and thinking displays to
shinychat; app-generated suggestion markup crosses a narrow typed trusted boundary while model output remains escaped, native card titles and attachment types are used, restored moderator turns are preserved, session controls usebslibaccordions and switches, and turn-only chat history remains disabled until it can restore complete Tempest experts, evidence, maps, progress, and reports (pkd5). - The bundled Shiny app now renders Tempest source citations as numbered inline links with cited-source reference panels in reports, transcript answers, and HTML report downloads (k67p, pgp9, eq7b, dq0v).
- The bundled Shiny app now registers slash commands for
/new,/new-session,/experts,/sources,/facts,/claims,/report,/system, and/tools, backed by normal chat-visible responses (t5zn). - The bundled Shiny app now uses a Tempest assistant icon in chat and transcript views plus deterministic expert icons for Co-STORM experts in the panel and workflow progress (q8zc, zb9y).
- The bundled Shiny app no longer errors when async chat callbacks refresh the shared session store outside a reactive consumer.
- The bundled Shiny app’s Co-STORM warmup now asks each capability-scoped expert for one bounded evidence-backed orientation in parallel, requires a targeted search when session evidence is absent, commits cited sources and claims in stable order before updating the shared mind map once, distinguishes evidence from scoping-only context in its summary, shows compact progress without streaming orientations into the chat, and retires timed-out expert sessions before later dialogue.
- The bundled Shiny app was rebuilt around Shiny modules (one per tab) with a shared reactive store, runs the STORM pipeline as a background
ExtendedTaskbound to its task button, and adds a knowledge-stats value-box strip on the Mind Map tab, a landing welcome message, and an “About” popover linking the STORM, Co-STORM, and DSPy papers and upstream repositories.
