Repository navigation
[2.0.0] - 2026-10-15
The first v2 release makes cross-market context available as an explicit,
inspectable research journey. Users select an asset and market proxies, then
see dated shared-market returns and price paths with source, currency,
adjustment, and missing-data disclosures. Optional on-demand fundamentals,
macro, news, and technical evidence remains independently labelled; none of it
proves why a price moved. Time-aware Second Brain and Brain Log work completed
in this development cycle also ships here. This major version marks the next
product generation, not a claim of a breaking migration or the full long-term
cross-market intelligence vision.
Added
- Exchange-local adjusted-close view — the separate Yahoo local-date pair
now reports exact-date adjusted coverage and, only when both paths are
complete, an adjusted return and indexed path beside provider closes.
Partial data never yields a shortened adjusted comparison. - Separate exchange-local comparison — selected Yahoo chart closes can now
be compared on shared exchange-local calendar dates alongside, never in place
of, the existing UTC result. Missing timezones or ambiguous date mappings
degrade explicitly; local dates are not verified simultaneous sessions. - Exchange-local date disclosure — cross-market comparisons now show when
selected Yahoo daily bars carry a different exchange-local calendar date
than the UTC date used for alignment. Returns remain unchanged; this is not
a verified exchange-session calendar. - First-published euro-area HICP check — an on-demand Eurostat panel shows
first-published flash and final EA21 annual-change values beside matching
current months. It exposes partial failures and provider flags without
treating the archive as dated historical availability evidence. - FRED real-time evidence validation — US macro series now fail closed
when returned real-time intervals miss the requested day or the bounded
observation response is truncated, protecting the pair-end comparison from
wrong-vintage or incomplete values. - Bounded SEC continuation cross-check — the on-demand submission check can
inspect up to three SEC-declared older filing slices for claims absent from
the recent index, distinguishing unchecked dates from checked-but-absent
accessions without implying full historical coverage or dissemination time. - Euro-area unemployment vintage cross-check — the macro panel can
separately inspect dated Eurostat unemployment releases from its sparse
2021-onwards archive up to the pair end. It discloses provider flags, archive lag and
changing euro-area composition without claiming complete historical
availability or equating this series with current EA21 values. - Euro-area macro context pilot — an independent on-demand panel shows
official Eurostat HICP/unemployment and ECB deposit-rate observations in the
pair window, including source, reference period, provider flags, and partial
failures. It uses no API key or sample fallback and makes no historical
release-time or asset-causality claim. - Price-versus-FX endpoint attribution — eligible reporting-currency
returns now disclose native price, FX-rate, and interaction components per
asset and for the pair difference, using the same dated endpoint evidence.
This is arithmetic attribution, not a causal market explanation. - Full shared-date FX path — optional reporting-currency comparisons now
expose an indexed, inspectable converted path and dated FX evidence on every
shared observation. Missing interior rates withhold the path without
changing valid endpoint results or the native comparison. - Optional reporting-currency endpoint returns — cross-market comparisons
can show a separate pair return in a selected currency using the exact shared
price endpoints and dated FX evidence. Unknown/subunit quote units or missing
rates withhold the result; native returns remain unchanged. - Selected-history quote-unit disclosure — comparisons retain the quote
unit reported by the selected Yahoo chart, including non-ISO units, and show
when the two reported units differ. Other history paths remain unknown; no
currency is inferred and no FX conversion is performed. - FRED pair-end real-time cross-check — the macro panel can separately
request FRED's view as of the pair's end date and show reference-period values
that differ from, or are absent in, the current view. Changed metadata or
failed series are not compared; daily provider vintages are not intraday
release records or evidence of price causation. - Historical macro observation candidates — comparison pairs can separately
inspect current-vintage FRED CPI, unemployment, and policy-rate observations
inside their actual window. The panel distinguishes reference periods from
release timing, discloses metadata and provider failures, and never uses
sample values or attributes price moves to macro data. - Price-basis diagnostics for comparisons — paired feeds now disclose
matching, mixed, unknown, or unavailable request-level adjustment labels.
Where Yahoo-adjusted coverage is complete, same-date adjusted-minus-provider
return differences show the impact on each asset and pair without changing
the primary comparison or claiming verified corporate-action adjustments. - Optional SEC submission cross-check — from the filed-facts panel, users
can separately check displayed accession/form/filed-date claims against the
current recent submissions index. Matched, mismatched, absent, and ambiguous
index rows remain distinct; provider failure does not discard Company Facts.
Older continuation files and historical dissemination are not verified. - Same-period SEC disclosure differences — the API and comparison panel
group differing accession-tagged values only when concept, unit, and fiscal
duration match exactly. Full eligible counts precede bounded display, and
within-accession conflicts are flagged. Groups are review candidates, not
verified revisions, corrections, or historical provider vintages. - On-demand SEC filing-facts review — the cross-market comparison screen
can inspect each symbol's accession-tagged SEC facts within the observed
pair window. It keeps this evidence separate from FMP candidates and saved
captures, and explains missing configuration, ticker coverage, and provider
failure without treating filed facts as a verified revision sequence. - SEC accession-tagged filing facts — an opt-in, authenticated API checks
exact US ticker/CIK matches and returns bounded current Company Facts for
selected US-GAAP income and diluted-EPS concepts. It retains accession,
filed date, fiscal period, form, concept, unit, and value without blending
this source into FMP captures or claiming an archived vintage or revision
sequence. Requires a host-configured SEC user agent. - Conflicting close-date disclosure — market comparisons now withhold a
UTC date when the selected chart payload contains different provider or Yahoo-
adjusted closes for that date, rather than taking the last row. Identical
duplicates remain usable. The API and browser report bounded conflict dates;
overlap and adjusted coverage reflect withheld observations. Upstream adapter
filtering is not audited. - Separate adjusted pair comparison — when both selected Yahoo histories
have adjusted closes on every primary shared date, the API and browser show
a separate indexed path and adjusted return difference. Partial or one-sided
coverage shows no adjusted pair; primary provider-close results are unchanged.
Returns remain native-quote, not FX-normalized; Yahoo adjustments are
retrospective and unverified. - Honest comparison price basis — the API and browser now call the primary
series provider closes rather than asserting every selected feed is unadjusted.
Per-asset labels distinguish Alpaca raw and FMP non-split-adjusted requests
from paths with unspecified adjustment basis. Calculations are unchanged;
reported requests do not verify returned prices or make mixed-feed pairs
decision-grade. - Unadjusted FMP comparison fallback — when adapter and Yahoo daily history
are unavailable, the comparison can use validated FMP non-split-adjusted EOD
rows and names that feed. Empty Yahoo charts no longer mask this fallback.
Access depends on FMP credentials/plan and symbol coverage; other FMP history
consumers are unchanged. - Own-date Yahoo-adjusted observations — cross-market comparisons now
disclose adjusted-close coverage on each asset's own accepted dates and show
a separate return, drawdown, and 20-close gap only when coverage is complete.
Crypto weekends can contribute without changing the primary shared-date,
provider-close comparison. Yahoo adjustments remain retrospective and unverified. - Observed fundamentals changes between captures — an owner-scoped API and
browser review compare two retained captures of the same symbol, showing
source-dated candidate sets seen only earlier, only later, or with different
values. Empty/failed captures are not compared, and observed differences are
not labeled provider revisions or historical market disclosures. - Terminal-observed fundamentals as-of lookup — an authenticated API
selects the latest retained owner capture at or before a timezone-aware
instant. It returns failed/empty observations without falling back to older
successes, and distinguishes no retained capture from no provider records.
This is not a provider revision history or proof of past market knowledge. - Fundamentals capture and review in cross-market context — the comparison
panel now lets a user deliberately capture current eligible fundamentals for
either symbol and inspect recent saved observations, including conflicts and
empty or failed fetches. A capture is a new fetch across eligible dates, not
an archive of the date-limited panel or a historical market vintage. - Explicit fundamentals observation captures — an authenticated,
owner-scoped API can snapshot the source-dated values retrieved now, with UTC
capture time, status, content hash, list/read, and explicit deletion. Conflicting
values remain distinct. The new table does not rewrite legacy fundamentals,
backfill past vintages, or make current-fetch records historical proof. - Adapter-selected Yahoo chart metadata — market comparisons now retain
reported split/dividend events and adjusted closes when the selected crypto
or Yahoo adapter used a Yahoo chart. Adjusted values are aligned only to
accepted price rows; raw comparisons are unchanged, and provider metadata is
not an audit of adjustment quality. - Underlying history-feed disclosure — market comparisons now separate
the winning adapter from the per-request feed reported by crypto and Yahoo
adapters, including failover. Other adapters remain unknown when they do not
report a feed; feed identity alone does not validate prices or metadata. - Own-date technical observations — comparisons now show a separate
descriptive drawdown and 20-close gap for each asset on all of its available
UTC close dates inside the pair window. Counts disclose dates outside pair
overlap, notably crypto weekends; the paired path and returns are unchanged. - Fundamental-candidate conflict disclosure — when a current provider
fetch returns different numeric values for the same source-dated metric,
period, and provider, the comparison withholds that value and shows the
conflict instead of silently choosing the first. This is not a historical
revision archive. - Separate adjusted-close observations — where Yahoo supplies adjusted
closes for every pair-shared date, comparisons now show per-asset adjusted
return, drawdown, and 20-shared-close gap beside—not instead of—the primary
comparison. Partial coverage produces no adjusted measure; adjustment quality
and historical vintage remain unverified. - Adjusted-close coverage disclosure — comparisons now report how many
shared dates have usable Yahoo adjusted closes, or mark the selected history
path unavailable for this metadata. The primary chart, returns, and technical
measures remain provider-close; no vintage or adjustment audit is implied. - Corporate-action disclosure for comparison paths — when a selected
Yahoo chart response contains event metadata, its split/dividend dates appear
beside the provider-close technical measures. Empty marker lists are not proof
that no action occurred; paths without event metadata report unavailable. - Shared-date technical observations — available market comparisons now
show maximum observed drawdown and distance from a 20-shared-close average
for each symbol, with explicit observation dates and insufficient-data state.
These provider-close measures are descriptive and may reflect corporate
actions; they are not trading signals. - Dated fundamentals candidates in market comparisons — an on-demand
panel checks each pair's observed window for source-reported revenue, net
income, EPS, and free-cash-flow releases. Estimated dates are excluded;
missing coverage and per-symbol failures remain explicit. Values retain
provider units and no historical revision fidelity is claimed. - Private Brain retrieval evaluation harness — a read-only runner scores
dated, owner-reviewed cases for current/history recall, chronology order,
unrelated-source intrusions, and index freshness. Real Hermes cases remain
private and must be measured before changing retrieval weights. - Brain Log evidence change signals — opening a saved memo compares dated
citation identities with live owner-scoped records and marks matching,
changed, unavailable, or unverifiable evidence. The saved answer remains
immutable, and the UI warns before promoting a memo with changed evidence. - Reviewed Brain-to-Note promotion — a saved Brain memo can become an
editable, user-confirmed Note with provenance back to its immutable source.
The Note enters normal indexing; the memo itself stays out of retrieval. - Browser Brain Log — completed Second Brain answers can be saved explicitly
and revisited as dated research memos with their original citations. The log
supports title, symbol, tags, annotation, pinning, and confirmed deletion;
partial or degraded answers cannot be saved. - Brain Log persistence foundation — authenticated users can explicitly save
completed Second Brain answers as owner-scoped, immutable research-memo
snapshots with dated citations and model provenance. Organization metadata can
be edited and memos can be listed, read, filtered, pinned, or deleted without
placing derived model output back into the retrieval index. - Time-aware Second Brain evidence — private-memory chunks and citations now
carry effective, recorded, and updated timestamps. External note ingestion
accepts an optional sourceeffective_atdistinct from ingestion time, and
citation cards expose the date used by synthesis. - Effective-date note controls — the Notes composer and editor can now set
or clear when information applied, converting the browser-local value to the
timezone-aware API contract. Notes distinguish effective time from their
last update in the record.
Changed
- Raw Alpaca comparison path — cross-market comparisons now request raw
Alpaca stock bars regardless of the general Alpaca adjustment setting and
disclose the selected bar feed plus raw adjustment. Other Alpaca workflows
retain their configured setting; feed identity is not price validation. - Point-in-time fundamentals dating — ingested FMP records retain their
fiscal period end and use only source-reported filing/acceptance dates that
follow it; otherwise availability is conservatively estimated and marked.
Missing release dates are no longer replaced with ingestion time, FY annual
estimates use the annual lag, and as-of snapshots prefer dated fiscal periods
and confirmed releases. This does not yet expose fundamentals in comparisons. - Temporal retrieval and supersession — Second Brain queries retrieve a
broader semantic candidate pool and apply a bounded recency signal only among
relevant evidence. Dated context instructs synthesis to treat newer
incompatible evidence about the same subject as the current view, preserve and
cite the superseded history, and report ambiguous chronology instead of
flattening every note into an equally current claim. - Visible Notes and indexing lifecycle — Notes now expose initial loading,
request failure with retry, and the queued background-indexing state after a
save. Manual Second Brain reindexing reports active work and its final chunk
totals instead of looking like a stalled screen. - Provider-tolerant Second Brain answers — an unsupported, empty, or
interrupted provider stream now retries through the ordinary chat-completion
contract and replaces partial output with the complete answer. The Brain only
reports the LLM unavailable when both provider paths fail. Streaming now emits
idle heartbeats for reasoning models, requires a provider completion marker,
raises the normal Second Brain synthesis budget from 600 to 2,048 tokens, and
retries token-limit truncation once at 6,144 rather than presenting a cut-off
answer as successful.
Fixed
- Proxy suggestion clicks — clicking a search suggestion now adds the proxy
as reliably as selecting it with Enter; pressing the option no longer blurs
the picker before the click can be handled. - FRED key in Docker Compose — forward
FRED_API_KEYfrom.envinto the
backend container so on-demand US macro context can use a configured key.
The panel now labels its series as US-wide rather than
ticker-specific and distinguishes missing configuration from empty results.