Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
af0b881
docs(weekly-digest): add implementation plan and producer ticket (#167)
DiyanaDimitrova Jul 16, 2026
9a0dfb2
feat(db): weekly digest queries + 0004 migration (#167)
ydimitrof Jul 16, 2026
458b12c
docs(weekly-digest): add consumer ticket (#167B)
DiyanaDimitrova Jul 16, 2026
4e173f1
feat(weekly-digest): consumer render layer + /weeks routes (#167B)
DiyanaDimitrova Jul 16, 2026
299d403
refactor(report): extract @sigma/report package (#167)
ydimitrof Jul 16, 2026
49ebc88
feat(report): decoupled persist + iso-week util (#167)
ydimitrof Jul 16, 2026
7035523
chore(assistant): remove orphaned r2-report-object fixture (#167)
ydimitrof Jul 16, 2026
4edc11f
build(etl): AI + REPORTS bindings + DIGEST_CRON (#167)
ydimitrof Jul 16, 2026
5abdc1c
feat(etl): weekly digest cron + generator (#167)
ydimitrof Jul 16, 2026
e277ae3
fix(etl): log empty-narrative fallback path in weekly digest
ydimitrof Jul 16, 2026
8c1828b
Merge remote-tracking branch 'origin/feat/weekly-digest' into feat/we…
ydimitrof Jul 16, 2026
82feda9
Merge remote-tracking branch 'origin/feat/ai-assistant-contracts' int…
ydimitrof Jul 16, 2026
ab321c2
style(db): prettier-format weekly digest queries
ydimitrof Jul 16, 2026
0416d70
fix(db): count clean-amount rows separately in the weekly counts
ydimitrof Jul 16, 2026
715ce61
fix(etl): pair the digest's contract count with the money sum
ydimitrof Jul 16, 2026
e22c3bf
fix(etl): label a stripped-narrative digest as AI-free
ydimitrof Jul 16, 2026
f800778
Merge origin/feat/weekly-digest into feat/weekly-digest-consumer
DiyanaDimitrova Jul 16, 2026
eb658aa
feat(weekly-digest): daily ghost-bar chart, competition bar, explore …
DiyanaDimitrova Jul 16, 2026
886b5bb
docs(weekly-digest): index the plan + tickets in docs/README so check…
DiyanaDimitrova Jul 16, 2026
e808068
refactor(weekly-digest): address #81 review notes
DiyanaDimitrova Jul 17, 2026
d8b60f6
fix(weeks): bounded cache instead of immutable so corrected digests p…
DiyanaDimitrova Jul 17, 2026
00e8039
Merge remote-tracking branch 'origin/feat/ai-assistant-contracts' int…
ydimitrof Jul 17, 2026
31fb4d4
feat(weeks): report-page layout + export toolbar (Markdown/Word/PDF) …
DiyanaDimitrova Jul 20, 2026
8cf0e52
fix(weeks): short digest cache TTL (5m) so corrections + deploys prop…
DiyanaDimitrova Jul 20, 2026
66ffec3
feat(nav): add „Седмични обзори" (/weeks) to the site menu
DiyanaDimitrova Jul 20, 2026
196c739
fix(weeks): use the standard wide page column (like /contracts), not …
DiyanaDimitrova Jul 20, 2026
7ea3d0f
fix(export): handle the weekbars block in Markdown + Word export (#81…
DiyanaDimitrova Jul 20, 2026
b25f50c
feat(etl): expand the weekly digest into a 3–4 paragraph „Какво се сл…
DiyanaDimitrova Jul 20, 2026
6fab27b
test(etl): add a weekly-digest R2 seeding script for the /weeks routes
DiyanaDimitrova Jul 20, 2026
817a1d7
refactor(etl): rename the weekly report „дайджест" → „обзор"
DiyanaDimitrova Jul 20, 2026
8c8d4f3
feat(etl): deepen the weekly „Какво се случи" into a ≥5 paragraph dat…
DiyanaDimitrova Jul 20, 2026
8c94799
test(etl): seed a ≥5 paragraph analytical narrative to match v3
DiyanaDimitrova Jul 20, 2026
d302a87
fix(web): shorten the digest route SWR so re-seeds/corrections propag…
DiyanaDimitrova Jul 20, 2026
88bb6bf
fix(web): stop edge/shared-caching the weekly digest detail page so r…
DiyanaDimitrova Jul 20, 2026
d07e8b0
fix(export): align weekbars rows off the longer series so no prior-we…
DiyanaDimitrova Jul 20, 2026
1103e80
feat(weeks): add a legend for the digest graphics + tables
DiyanaDimitrova Jul 20, 2026
075a98c
feat(weeks): label each digest section with an inline heading instead…
DiyanaDimitrova Jul 20, 2026
88e3091
feat(weeks): make the whole archive row clickable, not just the week …
DiyanaDimitrova Jul 20, 2026
4509dda
fix(weeks): draw the row-link keyboard focus ring on the row-sized ov…
DiyanaDimitrova Jul 20, 2026
db1823f
chore(weekly-digest): address PR #81 review (dead code, weekbars robu…
DiyanaDimitrova Jul 20, 2026
ccf042a
fix(weeks): tighten ISO-week regex + sr-only completeness (PR #81 rev…
DiyanaDimitrova Jul 21, 2026
cf20462
feat(report): add isoWeekFromId, the inverse of priorIsoWeek
ydimitrof Jul 21, 2026
73262ef
feat(etl): configurable digest schedule + on-demand test trigger
ydimitrof Jul 21, 2026
e6bd83e
refactor(etl): rename digest LLM key BGGPT_API_KEY → ASSISTANT_API_KEY
ydimitrof Jul 21, 2026
d130628
chore(etl): enable on-demand digest trigger for dev testing
ydimitrof Jul 21, 2026
5e760b0
chore(etl): enable workers.dev route for dev digest-trigger testing
ydimitrof Jul 21, 2026
89f1162
fix(weeks): stop edge-caching the /weeks archive too, so add/remove s…
DiyanaDimitrova Jul 21, 2026
9298b90
feat(etl): show human-readable date range in weekly digest title
ydimitrof Jul 22, 2026
b9c761d
fix(deploy): rename etl REPORTS R2 bucket per environment
ydimitrof Jul 22, 2026
504a508
fix(deploy): rewrite etl AI_GATEWAY_BASE_URL account per environment
ydimitrof Jul 22, 2026
565f976
fix(deploy): pass SIGMA_AI_GATEWAY_ACCOUNT to the deploy render step
ydimitrof Jul 22, 2026
d4b99d0
style(weeks): enlarge the digest section headings so they're noticed
DiyanaDimitrova Jul 22, 2026
ca676fc
chore: retrigger CI/preview (dropped synchronize event for d4b99d0)
DiyanaDimitrova Jul 22, 2026
ba07b83
Merge remote-tracking branch 'origin/feat/weekly-digest' into feat/we…
DiyanaDimitrova Jul 22, 2026
bcfcfb9
build(deps): override transitive sharp to >=0.35.0 (GHSA-f88m-g3jw-g9cj)
DiyanaDimitrova Jul 22, 2026
97cdb27
build(deps): pin esbuild/undici/ws safe floors alongside sharp, fix a…
DiyanaDimitrova Jul 22, 2026
072ad8f
style: prettier-format wrangler-render.test.mjs (merged unformatted f…
DiyanaDimitrova Jul 22, 2026
bf8096e
fix(etl): run the digest verifier at temperature 0 for reliable JSON …
ydimitrof Jul 23, 2026
016e877
fix(etl): disable BgGPT thinking so the digest summary is a clean sen…
ydimitrof Jul 23, 2026
de809ca
fix(etl): keep the digest verifier reasoning, suppress thinking on na…
ydimitrof Jul 23, 2026
d7eaba2
fix(etl): keep the verifier on no-think — reasoning breaks its JSON
ydimitrof Jul 23, 2026
911a07e
feat(etl): enrich weekly-digest narrative with named sector, authorit…
ydimitrof Jul 23, 2026
f851de1
chore(etl): dev-only DIGEST_DEBUG logging for narrative + verifier ve…
ydimitrof Jul 23, 2026
8bf58de
fix(etl): stop the digest verifier false-positive-stripping grounded …
ydimitrof Jul 23, 2026
412e6fc
feat(etl): rename digest to „Седмичен обзор" and label sector bar wit…
ydimitrof Jul 23, 2026
7b76d1c
feat(etl): stamp totalEur + week dates into digest R2 customMetadata
ydimitrof Jul 23, 2026
76d8a75
feat(web): label the /weeks archive by Mon–Sun date range, not the IS…
ydimitrof Jul 23, 2026
af60f77
Merge feat/weekly-digest into feat/weekly-digest-consumer
ydimitrof Jul 23, 2026
842fe1f
style: prettier-format reconciled digest + weeks tests
ydimitrof Jul 23, 2026
d246339
fix(etl): bound the narrative LLM call + disable committed DIGEST_DEB…
DiyanaDimitrova Jul 23, 2026
369808e
feat(weeks): remove the archive sparkline
DiyanaDimitrova Jul 23, 2026
78fef0a
build(deps): bump react-router 7.15.1 → 7.18.0 (GHSA-337j / GHSA-h8fp…
DiyanaDimitrova Jul 23, 2026
2c6ef07
docs: index the #167 weekly-digest plan + producer ticket (docs-integ…
ydimitrof Jul 24, 2026
0e777b9
build(deps): clear osv-scanner findings — react-router 7.18.0 + sharp…
ydimitrof Jul 24, 2026
6eb4539
style: prettier-format two files the now-blocking lint gate flagged
ydimitrof Jul 24, 2026
b52411e
Merge remote-tracking branch 'origin/feat/weekly-digest' into feat/we…
DiyanaDimitrova Jul 24, 2026
683bf05
feat(weekly-digest): surface the §10.4 „коригирано" note; address PR …
DiyanaDimitrova Jul 24, 2026
955c0d5
fix(weekbars): pair the two series by label everywhere, not array ind…
DiyanaDimitrova Jul 24, 2026
9cd3d57
fix(weekly-digest): error handling, a11y, doc drift (PR #81 multi-age…
DiyanaDimitrova Jul 24, 2026
9600147
fix(weekly-digest): footer order, CSS scoping, export column, comment…
DiyanaDimitrova Jul 27, 2026
70bd440
feat(weeks): noindex /weeks/:iso — it names winning bidders publicly …
DiyanaDimitrova Jul 27, 2026
28910bb
build(deps): patch postcss + valibot; ignore inapplicable react-route…
DiyanaDimitrova Jul 27, 2026
d9418cd
fix(etl): reject a truncated narrative (finishReason=length) instead …
DiyanaDimitrova Jul 27, 2026
b8c4618
fix(weekly-digest): safe seed defaults, .data-twin noindex, malformed…
DiyanaDimitrova Jul 27, 2026
4a5198b
Merge pull request #81 from lyubomir-bozhinov/feat/weekly-digest-cons…
DiyanaDimitrova Jul 27, 2026
6e505ee
Merge remote-tracking branch 'origin/feat/ai-assistant-contracts' int…
DiyanaDimitrova Jul 30, 2026
8ecf66b
test(weekly-digest): discriminating value_suspect+amount row; declare…
DiyanaDimitrova Jul 30, 2026
626c27f
refactor(web): narrow the @sigma/report shims to explicit re-exports
DiyanaDimitrova Aug 7, 2026
199b4ff
build(deps): bump undici override to 7.29.0 to clear the Dependency a…
DiyanaDimitrova Aug 7, 2026
a317e6d
Merge origin/feat/ai-assistant-contracts into feat/weekly-digest
cefothe Aug 18, 2026
e042644
fix(weekly-digest): exclude synthetic contracts; renumber migration t…
DiyanaDimitrova Aug 19, 2026
88767e5
Merge remote-tracking branch 'origin/feat/weekly-digest' into feat/we…
DiyanaDimitrova Aug 19, 2026
0aa75ef
fix(weekly-digest): renumber weekly_digests migration to 0013 after b…
DiyanaDimitrova Aug 19, 2026
726237e
test(report): add coverage config + baseline entry to clear the ratchet
DiyanaDimitrova Aug 19, 2026
82ad5c3
docs: remove the 167a/167b weekly-digest ticket files
DiyanaDimitrova Aug 19, 2026
fbdf01a
docs: drop the removed ticket links from the docs index
DiyanaDimitrova Aug 19, 2026
335eb84
docs: rename 167-weekly-digest.md to weekly-digest.md
DiyanaDimitrova Aug 19, 2026
d16dfa3
ci: drop the fork-only ephemeral PR preview workflows
DiyanaDimitrova Aug 19, 2026
1aa6cbd
fix(etl): restore fail-dark committed posture for the digest trigger
DiyanaDimitrova Aug 20, 2026
68a18a1
fix(deploy,etl): forward Turnstile site key; move PROMPTS_CRON off th…
DiyanaDimitrova Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,19 @@ jobs:
# fails open. wrangler-render stamps this into ENVIRONMENT. Not derived from import.meta.env.PROD,
# which Vite inlines true for the staging build too (it would misclassify staging as production).
SIGMA_ENVIRONMENT: ${{ vars.SIGMA_ENVIRONMENT }}
# AI-Gateway account id in AI_GATEWAY_BASE_URL (and web's BGGPT_STT_BASE_URL). wrangler-render swaps
# the committed prod account for this env's own — dev/staging run on a different Cloudflare account
# whose `sigma-assistant` gateway + `custom-bggpt` provider live there. Unset (prod) → committed
# account stays. Without this, a non-prod deploy calls the PROD gateway, which this env's key can't
# use, so every BgGPT call (web assistant + etl digest narrative) fails. preview.yml already passes
# this; deploy.yml was missing it, so the dev etl/web workers kept the prod URL.
SIGMA_AI_GATEWAY_ACCOUNT: ${{ vars.SIGMA_AI_GATEWAY_ACCOUNT }}
# Turnstile SITE key (public, domain-bound), per-environment. wrangler-render stamps this over the
# committed prod key; unset (prod) → committed key stays. Without it the swap is a no-op and the
# prod (domain-bound) site key ships to dev/staging too, so the moment SIGMA_ASSISTANT_ENABLED=true
# there, the bot-gate (useTurnstileGate) fails to validate on the non-prod domain. Same missing-var
# class as SIGMA_AI_GATEWAY_ACCOUNT above.
SIGMA_TURNSTILE_SITE_KEY: ${{ vars.SIGMA_TURNSTILE_SITE_KEY }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10
Expand Down
118 changes: 0 additions & 118 deletions .github/workflows/preview-reap.yml

This file was deleted.

Loading