Skip to content

feat(server): remember connections after disconnecting - #2192

Merged
4gray merged 4 commits into
masterfrom
agent/server-reconnect-recovery
Nov 12, 2026
Merged

4gray merged 4 commits into
masterfrom
agent/server-reconnect-recovery

Conversation

@4gray

@4gray 4gray commented Nov 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remember the last sync server when switching to the local library. Reconnect with the saved address and available token, or use Forget server to clear them.
  • Route authentication recovery to Settings → Server. Keep the dismissible notice for cached libraries and show Retry connection for network outages.
  • Verify the saved server instance before reusing its token. Keep browser tokens scoped to the current tab and use protected storage on Electron where available.

Validation

  • 155 focused unit tests across the web, services and Electron projects
  • 20 Electron and PWA E2E checks, including reconnect after restart or reload, authentication recovery and offline notice dismissal. The Electron reconnect test uses a protected-storage fixture
  • Electron build and backend typecheck
  • Web rebuild and two targeted PWA E2E reruns after fixing non-JSON authentication responses
  • Localization and release note validation

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-12T08:56:10.970875Z d03dfe4 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no new actionable issues were found.

Summary

The PR remembers disconnected servers and adds explicit reconnect and forget actions.

  • Disconnected servers can reconnect without re-entering a saved token.
  • Server recovery separates access problems from network outages.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    Connected -->|Disconnect| Local[Local library with saved server]
    Local -->|Reconnect| Verify[Check server identity]
    Verify -->|Matches| Reuse[Use available saved token]
    Reuse --> Connected
    Verify -->|Changed| Settings[Ask for a new token]
    Local -->|Forget server| Forgotten[Local library without saved server]
Loading

Reviews (3) · Last reviewed commit: "test(server): type-check partial Electro..." · Reviewed by Greptile

@codecov

codecov Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Bundle Report

