Skip to content

Remove obsolete backend and frontend code - #80

Merged
abhi1693 merged 2 commits into
masterfrom
cleanup/obsolete-backend-frontend
Oct 4, 2026
Merged

abhi1693 merged 2 commits into
masterfrom
cleanup/obsolete-backend-frontend

Conversation

@abhi1693

@abhi1693 abhi1693 commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

What changes and why?

Remove unused backend and frontend code left behind by the current submission, overview and reader flows. Extensions also stop handling failed feed-options requests by fetching the entire source catalog and inventing content/language choices. They now use the web reader's existing behavior: successfully loaded articles remain readable, contextual filters return when the options route recovers.

A reference audit across tracked source, tests, scripts and documentation found no callers, registrations or routes for these internal exports:

Area Removed code
Backend job_display_status, the orphan SourceSubmissionOut schema, and the unused retract_automatic_topic helper
Admin OverviewDetails, JobOutcomesChart, the server initialOverview loader, and isResource
Web Unused mcpServerGuide constant
Extensions Compatibility fallback for deployments without /api/v1/feed/options

The active topic-correction repair operation remains covered by PostgreSQL regression tests. Existing overview panels and charts continue to render through their current loaders.

Retained compatibility code still serves persisted profile settings/links, saved reader/admin URLs, historical migrations and deployed CLI commands. A read-only production check confirmed DEVFEED_WORKER_QUEUE=analysis, so that worker-group alias remains. This cleanup is isolated from the other open security, performance, coverage and backend-architecture PRs.

Validation

Updated against master after #79 and the separate runtime-fixture fix #88, following the sequential merge queue. Conflict resolution preserves shared DeliveryPolicy and both extension options-error and pending/failed article-feed fixtures.

  • 42 focused retry, delivery-policy and import-boundary cases passed. One integration case in that focused command was not configured and remains a hosted-CI gate.
  • The eight in-memory SQLite retry-selection regressions from Expand backend unit coverage and enforce PR reports #78 are retained. Only calls/assertions for the deleted, unused display helper are removed.
  • A fresh reference search across source, tests, scripts and docs found no remaining references to the removed exports. Historical migrations, saved routes and active worker aliases remain supported.
  • Admin OpenAPI/client regeneration produced no changes.
  • Normal commit hooks passed for backend lint/types/unit coverage, web/admin lint and unit tests, extension types/tests/builds, and Codex transport tests. Current-head CI passed 42 jobs, with 13 expected skips, including CI required, all three CodeQL analyses, Sonar, dependency/secret/workflow checks, populated upgrades, real API/admin journeys, actual web/Chrome/Edge browser parity, performance comparison and all ARM64 image build/scan/smoke checks.
  • Hosted backend unit suite: 3,007 passed, no skips or warnings, all 273 source files, 67.79% combined coverage. All 1,137 PostgreSQL/Redis integration tests, 818 web and 648 admin unit tests passed. The options-error/recovery cases pass in both built extensions, alongside preserved article-first and prompt regressions.
  • Sonar MCP confirms gate OK, zero open issues and 0.0% new duplication.
  • GitHub’s separate managed AI findings scan remains unavailable because its monthly quota is exhausted (HTTP 402); standard CodeQL passed. No paid/account changes were made. The 67.60% backend coverage minimum remains unchanged. Auto-merge is disabled.
  • Browser screenshots from the original implementation remain local and untracked. Native GitHub attachment upload is unavailable through the configured tools; review images are not committed. Normal page layouts are unchanged.

Rollout notes

The extension’s contextual filters require /api/v1/feed/options, which exists in the current web app. Older servers without that route continue to display successfully loaded articles, with unavailable contextual filter choices omitted. Refresh the tab after server recovery to restore the choices.

No database migration or configuration change is required. Website deployment and extension-store publication remain pending release. Merge this updated PR after #88 is merged and all current-head checks pass, then continue #81–#84 one at a time.

Ready for review

  • The description explains the change and validation results, including gaps.
  • Relevant regression tests and existing usage documentation are updated.

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

PR reader API performance

Result: INCONCLUSIVE

2 inconclusive · 6 within threshold. Zero request failures across all six runs.

Base 19af7f2a5aac79cdd02ed9df9e03d5905cb3d1af → PR 9de7974bdbf2257d4aa3a4a5707da9a198fd95d2

Three independent runs per revision, each on a fresh GitHub-hosted ARM64 runner. 16 users, 60 seconds/run, 1,000 synthetic articles, cache off, five PgBouncer slots.

Latency comparison

All latency values are in milliseconds; lower is better. Values are medians of three runs.

