Skip to content

fix: Add NotifyEmitter#8423

Merged
Jason3S merged 20 commits intomainfrom
dev-notify
Jan 23, 2026
Merged

fix: Add NotifyEmitter#8423
Jason3S merged 20 commits intomainfrom
dev-notify

Conversation

@Jason3S
Copy link
Copy Markdown
Collaborator

@Jason3S Jason3S commented Jan 22, 2026

Pull request overview

This pull request adds a new NotifyEmitter class to provide a reusable event notification system based on the Disposable pattern. The PR refactors the RPC server test to use this new event emitter pattern instead of a custom AsyncMessageQueue implementation, resulting in cleaner and more maintainable code.

Changes:

  • Introduces NotifyEmitter class with NotifyEvent pattern for event handling with automatic cleanup via Symbol.dispose
  • Adds helper functions notifyEventToPromise and notifyEventOnce for working with notify events
  • Creates MessagePortEvents wrapper class to adapt MessagePort events to the NotifyEmitter pattern
  • Refactors server.test.ts to use the new event system, removing the custom AsyncMessageQueue implementation
  • Adds result?: unknown field to RPCResponse interface for more consistent type handling
  • Exports new notify-related types and functions through the public API

@github-actions github-actions bot added the fix label Jan 22, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Jan 22, 2026

Performance Report

