What's Changed
- Phase 1: Foundation + Discover page by @neuromechanist in #7
- Phase 2: Dataset detail page + on* provenance + version switcher by @neuromechanist in #8
- Phase 2 polish: 6 design-review fixes (fonts, a11y, tree layout, keywords) by @neuromechanist in #9
- fix(provenance): prefer canonical ds id when multiple IsDerivedFrom entries by @neuromechanist in #20
- feat: 301 redirect ds*->on* on dataset detail page by @neuromechanist in #18
- perf: edge-cache via caches.default in middleware by @neuromechanist in #14
- feat: NEMAR-branded favicon, apple+android icons, web manifest by @neuromechanist in #15
- feat: OG/Twitter/canonical meta + brand OG card by @neuromechanist in #16
- feat: prefer authors over uploader in DatasetCard byline by @neuromechanist in #23
- phase 3: QualityPanel with runtime aggregator from per-file dataqual by @neuromechanist in #24
- Redesign nemar.org: Phases 1+2+3a on Cloudflare Pages + Astro by @neuromechanist in #26
- cleanup: redact account id, drop orphan, log silent catches by @neuromechanist in #27
- feat(dataset): short-circuit unpublished datasets in readme + tree endpoints by @neuromechanist in #30
- feat(dataset): consume compact summary.json with manifest fallback by @neuromechanist in #31
- refactor(data-api): tag jsonFetch outcomes instead of collapsing to null by @neuromechanist in #33
- Phase 1: Passwordless auth + cookie notice + remember-me by @neuromechanist in #39
- Phase 2: Dataset upload flow by @neuromechanist in #40
- Phase 3: My datasets dashboard by @neuromechanist in #41
- Phase 4: Collaborator + publication review by @neuromechanist in #42
- Phase 5: Onboarding, docs, and cutover by @neuromechanist in #43
- Researcher dashboard: sign up, upload, manage your datasets by @neuromechanist in #45
- Split nemar.org and app.nemar.org surfaces (#47) by @neuromechanist in #48
- Route cross-host links to ww2.nemar.org (#49) by @neuromechanist in #50
- Fix login verify: forward Origin + error UX (#51) by @neuromechanist in #52
- Accept backend /auth/me shape (id:number, role:member) (#55) by @neuromechanist in #56
- Accept 'owner' role + fix support email (#57) by @neuromechanist in #58
- fix(api): no-store on tree/readme empty-fallback branches by @neuromechanist in #54
- Same-origin /api/v1 proxy for dashboard mutations (#59) by @neuromechanist in #60
- Hotfix: /api/v1 is an app route, not marketing by @neuromechanist in #61
- Hotfix: move proxy test out of src/pages (Pages build fail) by @neuromechanist in #62
- Phase 1 (#65): bump edge-cache namespace to v2 by @neuromechanist in #67
- Phase 2 (#63): consume summary.readme.content from schema 1.1 by @neuromechanist in #68
- Phase 3 (#64): progressive BIDS tree (skeleton + lazy per-subject) by @neuromechanist in #69
- Epic #66: Cold-paint perf + cache hygiene for dataset detail by @neuromechanist in #70
- #71: Consume nemar-cli //page-bundle.json on dataset detail by @neuromechanist in #72
- #74: Tree totals from summary.totals.bytes + 4s summary timeout on partials by @neuromechanist in #75
- #76: Pivot dataset detail to canonical sources (drop summary/bundle/partials) by @neuromechanist in #77
- Lazy chunked dir tree + drop catalog-row SSR fetch by @neuromechanist in #79
- Drop QA SSR; Demographics tab (live) + Data quality tab (coming soon) by @neuromechanist in #82
- Demographics chart fixes: tick sizing, fixed height, null/Other, coming-soon tab by @neuromechanist in #84
- File-row inline viewers (md/json/tsv) + DatasetTabs pills + design language doc by @neuromechanist in #86
- Mobile layout: strip DOI badge, overflow guards, stacked rail / version switcher by @neuromechanist in #88
- Detail page: dedupe description vs README, more file-row padding by @neuromechanist in #89
- Detail page: keep description, match README prose, add AI-generated marker by @neuromechanist in #90
- Detail page: description as a card matching the README by @neuromechanist in #91
- Mobile fix: grid track sizing — minmax(0, 1fr) so the file tree's min-content doesn't widen the page by @neuromechanist in #92
- Consolidate tag system: one clickable Tag element + color bible by @neuromechanist in #93
- feat(discover): hybrid lexical+semantic search (closes #12) by @neuromechanist in #95
- fix(discover): license filter works (server-side) (#96) by @neuromechanist in #97
- fix(filters): multi-select license/modality (form repeated params) (#98) by @neuromechanist in #100
- fix(rail): render keywords as full-width block to prevent pill overflow by @neuromechanist in #102
- feat: interactive Zarr signal viewer (website#99) by @neuromechanist in #101
- feat: viewer P1 - filters, full-res lines, butterfly, minimap, cursor, keyboard (website#99) by @neuromechanist in #103
- feat(viewer): gear settings menu + notch default from PowerLineFrequency + cursor white-flash fix by @neuromechanist in #104
- feat(viewer): cursor overlay, proportionate fonts, prominent minimap events, 45deg labels, event descriptions by @neuromechanist in #105
- feat(viewer): bad-channel reject/hide mode (P2) by @neuromechanist in #106
- feat(viewer): scalp topomap split-panel (EEGLAB-style, viridis) — P2 by @neuromechanist in #107
- feat(viewer): WebGL2 trace rendering (P2) by @neuromechanist in #108
- Point Documentation link to docs.nemar.org by @neuromechanist in #110
- Retire in-site /docs + citation-dashboard; redirect to subdomains by @neuromechanist in #111
- Flag web sign-in as coming soon (July 2026) by @neuromechanist in #112
- Speed up Zarr viewer startup by @neuromechanist in #113
- Add dataset OG images by @neuromechanist in #114
- Improve dataset OG cards by @neuromechanist in #115
- Landing redesign: legacy dark hero, hosted-only stats, footer credits by @neuromechanist in #117
- Viewer: explain why a recording has no interactive view by @neuromechanist in #116
- Fix dataset OG PNG previews by @neuromechanist in #119
- Use static dataset OG PNGs by @neuromechanist in #120
- Version dataset OG image URLs by @neuromechanist in #121
- Fix dataset OG card text by @neuromechanist in #122
- Add scheduled OG rebuild by @neuromechanist in #123
- feat(viewer): standard-montage topomap fallback by @neuromechanist in #118
- dataset: wget/curl recipe for skipped (large) archives (#752) by @neuromechanist in #124
- Add fNIRS and Motion modalities to filter and color scheme by @neuromechanist in #125
- feat: citations pill + modal, listing count, sort by @neuromechanist in #127
- feat: ORCID SSO frontend (login button + OAuth proxy + onboarding) by @neuromechanist in #130
- feat: collect city/country/affiliation on ORCID signup completion by @neuromechanist in #131
- feat(viewer): EGI/BioSemi named-net topomap fallback (nemar-cli#855) by @neuromechanist in #136
- feat(discover): activate channel density + montage filter by @neuromechanist in #137
- chore: stop tracking generated OG cards by @neuromechanist in #138
- Wire up the has_hed filter (+ HED card badge) by @neuromechanist in #140
- fix(landing): never cache failed hero stats; refresh within 12h by @neuromechanist in #141
- Add CI pipeline and security response headers by @neuromechanist in #143
- Settings self-service: name, email, ORCID, profile by @neuromechanist in #144
- docs: add ADR structure and backfill decision records by @neuromechanist in #146
- fix: route-scoped CSP unsafe-eval for zarr signal viewer by @neuromechanist in #147
- Staging site (test.nemar.org) + noindex non-prod hosts (epic #923 Phase 6) by @neuromechanist in #148
- Show channel counts + refresh site OG image by @neuromechanist in #150
- Theme-aware gold brand accent for the logo by @neuromechanist in #152
- Theme-aware homepage hero + system icon on toggle by @neuromechanist in #154
- Fix staging deploy: Pages rejects -c config path by @neuromechanist in #155
- Resolve data-plane base URL per environment (fix staging file tree) by @neuromechanist in #157
- Fix vv1.0.0: coerce dataset version prefix by @neuromechanist in #145
- Docs: correct dev/deploy workflow and refresh context files by @neuromechanist in #162
- Enable email-code sign-in on non-production builds by @neuromechanist in #160
- Docs: session handoff update (merges + QA verified) by @neuromechanist in #163
- docs: epic backlog in handoff for clean session renewal by @neuromechanist in #165
- Add ADR 0010: tiered access (base vs service) by @neuromechanist in #166
- Admin portal Phase 1: /admin shell by @neuromechanist in #169
- Admin portal Phase 2: observability overview by @neuromechanist in #170
- Admin portal: /admin shell + observability overview by @neuromechanist in #171
- Admin portal Phase 3: users admin by @neuromechanist in #174
- Update handoff: admin portal epic by @neuromechanist in #175
- Admin portal Phase 4: imports / quarantine triage by @neuromechanist in #177
- Admin portal Phase 5: notices + site-wide banners by @neuromechanist in #179
- Fix: keep /api/notices on both hosts by @neuromechanist in #182
- Make redirects no-store by @neuromechanist in #185
- Consume the five-level notice vocabulary by @neuromechanist in #184
- Hyperlink URLs in notices, centre banners by @neuromechanist in #187
- Scope the edge cache to the build by @neuromechanist in #189
- Handoff: notices, promotion, cutover plan by @neuromechanist in #191
- Deadlines on the catalog client, and the legacy dataset rewrite by @neuromechanist in #192
- Cover the rest of the legacy paths by @neuromechanist in #193
- Handoff: apex cutover status and blockers by @neuromechanist in #194
- Format admin breakdown values by their own unit by @neuromechanist in #197
- Bound every backend client with a request deadline by @neuromechanist in #198
- Keep agent worktrees out of git and the test run by @neuromechanist in #202
- Server-render schema.org Dataset JSON-LD on dataset pages by @neuromechanist in #205
- viewer: auto-scale initial gain to recording amplitude by @neuromechanist in #203
- Modals: corner close button and full-screen EEG viewer by @neuromechanist in #206
- Point sign-up at ORCID instead of the CLI by @neuromechanist in #207
- Keep marketing routes on the app host when signed in by @neuromechanist in #211
- Make staging lead main, not trail it by @neuromechanist in #213
- Version and release workflow for staging/main by @neuromechanist in #215
- Fix promotion under keep-main ruleset; footer build info by @neuromechanist in #216
New Contributors
- @neuromechanist made their first contribution in #7
Full Changelog: https://github.com/nemarOrg/website/commits/v0.2.0