Route Base p95 PR p95 Change Result
All requests 110 110 +0 (+0.0%) Within threshold
Latest feed 140 130 -10 (-7.1%) Within threshold
Feed pagination 95 100 +5 (+5.3%) Within threshold
Article detail 77 75 -2 (-2.6%) Within threshold
Source feed 110 91 -19 (-17.3%) Inconclusive
Topic feed 100 100 +0 (+0.0%) Inconclusive
Feed filters 88 72 -16 (-18.2%) Within threshold
Sources 43 43 +0 (+0.0%) Within threshold
Topics 57 53 -4 (-7.0%) Within threshold
Additional latency and throughput metrics

Each cell shows base → PR. Latencies are in milliseconds.

Endpoint p50 p99 Requests/s
Aggregated 32 → 31 160 → 150 29.91 → 30.28
/v1/feed [latest] 48 → 46 190 → 160 8.88 → 8.90
/v1/feed [page] 31 → 28 150 → 140 3.77 → 3.74
/v1/articles/[id] 20 → 19 110 → 120 5.83 → 6.17
/v1/feed [source] 30 → 28 130 → 130 1.81 → 1.69
/v1/feed [topic] 30 → 29 120 → 120 1.84 → 1.69
/v1/feed/options 24 → 22 110 → 110 2.66 → 2.61
/v1/sources 12 → 12 86 → 74 2.66 → 2.61
/v1/topics 13 → 14 92 → 85 2.66 → 2.61
Individual runs
Run Requests Failures Exit code
Base 1 1684 0 0
Base 2 1662 0 0
Base 3 1654 0 0
PR 1 1698 0 0
PR 2 1715 0 0
PR 3 1681 0 0
How to interpret this report

Regressed / Improved: a p95 regression needs >20% and >20 ms increase in the medians and at least two head samples versus the base median. Improvements use the inverse threshold. Within threshold means the change did not meet both thresholds.

Inconclusive: a within-revision p95 range >35% of its median and >20 ms is too noisy for a confident latency verdict.

Inconclusive latency comparisons are non-blocking: the check passes without claiming an improvement. Confirmed regressions and test/report errors fail the PR gate. Throughput is descriptive: paced users do not measure maximum capacity. This uncached public API test does not establish production health, browser performance or worker capacity. Separate runners can differ in hardware or host load; repetitions and noise checks reduce but cannot eliminate that uncertainty.

Full HTML/CSV reports and logs · attempt 1

@gitar-bot

gitar-bot Bot commented Oct 4, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

🟡 Medium risk · Extension filters now depend on feed-options, changing behavior on older servers.

Removes obsolete backend helpers (job_display_status, SourceSubmissionOut, retract_automatic_topic), admin components (OverviewDetails, JobOutcomesChart, initialOverview, isResource), unused web constants, and extension compatibility fallbacks for missing /api/v1/feed/options routes. Audit confirms no remaining callers across source, tests, scripts, and docs; active topic-correction repairs, existing overview panels, and retained compatibility code remain functional. No issues found.

Review coverage

📋 Rules No rules evaluated

🧪 Functional validation Not enabled · Set up

Options

Auto-apply is off → Gitar will not commit updates to this branch.
Display: compact → Counting what did not apply, without listing it.

Comment with these commands to change the behavior for this request:

Auto-apply Compact
gitar auto-apply:on         
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown

Backend unit coverage

PASS · minimum combined coverage 67.60%.

Tests: 3007 passed, 0 failed, 0 skipped. Source files: 273.

Workspace Lines Branches Combined
All backend code 71.64% 53.77% 67.79%
apps/admin-api 64.78% 35.76% 59.95%
apps/aggregator 73.60% 57.18% 69.86%
apps/api 68.94% 55.88% 66.48%
apps/article-enrichment-worker 80.00% 50.00% 71.43%
apps/cli 68.76% 42.93% 64.81%
apps/images-worker 80.00% 50.00% 71.43%
apps/mcp 79.90% 73.88% 78.77%
apps/notifications 83.33% 76.67% 81.75%
apps/search-indexer 85.48% 85.71% 85.53%
apps/source-discovery-worker 80.00% 50.00% 71.43%
apps/user-api 59.19% 32.90% 54.27%
packages/core 73.81% 56.67% 69.73%
packages/http 94.43% 86.47% 92.62%

Unit coverage includes every backend workspace. PostgreSQL/Redis integration tests run separately.

Commit: 9de7974 · HTML, JSON, XML reports and job logs · attempt 1

@sonarqubecloud

sonarqubecloud Bot commented Oct 4, 2026

Copy link
Copy Markdown

@abhi1693
abhi1693 merged commit eedae54 into master Oct 4, 2026
57 checks passed
@abhi1693
abhi1693 deleted the cleanup/obsolete-backend-frontend branch October 4, 2026 16:45
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.

1 participant