Daily Performance
xychart-beta
    title Files Per Second by Day
    y-axis Files per Second
    x-axis Date [Dec-24, Dec-27, Dec-28, Dec-29, Dec-30, Jan-1, Jan-4, Jan-5, Jan-6, Jan-7, Jan-8, Jan-9, Jan-10, Jan-11, Jan-13, Jan-16, Jan-17, Jan-18, Jan-20, Jan-22, Jan-23]
    bar [173.54, 170.88, 173.10, 172.87, 170.63, 172.55, 170.72, 165.99, 165.55, 169.22, 174.07, 185.19, 187.45, 188.92, 191.86, 190.29, 191.94, 196.32, 194.86, 193.27, 193.50]
    line [6.06, 5.80, 6.19, 6.04, 6.09, 6.29, 6.13, 5.79, 5.41, 5.66, 6.15, 6.86, 6.90, 6.81, 6.66, 6.97, 6.64, 6.91, 6.72, 6.70, 6.80]
    line [13.81, 14.51, 13.39, 13.58, 14.12, 14.33, 14.46, 13.75, 12.60, 13.58, 14.59, 15.66, 15.79, 15.64, 15.80, 15.80, 16.00, 15.45, 15.24, 15.34, 15.18]
    line [22.15, 22.59, 22.93, 22.71, 21.96, 22.43, 22.76, 19.93, 19.65, 21.35, 23.88, 24.29, 22.74, 25.52, 24.84, 24.50, 25.34, 23.52, 24.93, 24.49, 23.73]
    line [32.72, 33.00, 31.56, 31.04, 31.19, 31.58, 30.98, 28.44, 27.47, 29.34, 33.19, 34.45, 32.48, 34.06, 34.46, 35.93, 33.32, 35.23, 35.39, 34.70, 33.02]
    line [18.95, 18.61, 19.20, 19.16, 18.64, 18.56, 18.69, 15.82, 15.37, 16.82, 19.06, 19.36, 19.05, 20.04, 19.27, 20.18, 19.35, 20.14, 20.01, 18.30, 19.42]
    line [94.29, 94.73, 94.34, 95.29, 95.11, 98.41, 97.41, 93.11, 86.98, 96.48, 99.80, 107.59, 107.79, 102.30, 102.07, 100.69, 106.54, 108.37, 107.20, 102.41, 107.66]
    line [45.81, 45.88, 45.34, 46.09, 44.04, 43.96, 44.61, 40.41, 39.77, 41.67, 47.14, 50.43, 48.76, 50.39, 48.56, 48.63, 49.92, 47.96, 48.91, 47.53, 48.87]
    line [24.02, 24.07, 23.90, 24.05, 23.79, 23.47, 23.84, 21.71, 20.06, 22.54, 25.57, 25.37, 26.38, 26.59, 26.51, 25.26, 25.41, 25.96, 26.49, 25.35, 26.36]
    line [128.71, 129.73, 130.21, 126.25, 125.32, 128.46, 125.36, 119.96, 121.55, 126.54, 132.92, 138.94, 136.24, 140.09, 141.04, 141.83, 138.27, 139.82, 139.77, 141.92, 145.03]
    line [45.75, 48.03, 44.47, 43.53, 43.39, 44.67, 43.92, 40.38, 37.83, 41.50, 45.72, 48.43, 43.80, 48.21, 48.57, 48.55, 50.09, 48.39, 47.34, 47.95, 48.81]
    line [72.16, 72.22, 72.29, 71.63, 70.43, 69.31, 70.55, 65.48, 65.68, 67.02, 74.90, 75.80, 79.70, 78.59, 81.33, 81.33, 81.07, 83.41, 80.33, 80.91, 81.84]
    line [175.43, 173.51, 166.13, 173.69, 176.28, 174.86, 172.30, 168.35, 166.48, 160.20, 176.21, 192.32, 196.53, 187.68, 194.19, 197.24, 195.66, 200.40, 198.68, 198.61, 199.05]
    line [94.41, 95.55, 97.07, 96.22, 92.57, 92.92, 91.62, 91.70, 90.24, 93.64, 97.75, 101.99, 101.23, 103.65, 103.42, 102.46, 106.20, 105.37, 102.12, 106.10, 104.03]
    line [33.40, 32.96, 33.38, 32.90, 31.64, 32.05, 31.87, 30.32, 30.13, 30.52, 32.45, 34.68, 36.83, 37.61, 37.83, 37.29, 37.79, 38.08, 37.68, 37.37, 37.52]
    line [116.57, 120.86, 116.04, 115.61, 111.25, 114.64, 107.26, 104.85, 102.99, 109.30, 116.77, 127.71, 114.20, 134.12, 122.32, 127.81, 135.76, 135.82, 124.24, 128.26, 123.16]
    line [203.82, 209.47, 208.55, 206.80, 208.32, 210.94, 208.87, 204.66, 200.55, 205.66, 217.93, 227.16, 232.86, 230.33, 232.89, 233.09, 238.38, 239.45, 235.23, 231.21, 232.32]
    line [150.82, 149.41, 147.54, 148.32, 148.24, 148.81, 152.12, 144.06, 141.46, 148.01, 153.69, 163.45, 163.04, 162.47, 164.23, 164.63, 167.70, 160.91, 159.45, 160.99, 163.06]
    line [194.62, 190.28, 203.79, 203.98, 206.16, 191.99, 203.06, 195.28, 197.18, 199.76, 210.90, 223.95, 228.77, 221.68, 228.59, 230.59, 232.51, 236.40, 229.96, 237.87, 232.96]
    line [173.52, 171.67, 165.07, 170.82, 168.89, 168.46, 160.87, 163.97, 157.39, 159.96, 176.03, 182.37, 173.15, 184.83, 185.84, 185.90, 183.93, 185.28, 191.50, 191.13, 182.36]
    line [240.67, 245.15, 245.04, 246.20, 235.52, 245.54, 241.43, 227.89, 226.93, 235.13, 241.29, 256.22, 256.06, 239.94, 250.86, 255.23, 249.00, 265.06, 266.25, 265.79, 267.57]
    line [39.22, 39.13, 37.99, 37.43, 37.30, 38.53, 37.44, 35.32, 32.27, 37.29, 39.53, 40.03, 40.97, 40.73, 40.14, 39.37, 40.16, 40.57, 39.99, 40.12, 40.70]
    line [203.32, 201.04, 202.44, 203.10, 195.80, 206.74, 207.91, 185.17, 183.38, 197.81, 213.96, 231.09, 232.21, 230.83, 222.60, 231.13, 231.51, 240.11, 237.40, 228.21, 232.04]
    line [64.92, 65.76, 63.97, 65.18, 60.36, 63.48, 65.17, 62.63, 59.94, 62.94, 68.03, 71.19, 73.13, 70.56, 71.46, 69.64, 73.60, 68.98, 70.36, 69.06, 70.65]
    line [199.83, 198.90, 201.82, 194.83, 201.20, 199.08, 201.68, 196.07, 191.44, 191.98, 208.77, 213.46, 218.16, 220.17, 217.65, 213.84, 219.82, 216.50, 223.77, 214.00, 221.94]
    line [119.81, 119.36, 122.21, 121.33, 118.71, 119.46, 120.59, 115.93, 111.61, 116.47, 122.24, 129.36, 128.91, 133.62, 132.89, 135.43, 131.64, 136.76, 137.40, 132.75, 133.11]
    line [119.27, 121.25, 119.32, 118.60, 119.88, 120.18, 120.91, 116.77, 113.59, 115.36, 119.01, 126.14, 130.00, 129.60, 128.50, 127.21, 130.68, 134.03, 132.53, 131.61, 120.07]
    line [79.57, 78.19, 78.53, 81.17, 72.47, 80.44, 78.06, 78.74, 77.69, 75.81, 82.18, 88.38, 87.15, 87.31, 87.18, 90.31, 92.11, 92.40, 91.04, 89.62, 87.22]
    line [343.48, 342.97, 326.49, 346.96, 341.41, 349.59, 332.44, 321.99, 323.13, 336.38, 352.94, 374.70, 389.29, 376.57, 388.49, 375.32, 366.20, 389.54, 377.40, 389.08, 381.74]
    line [207.76, 200.78, 205.77, 199.55, 199.57, 206.34, 210.39, 198.78, 192.42, 197.28, 209.87, 213.91, 219.61, 218.24, 213.27, 217.66, 218.45, 221.48, 225.59, 224.42, 211.39]
    line [136.98, 135.57, 135.50, 134.25, 129.01, 139.25, 139.78, 129.55, 131.60, 134.11, 136.19, 147.37, 149.33, 150.95, 149.18, 146.30, 139.07, 151.18, 153.74, 153.64, 149.42]
    line [75.66, 76.28, 80.16, 75.45, 77.29, 76.83, 75.96, 77.04, 75.98, 75.37, 79.34, 80.97, 83.22, 85.10, 84.24, 85.04, 88.54, 87.62, 86.00, 85.49, 85.44]
    line [157.30, 154.76, 157.76, 156.45, 156.97, 156.48, 161.27, 156.23, 155.16, 163.04, 163.18, 170.50, 178.84, 176.33, 177.89, 180.64, 176.54, 181.96, 178.88, 179.34, 180.85]
    line [322.19, 317.56, 317.24, 315.38, 325.99, 315.10, 321.37, 318.36, 304.42, 303.41, 319.39, 327.56, 357.94, 329.89, 337.22, 342.27, 345.00, 356.14, 349.54, 354.10, 362.03]
    line [74.27, 73.83, 75.96, 75.41, 73.52, 70.94, 72.13, 67.68, 66.21, 71.65, 76.02, 80.93, 84.19, 83.66, 81.75, 85.70, 86.11, 85.86, 86.06, 83.20, 84.01]
    line [189.98, 177.07, 192.83, 190.79, 182.79, 190.84, 188.67, 194.33, 177.58, 179.97, 187.56, 204.85, 175.41, 212.66, 215.89, 200.52, 199.18, 198.97, 206.74, 212.35, 221.36]
    line [253.96, 249.85, 237.45, 249.30, 236.26, 250.59, 240.41, 245.35, 243.40, 249.06, 252.82, 269.41, 273.80, 263.96, 272.92, 261.41, 256.94, 266.46, 233.73, 254.73, 229.52]
    line [179.44, 172.82, 176.92, 167.34, 176.43, 176.94, 178.99, 168.22, 166.87, 176.13, 175.56, 186.67, 196.90, 196.60, 194.03, 194.99, 192.23, 197.19, 192.71, 194.65, 195.11]
    line [236.13, 235.71, 228.72, 232.65, 236.79, 238.66, 239.84, 237.65, 227.69, 241.17, 242.31, 251.84, 257.31, 259.03, 255.67, 262.65, 261.59, 266.80, 267.02, 266.61, 258.26]
    line [223.16, 220.54, 207.84, 221.69, 222.09, 227.69, 222.11, 226.42, 218.19, 221.48, 227.88, 240.46, 239.34, 239.80, 239.93, 238.57, 236.32, 249.26, 244.81, 245.93, 245.98]
    line [152.02, 150.72, 154.90, 153.82, 147.24, 149.99, 145.79, 146.47, 145.32, 149.61, 152.47, 167.66, 162.55, 150.60, 169.56, 173.92, 177.33, 173.32, 178.23, 175.55, 163.47]
    line [196.54, 189.53, 183.55, 193.13, 194.30, 182.73, 194.72, 192.90, 184.51, 177.92, 195.10, 212.88, 219.97, 208.62, 218.28, 221.67, 222.50, 222.49, 221.50, 213.70, 218.62]
    line [360.07, 349.58, 358.00, 357.09, 358.22, 365.46, 375.72, 366.42, 366.13, 364.89, 378.25, 407.03, 408.32, 400.13, 413.71, 402.27, 405.88, 422.55, 417.95, 422.84, 420.55]
    line [113.51, 116.56, 110.18, 116.43, 113.57, 116.81, 116.74, 114.96, 116.34, 117.08, 121.26, 127.78, 131.45, 132.46, 133.58, 134.83, 138.33, 137.42, 133.67, 135.99, 134.55]
    line [89.17, 86.07, 86.04, 90.94, 91.20, 88.38, 89.72, 82.57, 85.29, 87.34, 86.74, 95.27, 97.94, 97.30, 98.25, 99.69, 99.56, 100.21, 102.10, 98.11, 100.45]
    line [117.75, 118.71, 118.58, 117.32, 112.42, 116.77, 113.28, 107.29, 110.98, 110.70, 119.74, 122.80, 129.73, 128.79, 126.07, 129.88, 128.08, 130.23, 129.79, 129.62, 128.61]
    line [242.42, 235.97, 234.05, 235.94, 244.60, 237.90, 238.37, 234.19, 223.75, 225.18, 243.31, 257.18, 256.97, 252.12, 251.26, 250.15, 255.66, 262.96, 271.72, 271.96, 255.83]
    line [51.38, 49.64, 48.60, 49.52, 48.09, 50.03, 48.82, 46.25, 44.36, 47.22, 53.09, 55.75, 56.48, 57.02, 56.66, 55.93, 59.24, 56.01, 55.67, 55.90, 55.38]
    line [294.23, 289.77, 295.71, 297.33, 290.64, 293.31, 297.11, 291.75, 279.45, 292.30, 315.14, 325.37, 329.28, 331.31, 322.95, 325.07, 320.94, 337.71, 314.28, 335.00, 331.96]
    line [172.74, 173.87, 177.24, 172.99, 166.08, 180.17, 181.21, 173.75, 179.71, 177.60, 181.52, 194.07, 204.27, 201.52, 203.28, 190.39, 203.06, 207.16, 206.41, 204.85, 206.04]
    line [165.65, 160.55, 167.52, 164.35, 162.61, 160.21, 152.67, 150.17, 151.88, 156.83, 157.18, 166.03, 166.95, 174.59, 178.01, 176.93, 175.50, 183.23, 181.65, 176.71, 179.95]
