Skip to content

Release 0.6.7: Fix sync status page#214

Merged
neuromechanist merged 10 commits intomainfrom
develop
Feb 18, 2026
Merged

Release 0.6.7: Fix sync status page#214
neuromechanist merged 10 commits intomainfrom
develop

Conversation

@neuromechanist
Copy link
Member

Summary

  • Fix Papers Sync showing N/A: sync_metadata stores source names like "openalex:query", not "openalex" - use prefix matching to find most recent timestamp
  • Make /sync/status community-aware: accept community_id query param and query correct community database (previously always used hed default)
  • Add all sync types to response: new syncs field includes github, papers, docstrings, mailman, beps, faq with last_sync and next_run
  • Dashboard: pass community_id to sync status fetch, render all sync types dynamically including next scheduled run time

Test plan

  • Tests added for prefix matching regression, syncs field, unknown community 404, community_id param
  • All CI tests passing on develop
  • Verified on dev server: EEGLAB shows 5 sync types, BIDS shows 3 sync types
  • Papers Sync no longer shows N/A for communities with synced data

Closes #212

Add Open Graph and Twitter Card meta tags so sharing
links on Slack, Discord, Twitter, etc. shows a proper
preview card with the OSA branding image from osc.earth.
- Inline SVG OSA logo in header (uses currentColor for
  dark mode compatibility)
- Dark mode CSS via prefers-color-scheme on demo page
- Footer with dynamic year, heart, and OSC link
- Consistent deep blue color palette across both pages
- Add dark mode to dashboard (matching frontend theme)
- Add <meta name="description"> to both pages for SEO
- Remove redundant twitter:title/description/image tags
- Fix broken GitHub links (osc-em -> OpenScience-Collective)
- Standardize org name to "OpenScience Collective"
- Move dashboard inline styles to CSS classes
- Rename .footer to .site-footer for consistency
* Enforce mandatory HED tag validation before display

Fixes #210

* Address review: consistent error handling, sanitize exceptions
)

* Fix sync status page: N/A display, all sync types, community-aware

Fixes #212

- Fix Papers Sync showing N/A: sync_metadata stores source names like
  "openalex:query", not "openalex", so use prefix matching to find the
  most recent timestamp for each source type
- Make /sync/status community-aware: accept community_id query param and
  query the correct community database (previously always used hed default)
- Add all sync types to response: new 'syncs' field includes github,
  papers, docstrings, mailman, beps, faq with last_sync and next_run
- Dashboard: pass community_id to sync status fetch, render all sync
  types dynamically including next scheduled run time

* Address review findings: validation, future times, health endpoint

- Validate community_id against registry (404 for unknown)
- Update /sync/health to accept community_id param
- Fix formatRelativeTime to handle future timestamps (next_run)
- Use _parse_iso_datetime in _get_most_recent_sync for robust comparison
- Fix misleading citing_doi comment in papers source lookup
- Add exc_info=True to warning log calls for full tracebacks
- Add tests: prefix matching regression, syncs field, unknown community 404

* Fix test: add isolated_db fixture to community_id test
- Fix papers last_sync timestamp comparison: use _parse_iso_datetime
  instead of string max() to avoid wrong result with mixed UTC offsets
- Fix dashboard /sync/health URL: pass community_id param so health
  badge reflects the viewed community, not always 'hed'
- Add tests for /sync/health community_id param: 404 for unknown,
  200 for known community
- Add exc_info=True to trigger_sync error log for full tracebacks
- Upgrade scheduler job inspection failure from warning to error
@neuromechanist
Copy link
Member Author

PR Review Summary

Ran three parallel review agents (code quality, silent failures, test coverage). All critical and important issues addressed.

Issues Fixed (3 commits after initial PR)

Important - addressed:

  • Dashboard /sync/health missing community_id param: health badge always showed HED's status regardless of community viewed → fixed
  • Papers last_sync used max() on raw ISO strings: inconsistent with _get_most_recent_sync helper which uses proper datetime parsing → fixed with _parse_iso_datetime
  • trigger_sync error log missing exc_info=True: no traceback in production logs for manual sync failures → fixed
  • Scheduler job inspection failure logged as warning instead of error → upgraded to error

Tests added:

  • /sync/health?community_id=unknown returns 404
  • /sync/health?community_id=<valid> returns 200

Noted But Not Fixed (pre-existing or low priority)

  • Broad except Exception in _get_sync_metadata and _get_repo_counts (pre-existing pattern, not introduced in this PR)
  • Dashboard console.warn vs console.error for non-critical fetch failures (pre-existing, minor)
  • test_syncs_field_present is a weak structural test (pre-existing, low value to change)
  • throw { status } plain object loses stack trace (pre-existing pattern)

All 18 tests pass

@github-actions
Copy link
Contributor

Dashboard Preview

Name Link
Preview URL https://develop.osa-dash.pages.dev
Branch develop
Commit 6564383

This preview will be updated automatically when you push new commits.

@neuromechanist neuromechanist merged commit abcf62f into main Feb 18, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix status page: Papers Sync shows N/A, missing sync types, not community-aware

1 participant