Changes will increase total bundle size by 9.71kB (0.06%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
iptvnator-renderer 17.33MB 9.71kB (0.06%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: iptvnator-renderer

Assets Changed:

Asset Name Size Change Total Size Change (%)
chunk-DUG91aHU.js (New) 2.65MB 2.65MB 100.0% 🚀
chunk-CQjWl6jX.js (New) 858.64kB 858.64kB 100.0% 🚀
chunk-pLMmyfDE.js (New) 348.0kB 348.0kB 100.0% 🚀
chunk-CVe1cX5w.js (New) 278.64kB 278.64kB 100.0% 🚀
main-TE5RJ6GH.js (New) 276.41kB 276.41kB 100.0% 🚀
assets/i18n/el.json 661 bytes 242.69kB 0.27%
assets/i18n/uk.json 569 bytes 229.15kB 0.25%
assets/i18n/ru.json 565 bytes 224.07kB 0.25%
assets/i18n/by.json 545 bytes 221.57kB 0.25%
chunk-BxUrCEkM.js (New) 221.5kB 221.5kB 100.0% 🚀
chunk-C8SeE0QX.js (New) 208.08kB 208.08kB 100.0% 🚀
assets/i18n/ar.json 490 bytes 197.19kB 0.25%
assets/i18n/ary.json 462 bytes 193.53kB 0.24%
assets/i18n/ja.json 510 bytes 189.9kB 0.27%
chunk-DFNOUlwF.js (New) 187.3kB 187.3kB 100.0% 🚀
assets/i18n/hu.json 451 bytes 184.97kB 0.24%
assets/i18n/ko.json 435 bytes 174.83kB 0.25%
assets/i18n/fr.json 423 bytes 172.87kB 0.25%
chunk-lpKG4dEv.js (New) 169.79kB 169.79kB 100.0% 🚀
assets/i18n/pt-BR.json 390 bytes 168.04kB 0.23%
assets/i18n/de.json 432 bytes 167.96kB 0.26%
assets/i18n/es.json 409 bytes 167.27kB 0.25%
assets/i18n/pt-PT.json 399 bytes 167.18kB 0.24%
chunk-DOLGwD0t.js (New) 165.59kB 165.59kB 100.0% 🚀
assets/i18n/pl.json 388 bytes 165.43kB 0.24%
assets/i18n/tr.json 414 bytes 164.7kB 0.25%
assets/i18n/it.json 398 bytes 164.18kB 0.24%
assets/i18n/nl.json 414 bytes 162.71kB 0.26%
chunk-CtnnUPg4.js (New) 159.92kB 159.92kB 100.0% 🚀
assets/i18n/en.json 357 bytes 150.88kB 0.24%
assets/i18n/zhtw.json 369 bytes 150.83kB 0.25%
chunk-BwDZu5np.js (New) 149.56kB 149.56kB 100.0% 🚀
assets/i18n/zh.json 369 bytes 148.54kB 0.25%
chunk-bsnQKMs6.js (New) 145.1kB 145.1kB 100.0% 🚀
chunk-ChZ7g3Pp.js (New) 124.14kB 124.14kB 100.0% 🚀
chunk-CZiL4DM_.js (New) 90.38kB 90.38kB 100.0% 🚀
chunk-B85hoqsw.js (New) 70.13kB 70.13kB 100.0% 🚀
chunk-IhQu0q1X.js (New) 64.2kB 64.2kB 100.0% 🚀
chunk-B5o6ghyn.js (New) 59.82kB 59.82kB 100.0% 🚀
chunk-B_6rqVXi.js (New) 55.9kB 55.9kB 100.0% 🚀
chunk-uyOcpLoJ.js (New) 54.16kB 54.16kB 100.0% 🚀
chunk-g05F-fWu.js (New) 52.44kB 52.44kB 100.0% 🚀
chunk-DclTGLUI.js (New) 49.69kB 49.69kB 100.0% 🚀
chunk-BGpqExoX.js (New) 46.19kB 46.19kB 100.0% 🚀
ngsw.json -102 bytes 45.47kB -0.22%
chunk-aEK9bhRU.js (New) 43.12kB 43.12kB 100.0% 🚀
chunk-CKCQhWgE.js (New) 40.16kB 40.16kB 100.0% 🚀
chunk-Dort095b.js (New) 35.04kB 35.04kB 100.0% 🚀
chunk-Bc8jL-cZ.js (New) 34.73kB 34.73kB 100.0% 🚀
chunk-ih-M09d7.js (New) 30.19kB 30.19kB 100.0% 🚀
chunk-BQ1glTE8.js (New) 30.11kB 30.11kB 100.0% 🚀
chunk-BP_TM186.js (New) 26.8kB 26.8kB 100.0% 🚀
chunk-CZtG7fIW.js (New) 22.32kB 22.32kB 100.0% 🚀
chunk-DlbIii5j.js (New) 21.5kB 21.5kB 100.0% 🚀
chunk-C_aSrDkx.js (New) 19.84kB 19.84kB 100.0% 🚀
chunk-BppplgbU.js (New) 19.73kB 19.73kB 100.0% 🚀
chunk-CqJ_0jux.js (New) 18.05kB 18.05kB 100.0% 🚀
chunk-3qX3ZhKf.js (New) 17.9kB 17.9kB 100.0% 🚀
chunk-CMNo2mmO.js (New) 16.85kB 16.85kB 100.0% 🚀
chunk-13Mnqtg3.js (New) 15.62kB 15.62kB 100.0% 🚀
chunk--UCwZKJa.js (New) 15.39kB 15.39kB 100.0% 🚀
chunk-CwOYzhE8.js (New) 13.29kB 13.29kB 100.0% 🚀
chunk-DneNvCde.js (New) 12.53kB 12.53kB 100.0% 🚀
chunk-C8mUUwTI.js (New) 12.11kB 12.11kB 100.0% 🚀
chunk-r4SlbPWO.js (New) 11.04kB 11.04kB 100.0% 🚀
chunk-CSMpUkY6.js (New) 10.63kB 10.63kB 100.0% 🚀
chunk-BmU40XZd.js (New) 10.15kB 10.15kB 100.0% 🚀
chunk-giwzT9g6.js (New) 9.48kB 9.48kB 100.0% 🚀
chunk-Ru89m2yM.js (New) 8.84kB 8.84kB 100.0% 🚀
chunk-B61Bf1va.js (New) 8.24kB 8.24kB 100.0% 🚀
chunk-BWqcp8GY.js (New) 7.34kB 7.34kB 100.0% 🚀
chunk-D2w-4_rH.js (New) 5.66kB 5.66kB 100.0% 🚀
chunk-H8dA4TLW.js (New) 5.46kB 5.46kB 100.0% 🚀
chunk-Cvi1jDBF.js (New) 5.15kB 5.15kB 100.0% 🚀
chunk-GGU12eSt.js (New) 4.89kB 4.89kB 100.0% 🚀
chunk-COtLFTB5.js (New) 4.71kB 4.71kB 100.0% 🚀
chunk-BtFjoujW.js (New) 4.44kB 4.44kB 100.0% 🚀
chunk-DFUVGU4w.js (New) 4.44kB 4.44kB 100.0% 🚀
chunk-PhzYNUb4.js (New) 3.6kB 3.6kB 100.0% 🚀
chunk-DPNvmYAX.js (New) 2.85kB 2.85kB 100.0% 🚀
chunk-C1WEMDqc.js (New) 2.83kB 2.83kB 100.0% 🚀
chunk-Cr0UgSuD.js (New) 2.8kB 2.8kB 100.0% 🚀
chunk-S0bswb_f.js (New) 2.28kB 2.28kB 100.0% 🚀
chunk-BB8FaBEM.js (New) 2.25kB 2.25kB 100.0% 🚀
chunk-Yz9POzA7.js (New) 2.24kB 2.24kB 100.0% 🚀
chunk-DP4lrD-w.js (New) 2.08kB 2.08kB 100.0% 🚀
chunk-C86HQxmc.js (New) 2.02kB 2.02kB 100.0% 🚀
chunk-CDG6kEM8.js (New) 1.81kB 1.81kB 100.0% 🚀
chunk-BKU-XK7w.js (New) 1.8kB 1.8kB 100.0% 🚀
chunk-wy7q-qUT.js (New) 1.73kB 1.73kB 100.0% 🚀
chunk-CvCsxW_w.js (New) 1.71kB 1.71kB 100.0% 🚀
chunk-BTH38a2D.js (New) 1.68kB 1.68kB 100.0% 🚀
chunk-DLR4x8NJ.js (New) 1.68kB 1.68kB 100.0% 🚀
chunk-LHTtNd6Z.js (New) 1.67kB 1.67kB 100.0% 🚀
chunk-T6EMazTV.js (New) 1.67kB 1.67kB 100.0% 🚀
chunk-CZOOcb41.js (New) 1.54kB 1.54kB 100.0% 🚀
chunk-CZNmJxEu.js (New) 1.51kB 1.51kB 100.0% 🚀
chunk-CszrU1sA.js (New) 1.51kB 1.51kB 100.0% 🚀
chunk-CMqqVllf.js (New) 1.5kB 1.5kB 100.0% 🚀
chunk-B0_-xa70.js (New) 1.44kB 1.44kB 100.0% 🚀
chunk-B7EjRCe4.js (New) 1.43kB 1.43kB 100.0% 🚀
chunk-DbxLtG8e.js (New) 1.36kB 1.36kB 100.0% 🚀
chunk-DJ585GuV.js (New) 1.13kB 1.13kB 100.0% 🚀
chunk-BuGj_Ryq.js (New) 759 bytes 759 bytes 100.0% 🚀
chunk-C6LCr2Kj.js (New) 758 bytes 758 bytes 100.0% 🚀
chunk-JYWzCheb.js (New) 691 bytes 691 bytes 100.0% 🚀
chunk-DSx87kW6.js (New) 637 bytes 637 bytes 100.0% 🚀
chunk-CrBPDtH9.js (New) 588 bytes 588 bytes 100.0% 🚀
chunk-BAJTCDcZ.js (New) 449 bytes 449 bytes 100.0% 🚀
chunk-BeolPegO.js (New) 444 bytes 444 bytes 100.0% 🚀
chunk-LtEJ53Wg.js (New) 443 bytes 443 bytes 100.0% 🚀
chunk-ByfMnAiA.js (New) 437 bytes 437 bytes 100.0% 🚀
chunk-D2fjvKS-.js (New) 437 bytes 437 bytes 100.0% 🚀
chunk-CpkVxS-n.js (New) 383 bytes 383 bytes 100.0% 🚀
chunk-Do2l25_t.js (New) 331 bytes 331 bytes 100.0% 🚀
chunk-C6XKD4Pf.js (New) 284 bytes 284 bytes 100.0% 🚀
chunk-BkTypRZY.js (New) 242 bytes 242 bytes 100.0% 🚀
chunk-lcd29eWc.js (New) 238 bytes 238 bytes 100.0% 🚀
chunk-DFGw3-Xz.js (New) 230 bytes 230 bytes 100.0% 🚀
chunk-Ds49lRYJ.js (New) 116 bytes 116 bytes 100.0% 🚀
chunk-GixKp2Q0.js (New) 106 bytes 106 bytes 100.0% 🚀
chunk-BnUBBFRr.js (Deleted) -2.65MB 0 bytes -100.0% 🗑️
chunk-BW5hOi3l.js (Deleted) -858.67kB 0 bytes -100.0% 🗑️
chunk-Dl_D0ik6.js (Deleted) -347.47kB 0 bytes -100.0% 🗑️
chunk-6IlaK-xz.js (Deleted) -278.65kB 0 bytes -100.0% 🗑️
main-O6PMJXDY.js (Deleted) -276.41kB 0 bytes -100.0% 🗑️
chunk-Cd9lllT0.js (Deleted) -221.53kB 0 bytes -100.0% 🗑️
chunk-CWX1jykb.js (Deleted) -208.08kB 0 bytes -100.0% 🗑️
chunk-CxP-SYRe.js (Deleted) -187.34kB 0 bytes -100.0% 🗑️
chunk-CoP1exR2.js (Deleted) -169.79kB 0 bytes -100.0% 🗑️
chunk-pS5q7ZE1.js (Deleted) -165.59kB 0 bytes -100.0% 🗑️
chunk-XEd4ovVA.js (Deleted) -159.95kB 0 bytes -100.0% 🗑️
chunk-Cd9u6Tik.js (Deleted) -149.56kB 0 bytes -100.0% 🗑️
chunk-3RrCS7Vn.js (Deleted) -145.13kB 0 bytes -100.0% 🗑️
chunk-ovPpVudc.js (Deleted) -90.38kB 0 bytes -100.0% 🗑️
chunk-Drmt8Srj.js (Deleted) -73.5kB 0 bytes -100.0% 🗑️
chunk-DrF3CT5g.js (Deleted) -70.24kB 0 bytes -100.0% 🗑️
chunk-DEQ5a6j9.js (Deleted) -64.22kB 0 bytes -100.0% 🗑️
chunk-BKUJNRNE.js (Deleted) -59.82kB 0 bytes -100.0% 🗑️
chunk-2sGgSAON.js (Deleted) -55.9kB 0 bytes -100.0% 🗑️
chunk-Bw_hUNLc.js (Deleted) -54.16kB 0 bytes -100.0% 🗑️
chunk-D9snwVsE.js (Deleted) -52.44kB 0 bytes -100.0% 🗑️
chunk-DotEnsPz.js (Deleted) -50.91kB 0 bytes -100.0% 🗑️
chunk-DGOXZ4wZ.js (Deleted) -49.7kB 0 bytes -100.0% 🗑️
chunk-CglHwyGA.js (Deleted) -46.19kB 0 bytes -100.0% 🗑️
chunk-CUI-KSih.js (Deleted) -43.17kB 0 bytes -100.0% 🗑️
chunk-CYjHUNlt.js (Deleted) -40.16kB 0 bytes -100.0% 🗑️
chunk-BaXyKZDA.js (Deleted) -35.06kB 0 bytes -100.0% 🗑️
chunk-aG2nwb7m.js (Deleted) -34.73kB 0 bytes -100.0% 🗑️
chunk-D9G9uUP_.js (Deleted) -30.19kB 0 bytes -100.0% 🗑️
chunk-BBpe49qs.js (Deleted) -30.11kB 0 bytes -100.0% 🗑️
chunk-C0Yr1T-o.js (Deleted) -25.17kB 0 bytes -100.0% 🗑️
chunk-DZqA5ed0.js (Deleted) -22.32kB 0 bytes -100.0% 🗑️
chunk-fJ8NNZ_n.js (Deleted) -21.5kB 0 bytes -100.0% 🗑️
chunk-BL4cYTE4.js (Deleted) -19.83kB 0 bytes -100.0% 🗑️
chunk-64dTcQbI.js (Deleted) -19.73kB 0 bytes -100.0% 🗑️
chunk-DuA0oLms.js (Deleted) -18.05kB 0 bytes -100.0% 🗑️
chunk-qB16O0Xg.js (Deleted) -17.9kB 0 bytes -100.0% 🗑️
chunk-CUbYtC_T.js (Deleted) -16.89kB 0 bytes -100.0% 🗑️
chunk-Bvimqns6.js (Deleted) -15.62kB 0 bytes -100.0% 🗑️
chunk-DGtH3Xc7.js (Deleted) -15.39kB 0 bytes -100.0% 🗑️
chunk-BpIyE_iW.js (Deleted) -13.29kB 0 bytes -100.0% 🗑️
chunk-CFdVTdUZ.js (Deleted) -12.53kB 0 bytes -100.0% 🗑️
chunk-DlN6d4Lg.js (Deleted) -12.11kB 0 bytes -100.0% 🗑️
chunk-DN_vTQnR.js (Deleted) -11.04kB 0 bytes -100.0% 🗑️
chunk-DeaUmWOc.js (Deleted) -10.65kB 0 bytes -100.0% 🗑️
chunk-Pc4s1jMY.js (Deleted) -10.15kB 0 bytes -100.0% 🗑️
chunk-OPeNrjTk.js (Deleted) -9.52kB 0 bytes -100.0% 🗑️
chunk-CSeQGNnh.js (Deleted) -8.9kB 0 bytes -100.0% 🗑️
chunk-DiiZv8qs.js (Deleted) -8.84kB 0 bytes -100.0% 🗑️
chunk-mbk6rsnw.js (Deleted) -7.37kB 0 bytes -100.0% 🗑️
chunk-C527De6h.js (Deleted) -5.66kB 0 bytes -100.0% 🗑️
chunk-q83Haa-k.js (Deleted) -5.46kB 0 bytes -100.0% 🗑️
chunk-DRhBMzm6.js (Deleted) -5.15kB 0 bytes -100.0% 🗑️
chunk-Bxma_D-8.js (Deleted) -4.89kB 0 bytes -100.0% 🗑️
chunk-D62QW0XN.js (Deleted) -4.71kB 0 bytes -100.0% 🗑️
chunk-Dp16N1zM.js (Deleted) -4.44kB 0 bytes -100.0% 🗑️
chunk-DmDLWFH5.js (Deleted) -4.44kB 0 bytes -100.0% 🗑️
chunk-B75CX83_.js (Deleted) -3.6kB 0 bytes -100.0% 🗑️
chunk-DxlMUp0f.js (Deleted) -2.88kB 0 bytes -100.0% 🗑️
chunk-aCuTKUPC.js (Deleted) -2.85kB 0 bytes -100.0% 🗑️
chunk-Dbo7RjAs.js (Deleted) -2.8kB 0 bytes -100.0% 🗑️
chunk-Cu4TjgOp.js (Deleted) -2.28kB 0 bytes -100.0% 🗑️
chunk-BIxPpEYz.js (Deleted) -2.27kB 0 bytes -100.0% 🗑️
chunk-65-IyD3A.js (Deleted) -2.2kB 0 bytes -100.0% 🗑️
chunk-BfrsaUGR.js (Deleted) -2.08kB 0 bytes -100.0% 🗑️
chunk-Pos3s4aj.js (Deleted) -2.02kB 0 bytes -100.0% 🗑️
chunk-CLTRBoiS.js (Deleted) -1.83kB 0 bytes -100.0% 🗑️
chunk-D4MG7NNg.js (Deleted) -1.83kB 0 bytes -100.0% 🗑️
chunk-Da0PkNqz.js (Deleted) -1.73kB 0 bytes -100.0% 🗑️
chunk-eUQHHdof.js (Deleted) -1.71kB 0 bytes -100.0% 🗑️
chunk-D48df5J3.js (Deleted) -1.7kB 0 bytes -100.0% 🗑️
chunk-S_RUcTCE.js (Deleted) -1.7kB 0 bytes -100.0% 🗑️
chunk-DuvDcJTf.js (Deleted) -1.7kB 0 bytes -100.0% 🗑️
chunk-cr1nZm3K.js (Deleted) -1.7kB 0 bytes -100.0% 🗑️
chunk-CcbyUlKc.js (Deleted) -1.54kB 0 bytes -100.0% 🗑️
chunk-DwPFYTUs.js (Deleted) -1.54kB 0 bytes -100.0% 🗑️
chunk-745u8Y56.js (Deleted) -1.53kB 0 bytes -100.0% 🗑️
chunk-Dz-J2QKc.js (Deleted) -1.53kB 0 bytes -100.0% 🗑️
chunk-tEGuKezp.js (Deleted) -1.46kB 0 bytes -100.0% 🗑️
chunk-CbU3uvHF.js (Deleted) -1.46kB 0 bytes -100.0% 🗑️
chunk-Hzok8V7f.js (Deleted) -1.36kB 0 bytes -100.0% 🗑️
chunk-DYZt-d8w.js (Deleted) -1.13kB 0 bytes -100.0% 🗑️
chunk-BNS3IsfU.js (Deleted) -759 bytes 0 bytes -100.0% 🗑️
chunk-5cOXRh9i.js (Deleted) -758 bytes 0 bytes -100.0% 🗑️
chunk-BlvPTZUb.js (Deleted) -691 bytes 0 bytes -100.0% 🗑️
chunk-CK4i8zdd.js (Deleted) -637 bytes 0 bytes -100.0% 🗑️
chunk-3VrwCl1h.js (Deleted) -588 bytes 0 bytes -100.0% 🗑️
chunk-CZ1XM7sH.js (Deleted) -477 bytes 0 bytes -100.0% 🗑️
chunk-B8iDmF-O.js (Deleted) -444 bytes 0 bytes -100.0% 🗑️
chunk-C0acYAUd.js (Deleted) -443 bytes 0 bytes -100.0% 🗑️
chunk-8o7KB-bp.js (Deleted) -437 bytes 0 bytes -100.0% 🗑️
chunk-DVvYdQCd.js (Deleted) -437 bytes 0 bytes -100.0% 🗑️
chunk-zF_uoTvO.js (Deleted) -383 bytes 0 bytes -100.0% 🗑️
chunk-Q4Oye4Wu.js (Deleted) -331 bytes 0 bytes -100.0% 🗑️
chunk-BBfYecYp.js (Deleted) -284 bytes 0 bytes -100.0% 🗑️
chunk-DdD9RuOe.js (Deleted) -242 bytes 0 bytes -100.0% 🗑️
chunk-DKk4WLW0.js (Deleted) -238 bytes 0 bytes -100.0% 🗑️
chunk-2x_A2QZ0.js (Deleted) -230 bytes 0 bytes -100.0% 🗑️
chunk-nzRKgnoF.js (Deleted) -116 bytes 0 bytes -100.0% 🗑️
chunk-D_HPX9JT.js (Deleted) -106 bytes 0 bytes -100.0% 🗑️

@codecov

codecov Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 87.89474% with 23 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.63%. Comparing base (07d14e8) to head (d03dfe4).
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...ces/src/lib/source-sync/source-browser-settings.ts 83.56% 5 Missing and 7 partials ⚠️
.../app/settings/settings-server-section.component.ts 91.89% 0 Missing and 3 partials ⚠️
...ctron-backend/src/app/events/source-sync.events.ts 91.30% 0 Missing and 2 partials ⚠️
...n-backend/src/app/services/source-server-config.ts 91.66% 0 Missing and 2 partials ⚠️
...ervices/src/lib/source-sync/source-sync.service.ts 66.66% 0 Missing and 2 partials ⚠️
libs/shared/interfaces/src/lib/ipc-commands.ts 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2192      +/-   ##
==========================================
+ Coverage   81.60%   81.63%   +0.02%     
==========================================
  Files        1884     1884              
  Lines       98518    98628     +110     
  Branches    23705    23004     -701     
==========================================
+ Hits        80392    80511     +119     
+ Misses      11103    11085      -18     
- Partials     7023     7032       +9     
Flag Coverage Δ
unit 81.63% <87.89%> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

@4gray

4gray commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

@greptileai

@4gray

4gray commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Another round soon, please!

Reviewed commit: ed6a8e54fd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@4gray

4gray commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

@greptileai

@4gray

4gray commented Nov 12, 2026

Copy link
Copy Markdown
Owner Author

@codex review

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. What shall we delve into next?

Reviewed commit: d03dfe4a49

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@4gray
4gray merged commit cd49e62 into master Nov 12, 2026
35 checks passed
@4gray
4gray deleted the agent/server-reconnect-recovery branch November 12, 2026 10:47
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