Loading
Time to Process Files
Repository Elapsed Min/Avg/Max SD SD Graph
AdaDoom3/AdaDoom3 2.75 2.6 / 3.0 / 3.5 0.26 ┣━━●━━╋━━┻━━┫
alexiosc/megistos 6.94 6.6 / 7.6 / 9.9 0.73 ┣━━●━━╋━━┻━━┫
apollographql/apollo-server 2.43 2.3 / 2.6 / 3.1 0.17 ┣━━●━━╋━━┻━━┫
aspnetboilerplate/aspnetboilerplate 8.85 8.4 / 9.3 / 10.6 0.54 ┣━━●━━╋━━┻━━┫
aws-amplify/docs 11.68 11.3 / 12.5 / 13.8 0.62 ┣━●┻━━╋━━┻━━┫
Azure/azure-rest-api-specs 9.57 8.6 / 10.0 / 11.7 0.67 ┣━━┻●━╋━━┻━━┫
bitjson/typescript-starter 1.03 1.0 / 1.1 / 1.4 0.11 ┣━┻━●╋━━┻━┫
caddyserver/caddy 3.34 3.1 / 3.5 / 4.3 0.26 ┣━━┻●━╋━━┻━━┫
canada-ca/open-source-logiciel-libre 1.03 1.0 / 1.1 / 1.4 0.10 ┣━┻●━╋━━┻━┫
chef/chef 5.14 5.0 / 5.7 / 6.8 0.48 ┣━━●━━╋━━┻━━┫
dart-lang/sdk 53.05 51.7 / 58.5 / 68.3 4.28 ┣━━●┻━━━╋━━━┻━━━┫
django/django 13.21 12.6 / 14.4 / 17.0 1.14 ┣━━━●━━╋━━┻━━━┫
eslint/eslint 9.29 9.0 / 10.0 / 11.3 0.57 ┣━●┻━━╋━━┻━━┫
exonum/exonum 3.27 3.2 / 3.5 / 4.1 0.24 ┣━━●━━╋━━┻━━┫
flutter/samples 14.93 13.4 / 15.5 / 22.6 1.55 ┣━━━┻━●╋━━┻━━━┫
gitbucket/gitbucket 3.10 3.0 / 3.3 / 4.0 0.24 ┣━━●━━╋━━┻━━┫
googleapis/google-cloud-cpp 116.79 113.8 / 127.0 / 145.3 8.53 ┣━━●┻━━━╋━━━┻━━━┫
graphql/express-graphql 1.10 1.0 / 1.1 / 1.4 0.10 ┣━┻━●╋━━┻━┫
graphql/graphql-js 2.54 2.5 / 2.8 / 3.2 0.18 ┣━●┻━━╋━━┻━━┫
graphql/graphql-relay-js 1.06 1.0 / 1.2 / 1.5 0.11 ┣━┻●━╋━━┻━┫
graphql/graphql-spec 1.25 1.2 / 1.3 / 1.6 0.11 ┣━┻━●╋━━┻━┫
iluwatar/java-design-patterns 11.01 10.9 / 12.0 / 13.3 0.76 ┣━●┻━━╋━━┻━━┫
ktaranov/sqlserver-kit 5.72 5.5 / 6.1 / 6.8 0.36 ┣━━●━━╋━━┻━━┫
liriliri/licia 3.76 3.6 / 4.1 / 4.7 0.29 ┣━━●━━╋━━┻━━┫
MartinThoma/LaTeX-examples 6.07 5.8 / 6.7 / 8.5 0.64 ┣━━●━━╋━━┻━━┫
mdx-js/mdx 1.72 1.7 / 1.9 / 2.2 0.16 ┣━●━━╋━━┻━┫
microsoft/TypeScript-Website 5.09 4.9 / 5.4 / 6.2 0.34 ┣━━●━━╋━━┻━━┫
MicrosoftDocs/PowerShell-Docs 19.67 19.1 / 21.5 / 24.5 1.61 ┣━━●┻━━╋━━┻━━━┫
neovim/nvim-lspconfig 3.86 3.8 / 4.2 / 4.9 0.31 ┣━●┻━━╋━━┻━━┫
pagekit/pagekit 3.51 3.2 / 3.5 / 4.0 0.20 ┣━━┻━●╋━━┻━━┫
php/php-src 22.55 21.7 / 24.6 / 30.2 1.76 ┣━━●┻━━╋━━┻━━━┫
plasticrake/tplink-smarthome-api 1.27 1.2 / 1.4 / 1.7 0.12 ┣━┻●━╋━━┻━┫
prettier/prettier 7.04 7.0 / 7.7 / 8.5 0.39 ┣●━┻━━╋━━┻━━┫
pycontribs/jira 1.43 1.3 / 1.5 / 1.9 0.14 ┣━┻●━╋━━┻━┫
RustPython/RustPython 5.87 5.2 / 6.1 / 7.4 0.54 ┣━━┻━●╋━━┻━━┫
shoelace-style/shoelace 2.69 2.6 / 2.9 / 3.3 0.16 ┣━━●━━╋━━┻━━┫
slint-ui/slint 12.14 11.8 / 13.6 / 15.8 0.90 ┣●━┻━━╋━━┻━━┫
SoftwareBrothers/admin-bro 2.42 2.3 / 2.5 / 2.9 0.17 ┣━━┻●━╋━━┻━━┫
sveltejs/svelte 19.74 19.3 / 21.5 / 24.7 1.45 ┣━━●┻━━╋━━┻━━━┫
TheAlgorithms/Python 5.23 5.2 / 5.7 / 6.7 0.33 ┣━●┻━━╋━━┻━━┫
twbs/bootstrap 1.67 1.6 / 1.8 / 2.1 0.12 ┣━┻●━╋━━┻━┫
typescript-cheatsheets/react 1.30 1.3 / 1.4 / 1.9 0.11 ┣━┻●━╋━━┻━┫
typescript-eslint/typescript-eslint 3.93 3.8 / 4.2 / 5.0 0.29 ┣━━●━━╋━━┻━━┫
vitest-dev/vitest 10.54 8.5 / 9.7 / 10.7 0.49 ┣━━┻━━╋━━┻━●┫
w3c/aria-practices 3.45 3.0 / 3.4 / 3.8 0.19 ┣━━┻━━╋●━┻━━┫
w3c/specberus 1.83 1.8 / 2.0 / 2.6 0.16 ┣━●━━╋━━┻━┫
webdeveric/webpack-assets-manifest 1.13 1.1 / 1.2 / 1.6 0.11 ┣━┻●━╋━━┻━┫
webpack/webpack 4.90 4.7 / 5.2 / 6.0 0.36 ┣━━●━━╋━━┻━━┫
wireapp/wire-desktop 1.33 1.2 / 1.4 / 1.7 0.12 ┣━┻━●╋━━┻━┫
wireapp/wire-webapp 10.54 9.1 / 10.4 / 11.7 0.54 ┣━━┻━━╋●━┻━━┫

