- update exports in index.ts and add SafeFetch to tests
- add spac process --force extractor list
- spac process skips successful filings unless --force
- reset derived SPAC state for a forced spac-process rebuild
- skip successful spac-process filings unless forced
- parse spac process --force extractor list
- report reused filings in spac process summary
- three lifecycle classification defects
- stop spac process destroying and skipping extractor state
- update --force warning message and test case
- reorganize exports in index.ts for improved clarity
- update deps
@workglow/cli: 0.3.48typebox: 1.3.16workglow: 0.3.48
- update max unpacked bytes limit and add .map to forbidden suffixes
- update release script and enhance PROCESS_CONFIDENCES type safety
- format
- implement offering and sponsor promote text parsing functions
- parse SPAC warrant/rights fractions and sponsor promote tables
- parse SPAC offering price and unit count from markdown tables
- implement Retry-After cap in SecFetchJob
- let a sec fetch ask for a byte stream, and give the cache a sink
- enhance Form 1-A processing and schema definitions
- add support for new Reg A offering events and forms
- enhance SEC STAFF ACTION and 20-F handling
- add support for new forms 1-SA, Form 1-U, and Form QUALIF
- enhance handling of MODEL_INVALID_OUTPUT and MODEL_EMPTY in 8-K processing
- enhance Form 424 tests and processing logic for IPO handling
- add tests for equity class substance validation in Form 1-A
- add null fields to various schemas and test cases
- enhance ipoTrustAmount function to handle missing unit trust_per_unit
- add Karman Line Acquisition Corp. management and executive compensation details
- enhance classifyListingRemoval to recognize prior completed events
- implement issuer combination listing check for newcos
- introduce nonfatal filing handling for ownership forms
- sec spac download streams instead of materializing
- enhance model ID handling with fallback options
- enhance local linking of workglow packages
- add quarterly index command and integrate CIK last update tracking
- the bulk archives download through SecFetchTask
- the Feed tarball downloads through SecFetchTask
- enhance classification logic for listing removals and add tests for completed status
- replace the literal NUL separator that made the file binary
- bound the listing-removal completion inference to a recent proxy/vote
- stop a post-IPO 424 repricing the SPAC's IPO figures
- stop the download path materializing every filing it streams
- update withdrawal logic to account for later registrations
- order the unknown-floor allowance after the 20-F FPI-close check
- an unknown IPO floor no longer demotes a 25-NSE to deregistration
- stop treating MODEL_INVALID_OUTPUT as an expected negative
- store a null city rather than inventing one from the country
- enhance Reg A report document selection logic
- say out loud when no fetch cache is installed
- time the per-attempt timeout by stall, not by total elapsed
- declare the real output schema, so a cached fetch can actually stream
- clarify default model handling and update related tests
- normalize company names in storage and tests
- own the accession-doc fetch directly instead of wrapping it
- answer a cached stream read without reading the file
- one indexed pass over s1_classification; default resolve's version
- run prettier over the repo
- revert an incidental reformat of feedTarball
- add qualification and concurrent offering aggregates to test cases
- drive cik_last_update and the refresh filter through production code
- make the array-typed securities_offered_type type-checked
- describe the streaming fetch layer and the two bulk downloads
- put the QUALIF note back above QUALIF
- correct the ipo_date gate and document the address re-key
- pin prettier, ignore golden fixtures, run format-check in CI
@workglow/cli: 0.3.46typebox: 1.3.15workglow: 0.3.46@types/pg: ^8.23.1vitest: ^4.1.11
- add legal form handling for company names
- implement optionValue and csvOptionValue functions for improved CLI argument handling
- enhance risk factors extraction and improve title casing logic
- add SPAC-specific extractors and related-party handling in golden label tests
- enhance command exports and improve error handling in fetch commands
- implement classification logic for listing removals and add corresponding tests
- enhance dead-letter CLI commands and add tests for extractor filtering
- normalize securities offered types and enhance RegAOfferingSchema
- introduce CrowdfundingHistorySchema tests and update maxLength constraints
- add loi_date and target_description to spac_deal schema and tests
- add triageExtractors to ProcessSpacTimelineTask output
- implement current trust balance management for SPACs
- enhance Form 8-K processing with merger counterparty extraction and exhibit detail improvements
- enhance SPAC milestone event mapping and exhibit handling
- enhance deregistration handling and deal termination logic
- enhance formatSpacProcessSummary for dry-run functionality
- introduce temporary inventory script and enhance risk factors handling
- add spac download registration/8k/everything CLI
- download candidate registration and 8-K filings into accessiondocs
- add download helper for candidate form sets and cache paths
- enhance Form 424 processing with ipoProceeds calculation and add tests
- introduce Form RW and process withdrawal functionality
- add ipoTrustAmount function and related tests for trust calculations
- re-normalizing resolve, alias suggester, and an as-filed SIC signal
- recover structureless filings, and stop a stale header SIC minting a SPAC
- enhance model ID handling for environment variables
- implement metadata-only parsing for Form 25/15 and integrate deregistration processing
- key families off the legal name, not the model's common name
- derive a family name from a company's legal name
- score a mixed name column through the row's own entity kind
- run eval s1 sections through MapTask concurrency
- map candidate models per S-1 section
- add per-candidate S-1 eval MapTask worker
- add eval s1 --concurrency flag
- add eval s1 section concurrency default helper
- enhance print prompts with new document mode and extraction prompt estimation
- add --print-prompts schema mode
- add --dump-raw CLI flag and stderr dumps
- add stderr dump helpers for --dump-raw
- retain raw payloads in EvalS1Task when dumpRaw
- retain raw payloads in runUnitTermsEval when dumpRaw
- retain raw payloads in runExtractionEval when dumpRaw
- add captureEvalRaw for --dump-raw payloads
- add --print-prompts inspect-only dump to extract/s1/unit-terms
- add printEvalPrompts helper and resolveEvalFixtures
- update model pricing for Grok and DeepSeek models
- add list pricing functionality and tests for model pricing
- enhance model registration with optional inference provider support and pricing integration
- enhance EnsureModelDownloadedTask to support cloud model verification
- normalize blank equity class names to N/A instead of dropping the class
- merge main, repair fallbacks narrowing, bump workglow to 0.3.44
- enhance error handling in S-1 extraction process
- three heading gaps found on 30 more SPAC registrations
- generalize the nested-section fallback, minus the summary
- recover an ownership table that follows the roster unheaded
- recover an offering table the filer bolds inside the summary
- a CIK that is already a known SPAC is never demoted
- do not demote a small blank check, and read the shell Item 401 heading
- normalizer and segmenter defects found on real SPAC registrations
- correct estimate reporting, unbounded prune, and silent partial extractions (#250)
- ban a timed-out retry once bytes reached a receiver
- resolve the SEC request through resolveFetchInput
- bound EDGAR fetches in flight, not just their start rate
- stop the job queue retaining every downloaded document
- drop the write-only locals in stripCompanyAllEndings
- strip a series marker mid-name, not only at the tail
- state the diacritic gap, and restore the family-key floor
- repair the Postgres schema pin and the 424 family-tier gap
- scope the truncate scripts, and make aliases restorable
- correct expected length in listRegisteredComponents test
- stop counting partial extractions as issuer failures
- let a completion outrank a deregistration, and order the forms sweep
- classify 8-K items from the pre-filing event prefix
- build the download worklist per chunk, not from every filing at once
- own and run each filing's download task instead of executing it
- drop the inert per-instance title on the inner download task
- diagnosable failures, real progress, and clean abort in the doc download
- make --force actually evict the cached accession document
- guard nullable primary_doc in the SPAC download worklist
- make primary_doc nullable and pin the real fan-out shape
- isolate issuers in
spac processand count real successes
- carry owner_kind on the reference side so ownership scores
- scope personNameFields to person-only extractors, and pass it everywhere
- honor
disabledin the s1 sweep and report the axes it ran at - name every eval s1 fan-out axis, and keep partial sweeps
- define the four symbols main already imports
- print instructions without fixtures; restore s1 default guard
- count reproducibility against the fixtures actually measured
- fold Latin letters that carry their mark inside the glyph
- gate the initialism exception on heading shape and make the echo drop attributable
- stop dropping real risk-factor captions as carried-heading echoes
- drop only the chunker's own heading echoes, restore the strict mixed-shape guard
- bound throttle waits, narrow 429 detection, verify what gets stored
- store a risk-factor caption verbatim or not at all
- classify an exhausted throttle transiently and let Ctrl-C through
- ratio-gate the mixed risk-caption shape guard
- bound throttle waits, narrow 429 detection, verify what gets stored
- keep OpenRouter variant suffixes, de-race the readiness memo
- double the default max tokens for improved output handling
- fail fast on a malformed extraction temperature
- restore claude-sonnet-5 as the extraction default model
- update dtype in provider configuration from "q4" to "f16q4" for improved model performance
- count outcomes deterministically per extractor
- strip comments with a linear DOM walk, unblocking CI
- update runCliProcess to use async/await and improve error handling
- streamline response type guessing and add tests for SecFetchAccessionDocTask
- extract S-1 oracle run helpers for MapTask tasks
- expose extractor instruction builders for prompt dump
- update model ID handling to require explicit prefixes for onnx: llama: node-llama: open-router: etc
- extract buildExtractionPrompt for shared dump path
- page the download worklist scan and narrow it by form
- resolve style and walk the DOM without per-node cheerio wrappers
- terminate the cursor walk on truthiness
- fix from failing
- add unit tests for EvalExtractTask to validate fixture handling fixes
- correct the registered-component count for Form RW
- update component count in tests to reflect new extractors and resolvers
- pin the in-job loop against the post-delivery retry ban
- enhance handling of CJK names and placeholders in S-1 processing
- assert the registered command tree, not help-text substrings
- assert the CLI boot exit code and every command group
- guard the command graph against an unloadable import
- follow the dead-letter attempts semantics to their consumer
- cover --print-prompts schema CLI listing and dump
- describe the conditional 8-K classifier and the 25-15 extractor
- document family keys, diacritic folding, and re-keying
- state the --force eviction tradeoff honestly
- describe golden-label coverage and the cost of a bare eval s1
- update deps
- update deps based on audit
- update deps (workglow)
- update deps
- update dependencies
@workglow/cli: 0.3.45fast-xml-parser: ^5.11.0pg: ^8.23.0typebox: 1.3.14workglow: 0.3.45concurrently: ^10.0.5
- enhance extraction evaluation with reproducibility metrics
- enhance OpenAI reasoning effort configuration and improve extraction temperature handling
- add fast database count estimates
- extract the Item 402 Summary Compensation Table
- extract the risk-factor list from prospectus sections
- version-scoped coverage and drop-previous for family tiers
- dead-letter the storage-handler path instead of aborting the sweep
- batch prune's candidate lookup, bound current_sic, share the sqlite harness (#244)
- report n/a for a missing table instead of failing
db stats(#249) - count estimates against the real table names (#248)
- build the rate-limiter ledger components from the shared factory
- stop dropping the shared migration ledger in a scoped db reset
- derive db reset's rate-limiter table names from the limiter config
- keep the position row's fiscal year, and flag a missing comp section
- keep bare-phrase risk captions when a section yields nothing else
- fail loudly on a missing storage handler instead of dead-lettering it
- strip the xsl viewer prefix before sanitizing the cache path
- keep a section heading, and the first instance of furniture
- type the parsed form document instead of passing any
- drive both DI bootstraps from one storage registry
- assert the testing bootstrap binds every registered storage
- guard that db setup reaches every registered storage
- point the add-a-table workflow at the storage registry
- describe the storage registry both DI bootstraps read
- enhance source mode handling and improve package management scripts
- update dependencies and enhance extraction evaluation features
- update workglow and deps
- update GitHub Actions workflow to support manual dispatch and improve concurrency handling
@sroussey/parse-full-name: ^3.0.0@workglow/cli: 0.3.38csv-parse: ^7.0.2typebox: 1.3.11workglow: 0.3.38@types/pg: ^8.21.0better-sqlite3: ^13.0.3
- report
n/afor a table the database has not created instead of failing the wholedb statsreport;TableStat.rowswidens tonumber | null
- export the canonical person identity tier from the barrel
- add a table ownership registry and a Postgres column-alignment pass
- implement SPAC candidate identification and backfill name history
- pin golden fixture provenance +
sec fetch golden-fixtures
- add new forms for application withdrawal, broker-dealer, correspondence submission types, development bank, exchange registration, exempt offerings, foreign registration statements, investment companies, and miscellaneous filings
- drop repeated heading furniture in the de-paginator
- merge the resume copy instead of failing on a live row
- make the SQLite addresses rebuild crash-safe
- validate spac candidates options and widen the name columns
- keep the name timeline single-valued
- dispatch the candidate scan through resolveSqlBackend
- consult the current name before the closed-interval date
- truncate the spac_candidate repo in the in-memory reset
- make the Postgres reset atomic; drop the unused createStorage parameter
- scope
db resetto the tables sec owns - restore the schema migrations
db setupruns on an existing database
- address review findings on the migration and reset work
- release each filing's owned fetch workflow in the unbounded sweeps
- scope the dry-run guard to writes; require the repo argument
- stop raw-SQL paths writing under --dry-run; harden the title bulk read
- address review findings and decouple from unreleased workglow API
- stop retaining every section's prompt for the life of a sweep
- reject path-traversal in filer-controlled primary_doc
- use the storage
inoperator instead of hand-written SQL
- route every CIK through TypeSecCik, bound every SIC
- read observation titles in one IN-list, not one query per id
- index the per-issuer reads on the link and observation tables
- trim quarterly master.idx fixtures 49 MB -> 1.2 MB
- pin buildScanSql against its repository twin on real SQLite
- update the DRSLTR assertion for its new catalog entry
- track the reset's shared-object caveats as issues, not as a caveat block
- align the confidence ladder with the classifier
@workglow/cli: 0.3.37workglow: 0.3.37
- restore the schema migrations
db setupruns on an existing database - align Postgres column widths and nullability with the declared schemas
- scope
db resetto the tables sec owns, with--cascade/--drop-schema
- release each filing's owned fetch workflow so an unbounded sweep stops retaining every submission body it fetched
- bump workglow to 0.3.36 for
context.disown(0.3.35 was never published)
@workglow/cli: 0.3.36workglow: 0.3.36
- give every task a title so progress rows are readable
- don't let an un-parameterized task class evade the title guard
- bump workglow to 0.3.34 for the two-argument context.own
@workglow/cli: 0.3.34workglow: 0.3.34@types/pg: ^8.20.3
- enhance secModelRecord to throw on unknown model ids
- introduce saveAddressIfUsable and savePhoneIfUsable methods
- recognize
deepseek-*model ids and price them - introduce sweepStepContext for improved progress tracking
- add --force option to re-download archives
- keep US addresses whose filer left the state blank
- stop warning on the absent DeepSeek subpath; correct json-mode docs
- stream the worklist producer instead of materializing every filing
- emit the worklist in bounded batches instead of all at once
- note that DeepSeek's json-mode is not schema-enforced
- bump workglow to 0.3.33 and make DeepSeek routable
@workglow/cli: 0.3.33workglow: 0.3.33
- update workglow
- update dev container
@workglow/cli: 0.3.31typebox: 1.3.9workglow: 0.3.31better-sqlite3: ^13.0.2
- scale the forms sweep — cluster rate limiting, sharding, doc cache
- download accession documents via daily Feed tarballs
- enhance address normalization for foreign addresses
- restore SEC_UNIT_TERMS_REF override with fail-fast on missing path
- store person titles as dated per-title rows, not arrays (#216)
- replace UpdateAllFormsTask with ComputeFormsWorklistTask and enhance forms processing
- strip env-derived DI tokens on TestingDI reset
- update dep parse-address
- switch runner to vitest with hardening
@modelcontextprotocol/sdk: ^1.30.0@sroussey/parse-address: ^3.2.0@workglow/cli: 0.3.29typebox: 1.3.8workglow: 0.3.29concurrently: ^10.0.4
- update workglow
@workglow/cli: 0.3.28typebox: 1.3.7workglow: 0.3.28
- add CanonicalCompanyRepo and related exports for entity mapping
- SEC_UNIT_TERMS_REF override for the unit-terms reference CSV
- reset SEC_DRY_RUN after UpdateAllCompanyFactsTask tests
- widen XBRL context_ref + self-heal existing Postgres columns
- accept real EDGAR company-facts shapes during ingest
- let caller-supplied User-Agent override the default
- export FamilyResolver/normalizeFamilyName/CanonicalFamilyAliasRepo for downstream family tiers
- export TaskPorts type bridge for downstream task authors
- export Value from typebox/value for downstream schema tests
- export Task/Workflow/IExecuteContext/isStaleByAsOf for downstream ingestion
- export ServiceToken type for downstream DI token authoring
- re-export globalServiceRegistry + typebox Type for single-instance DI/schemas
- export resetDependencyInjectionsForTesting for downstream test setup
- export internals needed by downstream feature packages
- DatabaseExtensionRegistry wired into setup/reset
- registerSecResolvers registers built-in kinds via the registry
- add ResolverExtensionRegistry
- handle arraybuffer response_type in the file output cache
- thread caller headers through SecCachedFetchTask.execute
- update references to package name in CLAUDE.md and improve formatting for clarity
- stop shipping src/ in the published tarball; add prepack safeguard (#204)
- stop trusting import.meta.dir for read-only fixture / write-side cache paths
- reject non-integer CIKs at the arg parser instead of parseInt
- register sec resolvers in setupAllDatabases before version bootstrap
- remove accredited-portal feature from sec (moved to embarc-data)
- remove inline portal attribution from ingestion
- make resolver-versioning registry-driven
- accredited-portal moved to embarc-data; document extension registries
- update parse-address dep
- update deps
- add link and link-workglow scripts for local libs
- update package.json for project rebranding and configuration
@sroussey/parse-address: ^3.0.2@workglow/cli: 0.3.27csv-parse: ^7.0.1fast-xml-parser: ^5.10.1workglow: 0.3.27
- update package.json and sec.ts for project rebranding and structure
- expose library surface for superset CLIs (#203)
- add accredited-investor portal attribution for Form D filings (#197)
- add SPAC consolidated report with lifecycle tracking (#164)
- add Form 8-K parsing and event storage infrastructure (#68)
- add CFPORTAL form parsing and Reg A query support (#133)
- track company facts fetch/store outcomes with retry support (#132)
- add offering terms, underwriters, and use-of-proceeds extraction (#128)
- extend ReadOnlyTabularStorage with new getOffsetPage method and update getBulk signature
- enhance ReadOnlyTabularStorage with pagination and query capabilities
- enhance bootstrap tasks and error handling
- run query and db commands as task graphs via the workflow renderer
- honor --json flag in status and error output (#193)
- sponsor-family alias management + alias-aware 'spac by-family' query
- extend sec version coverage to resolver kind
- add sec canonical {person|company} alias commands
- add sec resolve --kind --version --all
- download model weights before use, with on-screen progress (#198)
- default the S-1 oracle reference to opus
- golden-truth oracle + reconcile table/bio roles
- score field-values by F1 so over-production is penalized
- surface per-row/field disagreements after a run
- add OpenAI, Gemini, and xAI providers to the model harness
- oracle comparison over real S-1 sections
- model comparison harness + local model wiring
- AI SPAC classifier, sponsor promote, de-SPAC linkage (#149, #150, #151)
- investorpres slot, portal featured, family descriptions
- target_description from merger proxies onto the deal + row
- SPAC business profile + leadership bio/birth_year extraction
- ISO date transforms + CIK/dimension query coverage (#154) (#195)
- skip nonce echo for local providers
- treat a board chair as implying director (drop redundant "Director")
- model person titles as a list of distinct roles (titles[])
- canonicalize management titles post-model
- extract SPAC sponsors into legal-sponsor + family tiers with links
- add extractSpacSponsors structured extractor
- write deterministic SPAC classification from header SIC
- add shared SGML-header + primary-document submission parser
- add real S-1 fixture sampler and document the extraction flow
- add dead-letter retry sweep, extractor CLI, and promote eligibility announce
- add S-1 prospectus extraction pipeline and dispatch
- add observation-provenance, beneficial-ownership, related-party, and dead-letter storage tiers
- node-llama-cpp GGUF local provider + workglow mega imports
- register SEC AI models in the global model repository
- register AI providers + retry model-error dead-letters without a version bump
- SPAC de-SPAC lifecycle — 8-K milestones, merger-proxy & redemption extraction (#166)
- route F-1 / F-1/A / F-1MEF (foreign issuer) through the S-1 extractor
- dispatch DRS/DRS/A to S-1 extractor; fetch registration forms as .txt
- split fetch/parse failure domains in ProcessAccessionDocFormTask
- ingest Section 16 (3/4/5) and Form 144 ownership filings (#116)
- add SponsorFamilyMembership + SpacSponsorLink tables with DI
- add CanonicalSponsorFamily + alias tables with DI
- emit
current_canonical_*view DDL - add alias repos with single-hop invariant
- add four canonical-level address/phone junction repos
- add CompanyIdentityLinkRepo
- add PersonIdentityLinkRepo
- add CanonicalCompanyRepo
- add CanonicalPersonRepo
- add alias schemas
- add canonical-level address/phone junction schemas
- add identity-link schemas
- add CanonicalCompanySchema
- add CanonicalPersonSchema
- add SponsorFamilyResolver + register sponsor-family resolver kind
- add EntityObserver helper for form storage modules
- add CompanyResolver v1 with CIK/CRD/name rules + alias pass
- add PersonResolver v1 with CIK/name rules + alias pass
- add resolverIds module
- add S1ClassificationRepo (filing-level SPAC record) + DI
- add form-agnostic EDGAR HTML to Document-tree converter
- add dropPrevious tests for extractor and resolver kinds
- extend drop-previous to resolver rows + orphan cleanup
- add ceremony CLI (start-dev, promote, rollback, drop-next, coverage, history); remove seed-test
- add VersionCoverage and VersionHistory queries
- add ceremonies module (startDev / promote / rollback / dropNext)
- add getActiveSlot helper (next-if-exists routing)
- add VersionEventRepo for ceremony audit log
- add VersionEvent schema and DI wiring
- add semver helpers (parse, major.minor, bump-progression validation)
- add target_count column to component_versions
- add ExtractorRunRepo helper
- bootstrap extractor versions on db setup
- add idempotent bootstrapExtractorVersions seeder
- add FORM_TO_EXTRACTOR_ID mapping and ExtractorId type
- add 'sec version status' and 'sec version seed-test' CLI
- add VersionStatus query for CLI rendering
- add VersionRegistry helper with slot accessors
- register ComponentVersion and ExtractorRun repos in DI
- add ExtractorRun schema and DI token
- add ComponentVersion schema and DI token
- add CompanyObservationRepo
- add PersonObservationRepo with natural-key upsert
- add CompanyObservationSchema
- add PersonObservationSchema
- address xhigh code-review findings
- update warning messages and improve test descriptions
- DRSLTR dispatch, SPAC sponsor span verification, resolver test + RFC-9112 Content-Length (#127)
- address code review issues — dropPrevious orphan check, DbStatus new tables, drop-previous CLI verb, resolve test coverage, CompanyResolver secondary keys
- init
- CLI validation, portal-attribute reporting, gguf path check (#201)
- make local GGUF models usable in eval and exit cleanly
- isolate redemption model-resolution + bulk-skip backfill candidates
- record extractor_runs for redemption + idempotent, fast backfill
- reject empty CIK filters
- report expected user-errors through task output ports; dedupe tier wiring
- preserve JSON workflow error handling
- make streamed query totalApprox a meaningful lower bound (#112)
- isolate multi-file import failures
- one owner per name; quote key lists in eval diffs
- drop ownership subtotal rows; add beneficial-ownership golden truth
- close the GBNF []-shortcut on nested titles[] too
- harden sponsor extraction + sponsor-family storage from code review
- fail loudly when an extractor has no fixtures
- normalize commas and initial/suffix periods in name alignment
- restore stderr progress for eval tasks when piped
- make de-SPAC linkage a write-once close-time snapshot
- stop deriving phantom deals after a completed combination
- gate SQLite withSpacCikLock through process-wide mutex (avoid concurrent BEGIN IMMEDIATE crash)
- allow caller-supplied pool client to recomputeSpacDeals to avoid deadlock with outer lock
- atomic per-CIK rollup writes + monotonic history chain
- record extractor_runs for merger-proxy + transactional recompute
- implement no-op updateWhere on ReadOnlyTabularStorage
- stabilize person name parts across punctuation/glyph variants
- instance-scope per-key mutex so multi-process race tests test what they claim (#160)
- FamilyResolver — alias inside mutex + UPPER case-normalization (#129)
- add readonly to PersonClaim/CompanyClaim; single timestamp per method
- director nominees + typographic name alignment
- render titles arrays clearly in diffs; sharpen split prompt
- record deterministic SPAC IPO event even when AI model fails to resolve
- derive fy sentinel from end_date to preserve PK width across period-agnostic facts
- accept EDGAR facts with null fy/fp
- move verify nonce out of untrusted fence into trusted preamble
- add NONCE_MISMATCH dead-letter reason code
- gate reapStaleObservations on version change to prevent LLM-variance data loss on same-version re-runs
- strip title/svg/math to close prompt-injection bypass in body-level and foreign-content elements
- declare Anthropic model capabilities so StructuredGenerationTask resolves
- init SQLite binding in setupAllDatabases before view DDL
- degrade gracefully when the AI model is unregistered
- store every filing row (proxy slice yielded undefined)
- clarify details doc + single-pass investorpres derivation
- address code-review findings + prettier
- close wave-2 (#177/#178/#179) review findings
- close 6 findings from max-effort review of the consolidation
- serialize junction observation_count with KeyedMutex
- align junction columns with address/phone schemas
- parseDate rejects calendar-invalid dates
- XbrlFactRepo.replaceForAccession no-ops on 0 rows unless intentionalClear
- close stripDoctype bypass via leading XML comment / PI
- restore predefined-entity decoding via bounded processEntities + DOCTYPE strip
- apply prompt-injection seal to merger-proxy + redemption extractors
- treat empty fetch body as no-text and swallow dead-letter write failures
- explicit null address_id/international_number in Form_1_Z signature observation
- remove dead resolveCountryCode from Form_1_K.storage
- close residual Unicode-invisible defang bypass
- widen defang TAG_SHAPED to admit whitespace mid-tag (closes bypass)
- wire new extractMergerDeal / extractRedemption to nonce-fence API
- per-call nonce fence + raw-span cap + multi-stage defang
- auto-resolve redemption-partial-oversized dead-letter (informational only)
- cap redemption AI input bytes; drop oversized exhibits
- persist redemption extraction even when SPAC has no deal yet
- trust the actual repo nature, not the lingering SEC_DB_TYPE token
- tx writes, versioned PK, accession unification, XML entity hardening
- partial-success outcome on extractor_runs
- bump test timeout on multi-spawn CLI tests to 15s
- address PR #109 review feedback
- address final review items
- reject all start-dev variants when next slot exists; drop dead check; comment promote atomicity
- patch-gate listFilingsWithoutSuccessfulRun on major.minor prefix
- address independent code review
- address PR #107 review feedback
- use cik: number in ExtractorRunRepo query API (matches codebase convention)
- address PR #106 review feedback
- enforce semver and coverage_complete invariants in putSlot
- drop redundant PK-prefix indexes; wire resetAllDatabases; sort imports
- PG unique-violation recognition + family-tier UNIQUE convergence + S-1/424 prompt-injection hardening (3× HIGH) (#163)
- Form 144/Ownership whitespace→null, PG dedup, Form_C/1-A stale-replay guards (#159)
- 5 HIGH review findings — stale replay, point-in-time, undated guard, deal sort, Schedule A (#155)
- Crowdfunding history on stale replay + CFPORTAL/A inheritance + docs (#135)
- address Copilot review on PR #124
- enforce UNIQUE constraints to close resolver race (#158)
- undated 1-K/1-Z guard + deterministic stale-replay tie-break (2 HIGH from code review) (#156)
- person-collision issuer guard + alias chain block + CLI input validation + coverage perf (#122)
- resolver race + observation_id PK + CSV NBSP + download leak (sec) (#121)
- preserve null vs 0 for empty numeric leaves on Forms 3/4/5 (#116 follow-up) (#117)
- align raw_phone_id maxLength with PhoneSchema
- set 30s global test timeout for multi-spawn CLI tests
- remove unused fn
- move src/fetch to src/task/fetch
- relocate EnsureModelDownloadedTask to src/task/model and name the file after the task
- make ensureModelDownloaded a task that infers provider from the model id
- import node-llama-cpp via the workglow mega package
- drop the spac narrative-column migration
- inline oracle sweep into EvalS1Task; own AI subtasks
- rename
sec eval s1 --candidatesto--models
- graph-ify every command through the workflow renderer
- shared typographic-punctuation fold for names
- drop the featured column
- extract shared CanonicalJunctionRepo base
- extract shared normalizeSponsorFamilyName for consistent family keys
- integrate wrapQueueStorage for SecJobQueue components
- delete legacy PersonRepo, CompanyRepo, and their schemas
- rewrite Form_1_Z.storage onto EntityObserver
- rewrite Form_1_K.storage onto EntityObserver
- rewrite Form_1_A.storage onto EntityObserver
- rewrite Form_C.storage onto EntityObserver
- rewrite Form_D.storage onto EntityObserver
- rewrite Form_D.storage onto EntityObserver
- route form-processing tasks via getActiveSlot (next-if-exists)
- UpdateAllFormsTask reads extractor_runs, drops --force
- write extractor_runs from ProcessAccessionDocFormTask
- derive TypeBox literal unions from const arrays
- use vitest so we can try node when needed
- add unit tests for SecFetchJob functionality
- isolate the priced-prospectus fixture from S-1 discovery globs
- pin priced-prospectus pipeline with a real 424B4 golden fixture
- update registered-component assertions for sponsor-family resolver kind
- add synthetic DRS .txt fixture exercising header parse + DRS dispatch
- end-to-end SPAC classification + sponsor family linkage + DRS dispatch
- assert FETCH_ERROR status pending; clarify Domain 3 throw comment
- cover fetch-layer dead-letter paths (PRIMARY_DOC_UNRESOLVED, FETCH_ERROR, parse rethrow)
- add fetch-fixtures script for pulling real EDGAR data (#108)
- update CLAUDE.md and new-module JSDoc for PR4
- update paths for design specs and plans in various skills and documentation
- drop LFM2.5 references; default the sweeps to cloud models
- document evaluating Bonsai 27B via the local GGUF path (#187)
- note metadata items/report_date are authoritative
- document sponsor-text extraction strategy in processFormS1
- rename bunsrc scripts for clarity
- bump workglow/cli 0.3.26, compromise 14.16.0, fast-xml-parser 5.10.0
- keep typebox 1.3.6 from main after rebase
- update deps
- keep extractor versions at 1.0.0 (no data to re-extract)
- update deps
- update deps
- ignore .worktrees directory
- update deps
- update deps
- update dependencies and ESLint configuration
- update dependencies and enhance CIK query functionality
- drop local HuggingFace/ONNX provider wiring
- register observation/canonical repos in DI; add view DDL
- default AI model to claude-sonnet-5 via shared SecModelDefault
- update @workglow/cli and related packages to version 0.3.13; add new domNodes.ts file for cheerio DOM node types
- rename bootstrapExtractorVersions; seed resolver components
- register resolver:person and resolver:company
- retire processed_filings; DbStatus reports extractor_runs
- limit rebuilds
@modelcontextprotocol/sdk: ^1.29.0@workglow/cli: 0.3.26commander: ^15.0.0compromise: ^14.16.0fast-xml-parser: ^5.10.0pdf2json: ^4.0.3pg: ^8.22.0typebox: 1.3.6workglow: 0.3.26@types/bun: 1.3.14bunset: 1.0.13
- update @workglow packages to version 0.2.0
workglow: 0.2.0@workglow/cli: 0.2.0
- improve jpath type check in XML parsing options
- update @workglow packages to version 0.0.125
- update @workglow packages to version 0.0.124
- update @workglow packages to version 0.0.123
- update documentation and dependencies for CLI improvements
- upgrade actions/setup-node to v6 in GitHub workflows
- upgrade actions/checkout to v6 in GitHub workflows
- update dependabot configuration to group @workglow packages
@workglow/cli: 0.0.126csv-parse: ^6.2.1fast-xml-parser: ^5.5.9@types/bun: 1.3.11
- wire up --dry-run flag to prevent all writes (#75)
- implement db status and db stats commands
- implement all query commands (offerings, crowdfunding, facts, persons)
- implement filing query command
- implement entity query command
- add interactive init wizard
- restructure commands into nested groups
- add output barrel export
- add runCommand error wrapper with exit codes
- add progress bar and spinner utilities
- add table renderer with table/csv/json formats
- add global options infrastructure
- prevent bun test exit code 1 when all tests pass (#67)
- CLI v2 review feedback — input validation, escaping, type safety, and docs alignment (#66)
- improve dependency injection initialization in command handling
- remove old flat command files
- enhance runCommand tests with exit code handling
- add CLI integration smoke test
- update SPEC.md to v2 CLI design
- bump @types/bun from 1.3.9 to 1.3.10 (#74)
- update dependencies and remove auto-assign workflow
@workglow/cli: 0.0.117@workglow/job-queue: 0.0.117@workglow/sqlite: 0.0.117@workglow/storage: 0.0.117@workglow/task-graph: 0.0.117@workglow/tasks: 0.0.117@workglow/util: 0.0.117fast-xml-parser: ^5.5.3pg: ^8.20.0typebox: 1.1.6@types/bun: 1.3.10bunset: 1.0.10
- integrate PostgreSQL support and enhance configuration
- add BootstrapSubmissions command and task for processing SEC submissions (#62)
- Implement storage layers for Forms C, 1-A, 1-K, 1-Z with Reg-A infrastructure
- Implement temporal crowdfunding repository with history and change tracking, including new schemas and tests.
- add storage layer with entity and address history tracking
- [WIP] crowdfunding
- add UpdateAllForms command and task for batch processing forms
- create storage with repo/schema/tests/spec and use for entity, submission, filings, and form-d
- add document and form processing commands
- implement address and person normalization with repository structure
- add new form classes for Regulation A reports
- update package dependencies and enhance README documentation
- rename from ellmers to podley
- when using a starting year, just get current quarter
- enhance UpdateAllCompanyFactsTask and UpdateAllSubmissionsTask with improved processing and progress tracking
- create classes for most form types
- enhance submission tasks with validation and processing improvements
- update CompanySubmission types for improved accuracy
- add new SEC form types and enhance existing ones
- enhance UpdateAllSubmissionsTask with processing success tracking
- enhance SEC form types and validation
- add UpdateAllSubmissions command and task
- add UpdateAllCompanyFactsTask
- Implement SEC CLI with initial commands and tasks
- Update FetchDailyIndexTask test to use new @workglow/job-queue API
- typebox clone requirement when extending Base
- remove any xsl transform from path
- update import paths for task and queue modules
- no turbo here, so build should just be build
- sec error strings
- paths