release: bump version to 0.70.0
This commit is contained in:
@@ -80,6 +80,8 @@ Each item includes:
|
||||
|
||||
Official data, e-commerce metrics, major platforms, and numeric business signals increase importance. Press releases start with a lower baseline and rise only when they match stronger platform, amount, M&A, or regulatory signals.
|
||||
|
||||
Importance levels are fixed: `low` 0–34, `medium` 35–59, `high` 60–79, and `critical` 80–100. Category, importance, and Breaking decisions are centralized in `earth_news_classification.py`. Category keys and tags remain configurable, while importance and Breaking protocol states use shared enums. Databases and APIs continue to store compatible lowercase strings.
|
||||
|
||||
## Configuration and Cache
|
||||
|
||||
`GET /api/v1/earth/news-sources` returns the default or saved configuration. `PUT /api/v1/earth/news-sources` saves it, increments `cache_version`, and clears the process region cache. `POST /api/v1/earth/news-sources/reset` restores defaults. `POST /api/v1/earth/news-sources/test` tests one RSS/Atom/Aggregated source without writing news items.
|
||||
@@ -107,6 +109,27 @@ The Web Earth category chips only store the current browser preference; changing
|
||||
|
||||
Source testing only proves that a specific RSS/Atom/XML feed can be parsed. It does not mean those items have already been written to the news table or are visible in the current region/category view. Saving or resetting news sources increments the configuration version and clears cache; if an enabled feed has no recent stored items, the next `earth-feed` request supplements from RSS so newly enabled sources such as 36Kr and Ebrun are not masked by fresh Google News rows.
|
||||
|
||||
## Breaking News Insertion
|
||||
|
||||
The news system keeps three separate decisions:
|
||||
|
||||
- **Category**: what the story is about, such as business, military, or disaster.
|
||||
- **Importance**: whether the story has long-term value, stored as `importance_score / importance_level`.
|
||||
- **Breaking**: whether the story must temporarily jump ahead, stored in `location_meta.news_meta.breaking_*`.
|
||||
|
||||
Breaking metadata does not add physical columns. It remains in `location_meta.news_meta`:
|
||||
|
||||
- `breaking_level`: `none / watch / breaking / critical`.
|
||||
- `breaking_scope`: `regional / global`.
|
||||
- `breaking_reasons`: rule or operator reasons.
|
||||
- `breaking_source`: `rules / ai / manual / multi_source`.
|
||||
- `breaking_confidence`: 0 to 1.
|
||||
- `breaking_expires_at`: expiration timestamp.
|
||||
|
||||
The backend performs the ordering, so Web and UE clients do not need to reorder items. Active `critical`, `breaking`, and `watch` items appear before normal items in that order. Once expired, the item falls back to normal ordering without being deleted or changing its long-term importance score.
|
||||
|
||||
`breaking_scope = global` bypasses the active region and can appear in every regional feed. `regional` breaking follows the normal active-region-plus-global rule. The response `filters` includes `has_breaking` and `highest_breaking_level`, which the Earth client uses to apply restrained panel and card styling.
|
||||
|
||||
## Connectivity Monitoring
|
||||
|
||||
`POST /api/v1/earth/news-sources/test` tests one source and writes the result to `earth_news_sources.health[source_id]`. Normal RSS/Atom fetches update the same health map.
|
||||
|
||||
Reference in New Issue
Block a user