Note:

  • Elapsed time is in seconds.
Files per Second over Time
Repository Files Sec Fps Rel Trend Fps N
AdaDoom3/AdaDoom3 103 2.75 37.52 9.77% ▇▇▇▇█▇▇▇▇▇▇█▇▇██▇▇▇▇ 57
alexiosc/megistos 583 6.94 84.01 8.77% ▇▇▆▇▇▇█▇██▇███▇▇█▇▇▇ 57
apollographql/apollo-server 253 2.43 104.03 6.33% ▇██▇▆▇▅████▆▆█▇▆▇▇█▇ 57
aspnetboilerplate/aspnetboilerplate 2286 8.85 258.26 4.66% ▇▇█▆▇█▇▇▇████▇█▇███▇ 57
aws-amplify/docs 2874 11.68 245.98 6.50% ▇▇▇▇▆▇▇▆▆██▇▇▆█▆█▇█▇ 57
Azure/azure-rest-api-specs 2449 9.57 255.83 4.00% ▆▅▅▇▅▅▆▆▆▅█▇▇██▆▇▇▇▆ 57
bitjson/typescript-starter 20 1.03 19.42 4.08% ▇▇▆▇▇█▇█▇▇███▇▇█▇█▃▇ 57
caddyserver/caddy 291 3.34 87.22 4.54% ▆▇▇▆▇▇▇▇█▇███▇▇▇█▇▇▇ 57
canada-ca/open-source-logiciel-libre 7 1.03 6.80 7.83% █▇▇▆▇█▇█▇▇██▆▇▇▇▇▆█▇ 57
chef/chef 1197 5.14 232.96 9.72% ▇▆▇█▇██▇█████▆██▆███ 57
dart-lang/sdk 10930 53.05 206.04 9.93% ▇▇▇▇▇▆▅▆▇▇███▇▇██▇██ 57
django/django 2889 13.21 218.62 8.22% ▆▅▆▇▇▇▇▇▇▇█▇▇▇▇██▇▇▇ 57
eslint/eslint 2062 9.29 221.94 7.38% ▇▇▆▇▇▆▇▆▇█▇▅▇██▇▇▆▇▇ 57
exonum/exonum 421 3.27 128.61 6.62% █▇▆▇▇█▇█▇██▇████▇██▇ 57
flutter/samples 2441 14.93 163.47 3.13% ▇▁▇▆▇█▇▇██▇▇█▇████▇▆ 57
gitbucket/gitbucket 413 3.10 133.11 6.43% ▇▇▇▇▇▇▇█▇▇███▇███▇▇▇ 57
googleapis/google-cloud-cpp 21017 116.79 179.95 8.29% ▇▆▇▇▇▇▇▇▇████▇███▇▇▇ 57
graphql/express-graphql 26 1.10 23.73 3.01% ██▇▇▇▇▇▇▇▅█▅▇█▇▇▇▆▇▆ 57
graphql/graphql-js 368 2.54 145.03 9.53% █▇█▆▇▇▇█▇█▇▆▆█▇▇█▇▇█ 57
graphql/graphql-relay-js 28 1.06 26.36 8.17% ████▇▇█▆▇█▇▇▇████▇▇█ 57
graphql/graphql-spec 19 1.25 15.18 4.10% ▇█▇█▇██▇█▆█▇▇██▅▇▇▇▇ 57
iluwatar/java-design-patterns 1992 11.01 180.85 8.65% ▇▇▇▇███▇▇███▇██▇▇▇██ 57
ktaranov/sqlserver-kit 489 5.72 85.44 6.51% █▆▇▆▇▇█▅███▇▇█▇▇▇▇▇▇ 57
liriliri/licia 1437 3.76 381.74 7.07% ▆▇█▆█▇▆▇▆█▇██▄▇███▇▇ 57
MartinThoma/LaTeX-examples 1409 6.07 232.04 8.61% ▇▇▇▆▇▇▇▇▇█████▇██▇▇▇ 57
mdx-js/mdx 141 1.72 81.84 10.07% ▆▇█▇██▇▇▇███▇█▆▇▇█▇▇ 57
microsoft/TypeScript-Website 761 5.09 149.42 5.66% ▇▇▇▆██▆▆▅▆████▇████▇ 57
MicrosoftDocs/PowerShell-Docs 2646 19.67 134.55 8.74% ▇▇█▇▇▇█████████▅██▇▇ 57
neovim/nvim-lspconfig 768 3.86 199.05 9.32% ▅▇█▆▇▇█▇▇██▇██▇▇█▇██ 57
pagekit/pagekit 741 3.51 211.39 0.87% ▇▆▇▆▅▆▇▇▇█▇▇▇█████▇▆ 57
php/php-src 2265 22.55 100.45 8.56% ▅▇▇▇▆▇█▇▇▇█▆▇██▇█▇▇▇ 57
plasticrake/tplink-smarthome-api 62 1.27 48.87 5.96% ██▆███▇▇██▆▇█▇▇▇█▇▆▇ 57
prettier/prettier 2549 7.04 362.03 10.59% ▅▅▆▆▅▆▆▇▇█▇████▇▄▇██ 57
pycontribs/jira 79 1.43 55.38 6.56% ▇██▇▇▆▇▇█▇▆█▇▆█▇▆▆█▇ 57
RustPython/RustPython 723 5.87 123.16 3.61% ██▆▆▆▇▅▇████▆▆▆▅▇▇▇▆ 57
shoelace-style/shoelace 439 2.69 163.06 5.64% ▇▇▇▇██▇███▆▆▇▆▆▅█▆▇▇ 57
slint-ui/slint 2688 12.14 221.36 13.94% ████▆▆▅▆▆▅▆▅▆▆▆▇▆▆██ 57
SoftwareBrothers/admin-bro 441 2.42 182.36 4.11% ▇▇▆▇▇▇▇▇▇▇▇▆██▇██▇█▆ 57
sveltejs/svelte 8300 19.74 420.55 9.23% ▇▅▇▇▇▇▆▆▇██▇████▇███ 57
TheAlgorithms/Python 1400 5.23 267.57 8.54% ▅▇▇▆▆▆▇▇▆██▇█▇██▇███ 57
twbs/bootstrap 118 1.67 70.65 5.94% █▆▇▇▇█▄▇█▆▆▇▇▇▇▇▇▆▆▇ 57
typescript-cheatsheets/react 53 1.30 40.70 6.00% ▇█▇▇▇▇▇▇▇▇███▆█▇▇█▇█ 57
typescript-eslint/typescript-eslint 1303 3.93 331.96 8.00% ▇▇▇▇▆▆▇▇▇███▂▇▇▆▇█▇▇ 57
vitest-dev/vitest 2418 10.54 229.52 -9.05% ▆▇▆█▇▆▅▆▅▆▆▆▃▃▃▄▄▅▅▃ 57
w3c/aria-practices 414 3.45 120.07 -2.66% ▆▆█▅▇▆▇▆▇▇███▇█▇▇▇█▅ 57
w3c/specberus 197 1.83 107.66 8.70% ▇▇▇▆▇▇▇▅▇█▇▇▇█▇█▇▇▆▇ 57
webdeveric/webpack-assets-manifest 55 1.13 48.81 7.66% ▆▆▇▆█▇▇▇███▅▇▇▇▆▆▇▇▇ 57
webpack/webpack 1139 4.90 232.32 6.35% ▆▇▇▇▇▇▇██████▇▇█▇▇▇▇ 57
wireapp/wire-desktop 44 1.33 33.02 1.56% ▇▇▇▆▇█▇█▆▇█▇▇▇█▇█▇▇▆ 57
wireapp/wire-webapp 2057 10.54 195.11 7.04% ██▇▇█▇▇█▇▇██▇▅████▇▇ 57
Data Throughput
Repository Files Sec Kps Rel Trend Kps N
AdaDoom3/AdaDoom3 103 2.75 797.41 9.77% ▇▇▇▇█▇▇▇▇▇▇█▇▇██▇▇▇▇ 57
alexiosc/megistos 583 6.94 660.15 8.77% ▇▇▆▇▇▇█▇██▇███▇▇█▇▇▇ 57
apollographql/apollo-server 253 2.43 851.17 6.33% ▇██▇▆▇▅████▆▆█▇▆▇▇█▇ 57
aspnetboilerplate/aspnetboilerplate 2286 8.85 628.36 4.66% ▇▇█▆▇█▇▇▇████▇█▇███▇ 57
aws-amplify/docs 2874 11.68 859.75 6.50% ▇▇▇▇▆▇▇▆▆██▇▇▆█▆█▇█▇ 57
Azure/azure-rest-api-specs 2449 9.57 673.06 3.61% ▆▅▅▇▅▅▆▆▆▅█▇▇██▆▇▇▇▆ 57
bitjson/typescript-starter 20 1.03 77.67 4.08% ▇▇▆▇▇█▇█▇▇███▇▇█▇█▃▇ 57
caddyserver/caddy 291 3.34 764.02 4.44% ▆▇▇▆▇▇▇▇█▇███▇▇▇█▇▇▆ 57
canada-ca/open-source-logiciel-libre 7 1.03 56.31 7.83% █▇▇▆▇█▇█▇▇██▆▇▇▇▇▆█▇ 57
chef/chef 1197 5.14 1081.11 9.65% ▇▆▇█▇██▇█████▆██▆███ 57
dart-lang/sdk 10930 53.05 1398.11 10.01% ▇▇▇▇▇▆▅▆▇▇███▇▇██▇██ 57
django/django 2889 13.21 1377.92 8.27% ▆▅▆▇▇▇▇▇▇▇█▇▇▇▇██▇▇▇ 57
eslint/eslint 2062 9.29 1534.93 7.57% ▇▇▆▇▇▆▇▆▇█▇▅▇██▇▇▆▇▇ 57
exonum/exonum 421 3.27 1230.20 6.62% █▇▆▇▇█▇█▇██▇████▇██▇ 57
flutter/samples 2441 14.93 1436.23 3.13% ▇▁▇▆▇█▇▇██▇▇█▇████▇▆ 57
gitbucket/gitbucket 413 3.10 606.91 6.59% ▇▇▇▇▇▇▇█▇▇███▇███▇▇▇ 57
googleapis/google-cloud-cpp 21017 116.79 1465.96 8.36% ▇▆▇▇▇▇▇▇▇████▇███▇▇▇ 57
graphql/express-graphql 26 1.10 108.60 3.01% ██▇▇▇▇▇▇▇▅█▅▇█▇▇▇▆▇▆ 57
graphql/graphql-js 368 2.54 843.79 9.75% █▇█▆▇▇▇█▇█▇▆▆█▇▇█▇▇█ 57
graphql/graphql-relay-js 28 1.06 103.54 8.17% ████▇▇█▆▇█▇▇▇████▇▇█ 57
graphql/graphql-spec 19 1.25 506.40 4.10% ▇█▇█▇██▇█▆█▇▇██▅▇▇▇▇ 57
iluwatar/java-design-patterns 1992 11.01 558.98 8.65% ▇▇▇▇███▇▇███▇██▇▇▇██ 57
ktaranov/sqlserver-kit 489 5.72 1293.76 6.51% █▆▇▆▇▇█▅███▇▇█▇▇▇▇▇▇ 57
liriliri/licia 1437 3.76 454.79 7.07% ▆▇█▆█▇▆▇▆█▇██▄▇███▇▇ 57
MartinThoma/LaTeX-examples 1409 6.07 479.23 8.61% ▇▇▇▆▇▇▇▇▇█████▇██▇▇▇ 57
mdx-js/mdx 141 1.72 380.19 10.07% ▆▇█▇██▇▇▇███▇█▆▇▇█▇▇ 57
microsoft/TypeScript-Website 761 5.09 1033.55 5.66% ▇▇▇▆██▆▆▅▆████▇████▇ 57
MicrosoftDocs/PowerShell-Docs 2646 19.67 1406.46 8.88% ▇▇█▇▇▇█████████▅██▇▇ 57
neovim/nvim-lspconfig 768 3.86 370.89 9.29% ▅▇█▆▇▇█▇▇██▇██▇▇█▇██ 57
pagekit/pagekit 741 3.51 440.76 0.87% ▇▆▇▆▅▆▇▇▇█▇▇▇█████▇▆ 57
php/php-src 2265 22.55 1753.51 8.27% ▅▇▇▇▆▇█▇▇▇█▆▇█▇▇█▇▇▇ 57
plasticrake/tplink-smarthome-api 62 1.27 264.07 5.96% ██▆███▇▇██▆▇█▇▇▇█▇▆▇ 57
prettier/prettier 2549 7.04 512.15 9.72% ▅▅▇▆▆▇▆▇▇██████▇▄▇██ 57
pycontribs/jira 79 1.43 392.60 6.56% ▇██▇▇▆▇▇█▇▆█▇▆█▇▆▆█▇ 57
RustPython/RustPython 723 5.87 1600.72 14.92% ▇▇▅▅▅▇▅▇▇▇▇▇█▇▇▇███▇ 57
shoelace-style/shoelace 439 2.69 787.80 5.64% ▇▇▇▇██▇███▆▆▇▆▆▅█▆▇▇ 57
slint-ui/slint 2688 12.14 1374.29 14.48% ▇███▆▆▅▆▅▅▆▅▆▆▆▇▆▆██ 57
SoftwareBrothers/admin-bro 441 2.42 401.94 4.11% ▇▇▆▇▇▇▇▇▇▇▇▆██▇██▇█▆ 57
sveltejs/svelte 8300 19.74 283.08 9.52% ▇▅▇▇▇▇▆▆▇██▇████▇███ 57
TheAlgorithms/Python 1400 5.23 681.34 8.56% ▅▇▇▆▆▆▇▇▆██▇█▇██▇███ 57
twbs/bootstrap 118 1.67 580.18 5.94% █▆▇▇▇█▄▇█▆▆▇▇▇▇▇▇▆▆▇ 57
typescript-cheatsheets/react 53 1.30 301.00 6.00% ▇█▇▇▇▇▇▇▇▇███▆█▇▇█▇█ 57
typescript-eslint/typescript-eslint 1303 3.93 1739.30 9.12% ▇▇▇▆▆▆▇▇▆▇█▇▂▇▇▆▇█▇▇ 57
vitest-dev/vitest 2418 10.54 663.59 16.36% ▄▄▄▅▄▄▃▄▃▄▄▄▆▆▆▇▇██▆ 57
w3c/aria-practices 414 3.45 1119.50 -2.66% ▆▆█▅▇▆▇▆▇▇███▇█▇▇▇█▅ 57
w3c/specberus 197 1.83 340.48 8.70% ▇▇▇▆▇▇▇▅▇█▇▇▇█▇█▇▇▆▇ 57
webdeveric/webpack-assets-manifest 55 1.13 111.81 7.66% ▆▆▇▆█▇▇▇███▅▇▇▇▆▆▇▇▇ 57
webpack/webpack 1139 4.90 1080.02 6.94% ▆▇▇▇▇▇▇▇█████▇▇█▇▇▇▇ 57
wireapp/wire-desktop 44 1.33 147.11 1.56% ▇▇▇▆▇█▇█▆▇█▇▇▇█▇█▇▇▆ 57
wireapp/wire-webapp 2057 10.54 754.07 9.29% ▇▇▇▇█▇▇█▇▇██▇▅████▇█ 57

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds a new NotifyEmitter class to provide a reusable event notification system based on the Disposable pattern. The PR refactors the RPC server test to use this new event emitter pattern instead of a custom AsyncMessageQueue implementation, resulting in cleaner and more maintainable code.

Changes:

  • Introduces NotifyEmitter class with NotifyEvent pattern for event handling with automatic cleanup via Symbol.dispose
  • Adds helper functions notifyEventToPromise and notifyEventOnce for working with notify events
  • Creates MessagePortEvents wrapper class to adapt MessagePort events to the NotifyEmitter pattern
  • Refactors server.test.ts to use the new event system, removing the custom AsyncMessageQueue implementation
  • Adds result?: unknown field to RPCResponse interface for more consistent type handling
  • Exports new notify-related types and functions through the public API

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/cspell-lib/src/rpc/notify.ts New file implementing NotifyEmitter class and helper functions for event notification
packages/cspell-lib/src/rpc/notify.test.ts New test file with basic coverage for NotifyEmitter and notifyEventToPromise
packages/cspell-lib/src/rpc/MessagePortEvents.ts New wrapper class to adapt MessagePort to NotifyEmitter pattern
packages/cspell-lib/src/rpc/server.test.ts Refactored to use MessagePortEvents, removing AsyncMessageQueue implementation
packages/cspell-lib/src/rpc/models.ts Added optional result field to RPCResponse interface
packages/cspell-lib/src/rpc/index.ts Exports new notify types and functions
packages/cspell-lib/src/rpc/assert.ts Added JSDoc documentation
packages/cspell-lib/api/rpc.d.ts Updated type definitions to include new notify exports

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Jason3S and others added 4 commits January 22, 2026 22:43
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jason Dent <Jason3S@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jason Dent <Jason3S@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 7 out of 8 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Jason3S and others added 3 commits January 23, 2026 06:42
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jason Dent <Jason3S@users.noreply.github.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 10 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Jason3S and others added 3 commits January 23, 2026 13:55
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jason Dent <Jason3S@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jason Dent <Jason3S@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Jason Dent <Jason3S@users.noreply.github.com>
@Jason3S Jason3S marked this pull request as ready for review January 23, 2026 13:32
@Jason3S Jason3S merged commit 48d5af7 into main Jan 23, 2026
81 checks passed
@Jason3S Jason3S deleted the dev-notify branch January 23, 2026 14:36
@Jason3S Jason3S review requested due to automatic review settings March 23, 2026 19:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants