Rollover still happening only every 2 hours

Logs of my locally running testnet taker:
2022-05-26 04:02:42  INFO daemon::connection: Established connection to maker address=<IP_ADDRESS>:9999
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=3 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=3 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=3 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=4 num_events=0
2022-05-26 04:06:57  INFO daemon::db: Appended event to database event=RolloverStarted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=4 num_events=0
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=4 num_events=0
2022-05-26 04:06:57  INFO daemon::db: Appended event to database event=RolloverStarted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57  INFO daemon::db: Appended event to database event=RolloverStarted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57  INFO daemon::db: Appended event to database event=RolloverAccepted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:06:57  INFO daemon::rollover::taker: Rollover proposal got accepted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=5 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=5 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57  INFO daemon::db: Appended event to database event=RolloverAccepted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:06:57  INFO daemon::rollover::taker: Rollover proposal got accepted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=5 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=5 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=4 num_events=1
2022-05-26 04:06:57  INFO daemon::db: Appended event to database event=RolloverAccepted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:06:57  INFO daemon::rollover::taker: Rollover proposal got accepted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=5 num_events=1
2022-05-26 04:06:57 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=5 num_events=1
2022-05-26 04:07:03 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=5 num_events=1
2022-05-26 04:07:03  INFO model::cfd: Rollover was completed order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:07:03 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=5 num_events=1
2022-05-26 04:07:03  INFO model::cfd: Rollover was completed order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:07:04  INFO daemon::db: Appended event to database event=RolloverCompleted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:07:04  INFO daemon::rollover::protocol: Rollover completed order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:07:04 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=5 num_events=1
2022-05-26 04:07:04  INFO model::cfd: Rollover was completed order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:07:04 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:04 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:04  INFO daemon::db: Appended event to database event=RolloverCompleted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:07:04  INFO daemon::rollover::protocol: Rollover completed order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:07:05 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:05 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:05  INFO daemon::db: Appended event to database event=RolloverCompleted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:07:05  INFO daemon::rollover::protocol: Rollover completed order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:07:05 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:05 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:16 DEBUG btsieve: Found relevant Bitcoin transaction txid=2abd7d52b61060e43403b2a6434b9a36c6e053787b38ae2adf297196236efd14 status=confirmed with 4638 blocks
2022-05-26 04:07:16 DEBUG btsieve: Found relevant Bitcoin transaction txid=96351a79a666b17553ec97a49549243f23591c994d5060db33ffd7c7c6f89f1c status=confirmed with 4665 blocks
2022-05-26 04:07:16 DEBUG btsieve: Found relevant Bitcoin transaction txid=728aab7489d2a41c1515a1b008f745d33dce01f156e10337e88d27aeb42aa9dc status=confirmed with 2960 blocks
2022-05-26 04:07:16 DEBUG btsieve: Bitcoin transaction reached monitoring target txid=2abd7d52b61060e43403b2a6434b9a36c6e053787b38ae2adf297196236efd14 target=confirmed with 1 blocks current=confirmed with 4638 blocks
2022-05-26 04:07:16 DEBUG btsieve: Bitcoin transaction reached monitoring target txid=96351a79a666b17553ec97a49549243f23591c994d5060db33ffd7c7c6f89f1c target=confirmed with 1 blocks current=confirmed with 4665 blocks
2022-05-26 04:07:16 DEBUG btsieve: Bitcoin transaction reached monitoring target txid=728aab7489d2a41c1515a1b008f745d33dce01f156e10337e88d27aeb42aa9dc target=confirmed with 1 blocks current=confirmed with 2960 blocks
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:16  INFO daemon::db: Appended event to database event=LockConfirmed order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=7 num_events=1
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=7 num_events=1
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:16  INFO daemon::db: Appended event to database event=LockConfirmed order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=7 num_events=1
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=7 num_events=1
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=6 num_events=1
2022-05-26 04:07:16  INFO daemon::db: Appended event to database event=LockConfirmed order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=7 num_events=1
2022-05-26 04:07:16 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=7 num_events=1
2022-05-26 04:11:56 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=7 num_events=1
2022-05-26 04:11:56 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=7 num_events=1
2022-05-26 04:11:56 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=7 num_events=1
2022-05-26 04:16:54 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:16:54 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:16:54 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:16:54 DEBUG daemon::db::cull_old_dlcs: Culled ContractSetupCompleted events affected_rows=3
2022-05-26 04:21:54 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:21:54 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:21:54 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:26:53 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:26:53 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:26:53 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:31:55 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:31:55 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:31:55 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:36:55 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:36:55 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:36:55 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:39:28  WARN electrum_client::client: call 'block_headers_subscribe_raw' failed with Connection reset by peer (os error 104), retry: 1/1
2022-05-26 04:39:33  WARN electrum_client::raw_client: got error for req_id 11921: SharedIOError(Os { code: 104, kind: ConnectionReset, message: "Connection reset by peer" })
2022-05-26 04:39:33  WARN electrum_client::raw_client: removing all waiting req of this batch
2022-05-26 04:39:33  WARN electrum_client::client: call 'batch_script_get_history' failed with Connection reset by peer (os error 104), retry: 1/1
2022-05-26 04:41:54 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:41:54 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:41:54 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:42:13  WARN daemon::connection: Disconnecting due to lack of heartbeat seconds_since_heartbeat=180 heartbeat_timestamp=2022-05-26 4:39:13.1132725 +00:00:00
2022-05-26 04:42:13 DEBUG daemon::connection: No connection to the maker
2022-05-26 04:42:13 DEBUG daemon::connection: Connecting to maker address=<IP_ADDRESS>:9999
2022-05-26 04:42:13 DEBUG daemon::noise: Noise protocol initiator handshake is complete
2022-05-26 04:42:13  INFO daemon::connection: Received Hello message from maker maker_identity=69a42aa90da8b065b9532b62bff940a3ba07dbbb11d4482c7db83a7e049a9f1e actual_version=2.1.0
2022-05-26 04:42:13  INFO daemon::connection: Established connection to maker address=<IP_ADDRESS>:9999
2022-05-26 04:46:54 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:46:54 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:46:54 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:51:04 DEBUG http: Handled request method=GET path=/long status=200 OK
2022-05-26 04:51:04 DEBUG http: Handled request method=GET path=/assets/index.7ceda946.css status=200 OK
2022-05-26 04:51:04 DEBUG http: Handled request method=GET path=/assets/index.5b96c02d.js status=200 OK
2022-05-26 04:51:04 DEBUG http: Handled request method=GET path=/assets/logo_nav_bar_black.c442b25d.svg status=200 OK
2022-05-26 04:51:04 DEBUG http: Handled request method=GET path=/api/feed status=200 OK
2022-05-26 04:51:04 DEBUG http: Handled request method=GET path=/assets/logo.a37cce62.svg status=200 OK
2022-05-26 04:51:53 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:51:53 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:51:53 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:56:53 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:56:53 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 04:56:53 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 05:00:53 DEBUG daemon::oracle: Fetching announcement event_id=/x/BitMEX/BXBT/2022-05-27T06:00:00.price?n=20
2022-05-26 05:01:51 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 05:01:51 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 05:01:51 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
^R
2022-05-26 05:06:50 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 05:06:50 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 05:06:50 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0

After 05 I had expected another rollover, but it was not triggered.

Here's the next one that worked (one failing in between due to loss of connection):
2022-05-26 06:00:49 DEBUG daemon::oracle: Fetching announcement event_id=/x/BitMEX/BXBT/2022-05-27T07:00:00.price?n=20
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 06:01:49 ERROR daemon::rollover::taker: Failed to start rollover: Failed to negotiate protocol: Protocol negotiation failed. order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:01:49 ERROR daemon::rollover::protocol: Rollover failed: Failed to negotiate protocol: Protocol negotiation failed. order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 06:01:49  WARN model::cfd: Rollover failed: Failed to negotiate protocol: Protocol negotiation failed. order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:01:49  INFO daemon::db: Appended event to database event=RolloverFailed order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:01:49 ERROR daemon::rollover::taker: Failed to start rollover: No connection to 12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1 order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:01:49 ERROR daemon::rollover::protocol: Rollover failed: No connection to 12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1 order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=8 num_events=1
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=8 num_events=1
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 06:01:49  WARN model::cfd: Rollover failed: No connection to 12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1 order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:01:49  INFO daemon::db: Appended event to database event=RolloverFailed order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:01:49 ERROR daemon::rollover::taker: Failed to start rollover: No connection to 12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1 order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:01:49 ERROR daemon::rollover::protocol: Rollover failed: No connection to 12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1 order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=8 num_events=1
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=8 num_events=1
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=0
2022-05-26 06:01:49  WARN model::cfd: Rollover failed: No connection to 12D3KooWEsK2X8Tp24XtyWh7DM65VfwXtNH2cmfs2JsWmkmwKbV1 order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:01:49  INFO daemon::db: Appended event to database event=RolloverFailed order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=8 num_events=1
2022-05-26 06:01:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=8 num_events=1
2022-05-26 06:01:50 DEBUG libp2p_tcp: dialing <IP_ADDRESS>:10000
2022-05-26 06:01:50 DEBUG libp2p_core::upgrade::apply: Successfully applied negotiated protocol
2022-05-26 06:01:50 DEBUG libp2p_core::upgrade::apply: Successfully applied negotiated protocol
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=8 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=8 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=8 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=9 num_events=0
2022-05-26 06:06:49  INFO daemon::db: Appended event to database event=RolloverStarted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=9 num_events=0
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=9 num_events=0
2022-05-26 06:06:49  INFO daemon::db: Appended event to database event=RolloverStarted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49  INFO daemon::db: Appended event to database event=RolloverStarted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49  INFO daemon::db: Appended event to database event=RolloverAccepted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:06:49  INFO daemon::rollover::taker: Rollover proposal got accepted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49  INFO daemon::db: Appended event to database event=RolloverAccepted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:06:49  INFO daemon::rollover::taker: Rollover proposal got accepted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::projection::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=daemon::position_metrics::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=9 num_events=1
2022-05-26 06:06:49  INFO daemon::db: Appended event to database event=RolloverAccepted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:06:49  INFO daemon::rollover::taker: Rollover proposal got accepted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::position_metrics::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:49 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=daemon::projection::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:55 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=model::cfd::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:55  INFO model::cfd: Rollover was completed order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:06:56 DEBUG daemon::db: Applying new events to CFD order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a aggregate=model::cfd::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:56  INFO model::cfd: Rollover was completed order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:06:56 DEBUG daemon::db: Applying new events to CFD order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822 aggregate=model::cfd::Cfd cfd_version=10 num_events=1
2022-05-26 06:06:56  INFO model::cfd: Rollover was completed order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:06:56  WARN sqlx::query: insert into events ( …; rows affected: 1, rows returned: 0, elapsed: 1.035s

insert into
  events (
    cfd_id,
    name,
    data,
    created_at
  )
values
  (
    (
      select
        id
      from
        cfds
      where
        cfds.uuid = $1
    ),
    $2,
    $3,
    $4
  )

2022-05-26 06:06:56  INFO daemon::db: Appended event to database event=RolloverCompleted order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:06:56  INFO daemon::rollover::protocol: Rollover completed order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8
2022-05-26 06:06:56 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::position_metrics::Cfd cfd_version=11 num_events=1
2022-05-26 06:06:56 DEBUG daemon::db: Applying new events to CFD order_id=c8ffaa65-442e-4068-868c-8ab267eeb8a8 aggregate=daemon::projection::Cfd cfd_version=11 num_events=1
2022-05-26 06:06:57  INFO daemon::db: Appended event to database event=RolloverCompleted order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:06:57  INFO daemon::rollover::protocol: Rollover completed order_id=dfc0560a-8ea3-4830-8c0e-3ca0138f6d6a
2022-05-26 06:06:57  INFO daemon::db: Appended event to database event=RolloverCompleted order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822
2022-05-26 06:06:57  INFO daemon::rollover::protocol: Rollover completed order_id=e5e2be40-830d-4dd0-b4d0-ecc78d91b822

I analysed this behaviour here: https://github.com/itchysats/itchysats/issues/1974#issuecomment-1127628659. Is that satisfactory?
I considered that the real problem was not charging for the correct number of hours, which should have been fixed. Do you have that information in your logs?

I analysed this behaviour here: #1974 (comment). Is that satisfactory?
I considered that the real problem was not charging for the correct number of hours, which should have been fixed. Do you have that information in your logs?

Does that it is expected that we only roll over every 2 hours (i.e. auto-rollover triggers a rollover every 2 hours) but we charge for 2 hours?
I don't mind that but from the comment I would have not guessed that :)

The analysis section should help us reach the conclusion stated:

I think this explains why most rollovers happen every 2 hours.

The solution section then states:

The real problem lies in the fact that the BitMEX event ID timestamp we choose does not match the one predicted by the function we use to calculate the number of hours to charge for when rolling over: hours_to_extend_in_rollover.

Which boils down to: we were not charging for the number of hours that rollover was extending the lifetime of the CFD by.
The commit that closed the issue claims to have fixed this problem: https://github.com/itchysats/itchysats/commit/adb57fd4543e881740d1719d0f9255bdd31a35aa.

I feel we are spinning in circles.
My understanding:

It is expected that we only rollover every two hours.
The problem of not charging for the additional hour was fixed.

When we decided to actually roll over every 2 hours? This was not the case until recently.

We don't force rollover to happen every 2 hours. It is simply possible because:

We allow to rollover to increase CFD time-to-live to up to 25 hours.
We only trigger rollovers when we fall below a time-to-live of 23 hours.

If things line up right (wrong? ;), the rollover can make the CFD's time-to-live go from ~23 to ~25 hours.
Hopefully that should be evident from the analysis, but perhaps it wasn't clear.

We don't force rollover to happen every 2 hours. It is simply possible because:

We allow to rollover to increase CFD time-to-live to up to 25 hours.
We only trigger rollovers when we fall below a time-to-live of 23 hours.

If things line up right (wrong? ;), the rollover can make the CFD's time-to-live go from ~23 to ~25 hours.
Hopefully that should be evident from the analysis, but perhaps it wasn't clear.

thanks for the analysis, it was a very explanation why this happens. My point (and I think @da-kami 's point too) was that this is not what we expected? It seems like an accidental shift in the codebase around 1-2 months ago; we were surprised by it and not really keen.
This merely says to me that we should tweak our functions to bring back rollovers every 1h (unless we explicitly say that we're happy with this).
so, in other words: is this what we want?

thanks for the analysis, it was a very explanation why this happens. My point (and I think @da-kami 's point too) was that this is not what we expected? It seems like an accidental shift in the codebase around 1-2 months ago; we were surprised by it.

I think this behaviour has been around for a very, very long time.

This merely says to me that we should tweak our functions to bring back rollovers every 1h (unless we explicitly say that we're happy with this).
so, in other words: is this what we want?

I don't see any problem with the current frequency of rollovers. I think the alternative will result in undershooting (rolling over keeping the time-to-live under 24 hours), which seems riskier.
My understanding is that we can't help this much, because we depend on olivia's strictly hourly events:

If you rollover on the hour (say 1:00), you extend by 1 hour.
If you try at 0:59, you can't rollover (our logic doesn't allow this).
If you try at 1:01-1:59, you have a choice between extending for 0:59-0:01 or 1:59-1:01 hours. This is the interesting case that we are discussing here.

We clearly opted for the latter when we implemented next_announcement_after and decided to always pass now + 24 as an argument. I don't think we ever did this differently.
I prefer this approach because it keeps the time-to-live higher. And the goal of rolling over is keeping the CFD alive.

One thing to highlight is that when we roll over every 2 hours it does not mean that the CFD goes down to a time-to-live of 22 hours. And obviously if we fail to rollover we still keep trying every 5 minutes.

I don't think we have to change anything, but we should be aware of what we have. I think this was an important discussion because we were not all aware of the behavior.
That said, I think this ticket can be closed unless you feel we have to action something @klochowicz :)

Closing as I think we're on the same page - thanks for the replies :)


refactor!: upgrade octokit/gts/typescript

@xiaozhenliu-gg5 I ended up pulling over your work from #380 into this PR, as I had to do a significant amount of refactoring of types to upgrade @octokit (I'd been putting off this update for weeks because I knew it would take so much playing around).
Sorry to have wasted a little bit of your time on #380.

It's ok, thanks for doing this! @bcoe @octokit bites me for linter a lot so I have to disable some no-var-requires check for it.
Next time I will let you know which API I'm working on so that our work won't be overlapped😀


Adding AI Builder Invoice Processing Starter Kit

AI Builder Invoice Processing Automation Starter Kit is a reference implementation of invoice processing automation provided by Microsoft to bootstrap your implementation.
This is an installation package including two Power Automate flows orchestrating the processing of invoices with AI Builder, several Common Data Service entities to store the information, a role and a Power App to customize the starter kit and monitor the processing and edit missing or inaccurate extracted data. This is a role-based solution with ability isolate data by region.
We have also included a connector to invoices received by email, but you can enhance it with any connectors supported by Power Automate.

Closing this PR as we have uploaded the managed solution


ERROR    | metagpt.utils.common:log_it:554

Bug description
I get the following error message when trying to run metagpt
2024-05-14 14:40:02.842 | ERROR    | metagpt.utils.common:log_it:554 - Finished call to 'metagpt.actions.action_node.ActionNode._aask_v1' after 234.119(s), this was the 6th time calling it. exp: openai.types.completion_usage.CompletionUsage() argument after ** must be a mapping, not NoneType
2024-05-14 14:40:02.843 | WARNING  | metagpt.utils.common:wrapper:649 - There is a exception in role's execution, in order to resume, we delete the newest role communication message in the role's memory.
2024-05-14 14:40:02.867 | ERROR    | metagpt.utils.common:wrapper:631 - Exception occurs, start to serialize the project, exp:
Traceback (most recent call last):
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 50, in call
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/actions/action_node.py", line 420, in _aask_v1
content = await self.llm.aask(prompt, system_msgs, images=images, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: openai.types.completion_usage.CompletionUsage() argument after ** must be a mapping, not NoneType
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/utils/common.py", line 640, in wrapper
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/roles/role.py", line 555, in run
rsp = await self.react()
^^^^^^^^^^^^^^^^^^
tenacity.RetryError: RetryError[<Future at 0x134cd6a10 state=finished raised TypeError>]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/utils/common.py", line 626, in wrapper
result = await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/team.py", line 131, in run
await self.env.run()
Exception: Traceback (most recent call last):
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 50, in call
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/actions/action_node.py", line 420, in _aask_v1
content = await self.llm.aask(prompt, system_msgs, images=images, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/provider/base_llm.py", line 150, in aask
rsp = await self.acompletion_text(message, stream=stream, timeout=self.get_timeout(timeout))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 88, in async_wrapped
return await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 47, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/init.py", line 314, in iter
return fut.result()
^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 50, in call
result = await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/provider/openai_api.py", line 155, in acompletion_text
return await self._achat_completion_stream(messages, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/provider/openai_api.py", line 105, in _achat_completion_stream
usage = CompletionUsage(**chunk.usage)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: openai.types.completion_usage.CompletionUsage() argument after ** must be a mapping, not NoneType
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/utils/common.py", line 640, in wrapper
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/roles/role.py", line 555, in run
rsp = await self.react()
^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/roles/role.py", line 522, in react
rsp = await self._react()
^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/roles/role.py", line 468, in _react
rsp = await self._act()
^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/roles/role.py", line 397, in _act
response = await self.rc.todo.run(self.rc.history)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/actions/write_prd.py", line 87, in run
return await self._handle_new_requirement(req)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/actions/write_prd.py", line 108, in _handle_new_requirement
node = await WRITE_PRD_NODE.fill(context=context, llm=self.llm, exclude=exclude)  # schema=schema
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/actions/action_node.py", line 504, in fill
return await self.simple_fill(schema=schema, mode=mode, images=images, timeout=timeout, exclude=exclude)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/metagpt-0.8.1-py3.11.egg/metagpt/actions/action_node.py", line 456, in simple_fill
content, scontent = await self._aask_v1(
^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 88, in async_wrapped
return await fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/_asyncio.py", line 47, in call
do = self.iter(retry_state=retry_state)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/Nick/anaconda3/envs/metagpt/lib/python3.11/site-packages/tenacity/init.py", line 326, in iter
raise retry_exc from fut.exception()
tenacity.RetryError: RetryError[<Future at 0x134cd6a10 state=finished raised TypeError>]
Don't close this pointing me to #1253. I tried that and it didn't fix the issue, garylin2099.

LLM type and model name: openai gpt 4
System version: macOS Monterey
Python version: 3.11.5
MetaGPT version or branch: newest
installation method: pip install

Any help would be greatly appreciated.

Hi, can you try the main branch or pip install git+https://github.com/geekan/MetaGPT first?
We will fix the v0.8 version soon.

@garylin2099  issue do persist on main branch as well

@garylin2099  main branch is working fine after yesterday's fix , thanks

Hi, can you try the main branch or pip install git+https://github.com/geekan/MetaGPT first? We will fix the v0.8 version soon.

I tried that and it didn't work either. Pretty frustrating. @garylin2099

@garylin2099 I get this error message when I try to install. Does this have something to do with my issue?
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
instructor 1.2.2 requires aiohttp<4.0.0,>=3.9.1, but you have aiohttp 3.8.6 which is incompatible.
instructor 1.2.2 requires pydantic==2.7.0, but you have pydantic 2.6.4 which is incompatible.
instructor 1.2.2 requires pydantic-core<3.0.0,>=2.18.0, but you have pydantic-core 2.16.3 which is incompatible.
instructor 1.2.2 requires rich<14.0.0,>=13.7.0, but you have rich 13.6.0 which is incompatible.
fastapi-cli 0.0.3 requires typer>=0.12.3, but you have typer 0.9.0 which is incompatible.
agency-swarm 0.2.1 requires openai==1.23.3, but you have openai 1.6.1 which is incompatible.
agency-swarm 0.2.1 requires rich==13.7.0, but you have rich 13.6.0 which is incompatible.
gradio 4.29.0 requires typer<1.0,>=0.12; sys_platform != "emscripten", but you have typer 0.9.0 which is incompatible.
gradio 4.29.0 requires urllib3~=2.0, but you have urllib3 1.26.18 which is incompatible.
anaconda-cloud-auth 0.1.4 requires pydantic<2.0, but you have pydantic 2.6.4 which is incompatible.
anaconda-cloud-auth 0.1.4 requires semver<3, but you have semver 3.0.2 which is incompatible.
Successfully installed aiohttp-3.8.6 metagpt-0.8.1 openai-1.6.1 pydantic-2.6.4 pydantic-core-2.16.3 rich-13.6.0 typer-0.9.0 urllib3-1.26.18

now, when I run python startup.py "input here", it does nothing.

Could you please pull the latest code and try again?

！上传image.png...解决了没有这个问题，我这里也出现了

解决了没有这个问题，我这里也出现了

Due to the lack of updates or replies by the user for a long time, we will close it. Please reopen it if necessary.


Dafny bug fix

Instead of using NoToken for the ReturnCmd, use the EndCurly, if it exists, when
creating unifiedExit.

Ideally you should have a test case that was broken before your patch and then passes afterwards.

Hi,
I think I accidently committed a change, while I meant to update my pull request. I submitted a pull request #24 a couple days ago, and since made changes according to the review comments and committed the changes to my local branch. Then I want to update the "pull request" and I hit the "sync" button. I think that actually submit the change, instead of update the pull request. This is the first time I use GitHub, so I don't know how to revert the commit yet, but I thought I should let you know first that I didn't mean to commit it. I will revert it and make a pull request instead.
Sorry.
Qunyan

From: Dan Liew<EMAIL_ADDRESS>Sent: Saturday, November 21, 2015 10:37 AM
To: boogie-org/boogie
Cc: qunyanm
Subject: Re: [boogie] Dafny bug fix (#24)
Ideally you should have a test case that was broken before your patch and then passes afterwards.

Reply to this email directly or view it on GitHubhttps://github.com/boogie-org/boogie/pull/24#issuecomment-158671077.

I think the change is committed to my branch only, and the pull request is updated. I think I am OK. However, if I am wrong and I accidently committed the changes to master, you can just revert it.
Thanks,
Qunyan

From: Dan Liew<EMAIL_ADDRESS>Sent: Saturday, November 21, 2015 10:37 AM
To: boogie-org/boogie
Cc: qunyanm
Subject: Re: [boogie] Dafny bug fix (#24)
Ideally you should have a test case that was broken before your patch and then passes afterwards.

Reply to this email directly or view it on GitHubhttps://github.com/boogie-org/boogie/pull/24#issuecomment-158671077.

@qunyanm Okay that's much better. A test case that shows the issue with a useful commit message.
I'd like you squash all these commits into one though all the previous ones aren't any good and are really "work in progress" and then rebase.
Here's how to do this.
# Check you are on the dafny-bug-fix branch
$ git branch
* dafny-bug-fix
  master
  update_recommended_Z3_version
# Make sure you have git setup to work with your text editor before you start this

# We are going to do an interactive rebase to squash your commits together
$ git rebase -i 75a179354ea7b78682904575d5692efa0068fcf0

This will bring up the following in a text editor with text that looks like the following.
pick 3f417a0 Use EndCurly token for the ReturnCmd when creating unifiedExit
pick a799e12 Use EndCurly token for the ReturnCmd when creating unifiedExit
pick 280cb72 Use the EndCurly token when creating the ReturnCmd for unifiedExit

# Rebase 75a1793..280cb72 onto 75a1793 (3 command(s))

Change this to
pick 3f417a0 Use EndCurly token for the ReturnCmd when creating unifiedExit
squash a799e12 Use EndCurly token for the ReturnCmd when creating unifiedExit
squash 280cb72 Use the EndCurly token when creating the ReturnCmd for unifiedExit

# Rebase 75a1793..280cb72 onto 75a1793 (3 command(s))

(i.e. you are changing pick -> squash on the second and third line). This will tell git to use the commit but meld it into the previous commit.
Now save the changes and close the text editor.
If everything goes okay another text editor will appear for the commit message of the squashed commits (note lines beginning with # are ignored by git)
# This is a combination of 3 commits.
# The first commit's message is:
Use EndCurly token for the ReturnCmd when creating unifiedExit

Instead of using NoToken for the ReturnCmd, use the EndCurly when
creating unifiedExit.

# This is the 2nd commit message:

Use EndCurly token for the ReturnCmd when creating unifiedExit

Instead of using NoToken for the ReturnCmd, use the EndCurly, if it
exists, when creating unifiedExit

# This is the 3rd commit message:

Use the EndCurly token when creating the ReturnCmd for unifiedExit

When there are more than one exit blocks, an unified exit block is
created which includes a ReturnCmd. However, the ReturnCmd is created
with NoToken. This causes the line/column number reported for a failed
postcondition to be (0,0). The right token should be the EndCurly since
the ReturnCmd is in the exit block.

edit as appropriate (i.e. you only need the third commit message). Save the changes and exit the text editor. Now your log will look like this.
commit f1fdd7957543f6f593ef844dd376b30c9a42bbe8
Author: qunyanm<EMAIL_ADDRESS>Date:   Mon Nov 16 11:03:28 2015 -0800

    Use the EndCurly token when creating the ReturnCmd for unifiedExit

    When there are more than one exit blocks, an unified exit block is
    created which includes a ReturnCmd. However, the ReturnCmd is created
    with NoToken. This causes the line/column number reported for a failed
    postcondition to be (0,0). The right token should be the EndCurly since
    the ReturnCmd is in the exit block.

commit 75a179354ea7b78682904575d5692efa0068fcf0
Author: Valentin Wüstholz<EMAIL_ADDRESS>Date:   Mon Nov 16 12:13:45 2015 -0600

    Add a test.

commit f049d2ec646244bc40964b36d961966fe2a3e4dc
Author: Valentin Wüstholz<EMAIL_ADDRESS>Date:   Mon Nov 16 12:04:37 2015 -0600

    Add support for identifying unnecessary assumes.

...

The last step is to rebase on the master branch
$ git fetch origin
$ git rebase origin/master

Now your log will look like this
commit 687f4bd9c78f071c72a5843629cf300b87adf2d5
Author: qunyanm<EMAIL_ADDRESS>Date:   Mon Nov 16 11:03:28 2015 -0800

    Use the EndCurly token when creating the ReturnCmd for unifiedExit

    When there are more than one exit blocks, an unified exit block is
    created which includes a ReturnCmd. However, the ReturnCmd is created
    with NoToken. This causes the line/column number reported for a failed
    postcondition to be (0,0). The right token should be the EndCurly since
    the ReturnCmd is in the exit block.

commit fe8de9444fb6ce90216a9b8268d8a13daa9a9f2a
Author: Dan Liew<EMAIL_ADDRESS>Date:   Sat Nov 21 18:27:06 2015 +0000

    Teach the TravisCI build to use the ``travis_retry`` command when
    using NuGet.

    The motivation here is that the ``nuget`` command is a little flakey
    (sometimes it times out) in the legacy TravisCI infrastructure. This
    command will retry the command passed to it a few times. Hopefully
    this will stop the random build failures we've been having.

commit f19110ec25d4ee962558627150d22e4c8a26a2a0
Author: Valentin Wüstholz<EMAIL_ADDRESS>Date:   Fri Nov 20 11:24:17 2015 -0600

    Add simplified may-unverified analysis and instrumentation.

Finally force push your changes to the dafny-bug-fix branch. You have to do a force push because your rewrote some history. Normally that's bad but because you're on a branch for a pull request that no one else has probably pulled that's okay. DO NOT FORCE PUSH TO THE MASTER BRANCH EVER. IF YOU DO THAT YOU WILL ANNOY EVERYONE.
$ git push -f origin dafny-bug-fix

Hi,
I have followed your instructions and squashed the commits into one. Please let me know if there are any problems.
Thanks for all your help.
Qunyan

From: Dan Liew<EMAIL_ADDRESS>Sent: Tuesday, December 1, 2015 10:03 AM
To: boogie-org/boogie
Cc: qunyanm
Subject: Re: [boogie] Dafny bug fix (#24)
@qunyanmhttps://github.com/qunyanm Okay that's much better. A test case that shows the issue with a useful commit message.
I'd like you squash all these commits into one though all the previous ones aren't any good and are really "work in progress" and then rebase.
Here's how to do this.
Check you are on the dafny-bug-fix branch
$ git branch

dafny-bug-fix
master
update_recommended_Z3_version

Make sure you have git setup to work with your text editor before you start this
We are going to do an interactive rebase to squash your commits together
$ git rebase -i 75a179354ea7b78682904575d5692efa0068fcf0
This will bring up the following in a text editor with text that looks like the following.
pick 3f417a0 Use EndCurly token for the ReturnCmd when creating unifiedExit
pick a799e12 Use EndCurly token for the ReturnCmd when creating unifiedExit
pick 280cb72 Use the EndCurly token when creating the ReturnCmd for unifiedExit
Rebase 75a1793..280cb72 onto 75a1793 (3 command(s))
Change this to
pick 3f417a0 Use EndCurly token for the ReturnCmd when creating unifiedExit
squash a799e12 Use EndCurly token for the ReturnCmd when creating unifiedExit
squash 280cb72 Use the EndCurly token when creating the ReturnCmd for unifiedExit
Rebase 75a1793..280cb72 onto 75a1793 (3 command(s))
(i.e. you are changing pick -> squash on the second and third line). This will tell git to use the commit but meld it into the previous commit.
Now save the changes and close the text editor.
If everything goes okay another text editor will appear for the commit message of the squashed commits (note lines beginning with # are ignored by git)
This is a combination of 3 commits.
The first commit's message is:
Use EndCurly token for the ReturnCmd when creating unifiedExit
Instead of using NoToken for the ReturnCmd, use the EndCurly when
creating unifiedExit.
This is the 2nd commit message:
Use EndCurly token for the ReturnCmd when creating unifiedExit
Instead of using NoToken for the ReturnCmd, use the EndCurly, if it
exists, when creating unifiedExit
This is the 3rd commit message:
Use the EndCurly token when creating the ReturnCmd for unifiedExit
When there are more than one exit blocks, an unified exit block is
created which includes a ReturnCmd. However, the ReturnCmd is created
with NoToken. This causes the line/column number reported for a failed
postcondition to be (0,0). The right token should be the EndCurly since
the ReturnCmd is in the exit block.
edit as appropriate (i.e. you only need the third commit message). Save the changes and exit the text editor. Now your log will look like this.
commit f1fdd7957543f6f593ef844dd376b30c9a42bbe8
Author: qunyanm<EMAIL_ADDRESS>Date:   Mon Nov 16 11:03:28 2015 -0800
Use the EndCurly token when creating the ReturnCmd for unifiedExit

When there are more than one exit blocks, an unified exit block is
created which includes a ReturnCmd. However, the ReturnCmd is created
with NoToken. This causes the line/column number reported for a failed
postcondition to be (0,0). The right token should be the EndCurly since
the ReturnCmd is in the exit block.

commit 75a179354ea7b78682904575d5692efa0068fcf0
Author: Valentin Wüstholz<EMAIL_ADDRESS>Date:   Mon Nov 16 12:13:45 2015 -0600
Add a test.

commit f049d2ec646244bc40964b36d961966fe2a3e4dc
Author: Valentin Wüstholz<EMAIL_ADDRESS>Date:   Mon Nov 16 12:04:37 2015 -0600
Add support for identifying unnecessary assumes.

...
The last step is to rebase on the master branch
$ git fetch origin
$ git rebase origin/master
Now your log will look like this
commit 687f4bd9c78f071c72a5843629cf300b87adf2d5
Author: qunyanm<EMAIL_ADDRESS>Date:   Mon Nov 16 11:03:28 2015 -0800
Use the EndCurly token when creating the ReturnCmd for unifiedExit

When there are more than one exit blocks, an unified exit block is
created which includes a ReturnCmd. However, the ReturnCmd is created
with NoToken. This causes the line/column number reported for a failed
postcondition to be (0,0). The right token should be the EndCurly since
the ReturnCmd is in the exit block.

commit fe8de9444fb6ce90216a9b8268d8a13daa9a9f2a
Author: Dan Liew<EMAIL_ADDRESS>Date:   Sat Nov 21 18:27:06 2015 +0000
Teach the TravisCI build to use the ``travis_retry`` command when
using NuGet.

The motivation here is that the ``nuget`` command is a little flakey
(sometimes it times out) in the legacy TravisCI infrastructure. This
command will retry the command passed to it a few times. Hopefully
this will stop the random build failures we've been having.

commit f19110ec25d4ee962558627150d22e4c8a26a2a0
Author: Valentin Wüstholz<EMAIL_ADDRESS>Date:   Fri Nov 20 11:24:17 2015 -0600
Add simplified may-unverified analysis and instrumentation.

Finally force push your changes to the dafny-bug-fix branch. You have to do a force push because your rewrote some history. Normally that's bad but because you're on a branch for a pull request that no one else has probably pulled that's okay. DO NOT FORCE PUSH TO THE MASTER BRANCH EVER. IF YOU DO THAT YOU WILL ANNOY EVERYONE.
$ git push -f origin dafny-bug-fix

Reply to this email directly or view it on GitHubhttps://github.com/boogie-org/boogie/pull/24#issuecomment-161049353.


[capture-promotion] Eliminate non-OSSA support/tests.

This only runs on OSSA now, so I am deleting the non-OSSA tests and put in an
early bail out since there are some tests that have not been updated yet for
OSSA, that run the diagnostic passes, but for which this pass never kicked in
on.

@swift-ci smoke test

@swift-ci smoke test


EXC_BAD_ACCESS in iOS simulator when onMapReady receives null

Summary
When 's onMapReady prop receives a value or null or undefined, the app crashes with a EXC_BAD_ACCESS error.
Reproducible sample code
import React from 'react';
import MapView from 'react-native-maps';

export default function App() {
  return (
    <MapView
      style={{width: "100%", height: "100%"}}
      onMapReady={null}
    />
  );
}

Steps to reproduce
Set onMapReady={null} on any <MapView /> and run it in an iOS simulator.
Expected result
A component that receives an optional prop with a null value should behave the same as if it didn't receive the prop at all, e.g. <MapView /> should be the same as .
Actual result

The app crashes and the simulator shows a popup saying "APP NAME quit unexpectedly".
React Native Maps Version
1.8.0
What platforms are you seeing the problem on?
iOS (Apple Maps)
React Native Version
0.70.9
What version of Expo are you using?
Not using Expo
Device(s)
iPhone 14 (Simulator; iOS 16.4)
Additional information
No response

@kueda I can't reproduce the issue under the following environment
System:
    OS: macOS 14.1.1
    CPU: (10) arm64 Apple M1 Pro
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.17.0 - /var/folders/9x/9xzxgmhn75q66kr2x3n691hw0000gn/T/yarn--1700253494780-0.7101434196191923/node
    Yarn: 1.22.19 - /var/folders/9x/9xzxgmhn75q66kr2x3n691hw0000gn/T/yarn--1700253494780-0.7101434196191923/yarn
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.0/bin/npm
    Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.12.1
  SDKs:
    iOS SDK:
      Platforms: DriverKit 23.0, iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0
    Android SDK: Not Found
  IDEs:
    Android Studio: Electric Eel 2022.1.1 Patch 2 Electric Eel 2022.1.1 Patch 2
    Xcode: 15.0.1/15A507 - /usr/bin/xcodebuild
  Languages:
    Java: 11.0.19 - /opt/homebrew/opt/openjdk@11/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0
    react-native: 0.71.7 => 0.71.7
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found

this is the App.tsx code

import React from 'react';
import MapView from 'react-native-maps';

export default function App() {
  return <MapView style={{width: '100%', height: '100%'}} />;
}

@salah-ghanim, try adding onMapReady={null}, e.g. change your App.tsx to

import React from 'react';
import MapView from 'react-native-maps';

export default function App() {
  return <MapView style={{width: '100%', height: '100%'}} onMapReady={null} />;
}

@kueda you're not supposed to pass null as the typing indicates ... if you have typing setup correctly this is the error message you will receive from your IDE
TS2322: Type 'null' is not assignable to type '((event?: NativeSyntheticEvent<{}> | undefined) => void) | undefined'.
please check for null before passing the prop instead of expecting the library to handle something it specifically is typed not to handle.


ERROR: Task exception was never retrieved

Hello @sammchardy! Ticker socket throws this sometimes. Do you have any idea why this error could happen?
2021-08-25 11:34:59,986 ERROR: Task exception was never retrieved
future: <Task finished name='Task-47792629' coro=<KeepAliveWebsocket._keepalive_socket() done, defined at binance/streams.py:246> exception=TimeoutError()>
Traceback (most recent call last):
File "binance/streams.py", line 247, in _keepalive_socket
File "binance/streams.py", line 234, in _get_listen_key
File "binance/client.py", line 7026, in stream_get_listen_key
File "binance/client.py", line 6554, in _post
File "binance/client.py", line 6514, in _request_api
File "binance/client.py", line 6495, in _request
File "aiohttp/client.py", line 1117, in aenter
File "aiohttp/client.py", line 544, in _request
File "aiohttp/client_reqrep.py", line 905, in start
File "aiohttp/helpers.py", line 656, in exit
asyncio.exceptions.TimeoutError

Hello I confirm that I am facing the same problem, any ideas ?


rubygems version

I've been running into issues with rubygems 2.1.0 when behind a proxy. Have manually downgraded to 2.0.3 which temporarily fixes the problem.
Have been trying to override the rubygems version but can't seem to get the syntax correct.
"rvm": {
  "user_installs": [
    {
      "user": "ubuntu",
      "rubies": [
        "ruby-2.0.0-p247",
          {
            "version" : "ruby-2.0.0-p247",
            "rubygems_version" : "2.0.3"
          }
      ],
    }
  ]
}

Is this correct? Thanks in advance.

Closing due to inactivity, please reopen if this is still an issue


Adapt this Action to run via the workflow_run event

Hi @platisd thank you very much for this Action! I would like to suggest a little tweak for it to be able to use it in workflow chains (running via the workflow_run event) in schemes like the one described here:
https://securitylab.github.com/research/github-actions-preventing-pwn-requests/
The reason for this is that I would like to use this Action in a safe manner when I use clang-tidy to check pull requests from forks.

@platisd Both changes are currently working in Free Heroes 2 repo :)

@oleg-derevenetz glad to see the tool is of use and very happy to see an ever increasing quality in FOSS gaming projects! :+1:


Volume level not update when using mouse to change

The volume level actually change but the level display on the bar would not change.
It works fine when I use keyboard (self-wrote external script using amixer)

I will see if I can replicate the issue, because it's working for me using two different setups/machines.

I suspect that it has to do with the headphone_mixer, which is still WIP.

I just pushed a fix for the headphone part. Now mute and volume changes should affect the correct mixer depending on weather the headphones are plugged in or not.
This probably won't fix your issue though.

Could you post the output of the following
$ amixer controls
$ amixer scontrols

plus the volume section in your config.

Sorry, I was not at my laptop. Here is the output:
$ amixer controls
numid=4,iface=MIXER,name='Master Playback Switch'
numid=3,iface=MIXER,name='Master Playback Volume'
numid=2,iface=MIXER,name='Capture Switch'
numid=1,iface=MIXER,name='Capture Volume'

$ amixer scontrols
Simple mixer control 'Master',0
Simple mixer control 'Capture',0

Volume config
[module/volume]
type = internal/volume
speaker_mixer = Speaker
headphone_mixer = Headphone
headphone_control_numid = 9

format:volume = <ramp:volume> <label:volume>
label:muted =   muted
label:muted:foreground = #66

ramp:volume:0 = 
ramp:volume:1 = 
ramp:volume:2 = 
ramp:volume:3 = 

I will try update to the latest source and see if error still occur.

OK, I need to make the headphone stuff optional.

You need to change the values in your config.
Remove headphone_mixer = Headphone and headphone_control_numid = 9 and speaker_mixer = Speaker
You only have the Master mixer which is used by default in the code.
I will push a fix in a few minutes that will allow you to remove the headphone values.

I also managed to replicate the bug now, which is good.


Temporary fix for snippets and undo

A bug was detected on this environment

NVIM v0.9.4
typescript-language-server tsserver version 4.2.0 (installed with Mason)
These plugins to get snippets (installed with packer):

 use {
        "hrsh7th/nvim-cmp",
        "hrsh7th/cmp-nvim-lsp",
        "L3MON4D3/LuaSnip",
        "saadparwaiz1/cmp_luasnip",
        "rafamadriz/friendly-snippets"
    }

To reproduce

Open a Javascript file
Write a for using a snippet, but don't fill anything.
Press Esc then undo the snippet with u
Recreate a for using the snippet

You should see an indexin error as follows:

This PR proposes a temporary fix. It may not be the best solution but it should work if I am not mistaken...
Any improvement ideas and critiques are very appreciated

Sorry, forgot to comment on this before:
I think I know what's going wrong there, lemme create a branch with (what I think) could be the fix

Nvm I don't know what's going wrong.. Could you create a MWE?

Ha, I do know what went wrong (Or, at least I think that's what went wrong for you).
Could you try the undo-fix-branch?

@L3MON4D3 The undo-fix works and actually fix the bug :-)

Nice, I'll put that on master then :D

Okay, 43c89632f7e1fbf581e430bfa978742f9e19bde5 is on master


Change app service plan and functions to new versions of these resource types

Three changes:

Some resource types have been deprecated in version 3.0 of the AzureRM provider and will be removed in version 4.0. These are replaced as follows:azurerm_app_service_plan -> azurerm_service_plan
azurerm_function_app     -> azurerm_linux_function_app

Increment the Azure Functions runtime version from 3 (soon to be deprecated) to 4.
[Bugfix] Set the priority of the request AppGW routing rule. (Couldn't deploy without this.)

Tested by a successful deployment after fixing the issue described in the last item.

@aionic or @JinLee794, could you review, please? Thanks. :slightly_smiling_face:

Looks good to me! On a side note, we should add the option for windows asp/function app down the road as well.


[TiCDC] Feature Request: support schema-registry for OpenAPI V1

Is your feature request related to a problem?
Can not create a changefeed sink to kafka with AVRO format by OpenAPI V1.
Describe the feature you'd like
add a parameter named schema_registry to POST /api/v1/changefeeds
Describe alternatives you've considered
No response
Teachability, Documentation, Adoption, Migration Strategy
No response

I hope we can support schema-registry for OpenAPI V1 at v6.1.1

we  accept the ETCD model in open API v1 directly,  so we already support the schema-registry
https://github.com/pingcap/tiflow/blob/41ab14ce9fd31c185719a29cdd028f219240c616/cdc/api/open.go#L263-L267
https://github.com/pingcap/tiflow/blob/41ab14ce9fd31c185719a29cdd028f219240c616/pkg/config/sink.go#L35-L41
For example
curl -X POST -H "'Content-type':'application/json'" http://<IP_ADDRESS>:8300/api/v1/changefeeds -d '{"changefeed_id":"test5","sink_uri":"blackhole://" , "sink_config": {"schema-registry":  "your-schema-registry"}}'


serialize option None field on a object as json null

hello i found closed ticket #70 which concludes with "None fields on an object is dropped", however my use case actually asks for those null to be present.
For example, the following test fails.
I wonder if there is a way to configure the null encoding behavior. 🙏
  case class Foo(bar: Option[Bar])
  case class Bar(baz: Option[String])

    test("test encoding null") {
      assertTrue(Foo(Some(Bar(baz=None))).toJson == """{"bar":{"baz":null}}""")
    }

btw, i also found #638, which has a OptionAsJsonNull wrapper. But i don't control all of the classes to be JSON serialized, so i don't think this wrapper helps me.

@wenhoujx , could you explain the use case further? Usage of null in Scala code is generally considered an anti-pattern.

@Andrapyre  hi, i am not trying to use null in scala, i am trying to use json null .
encoding: Option None -> json null
decoding: json null -> Option None.
it's a good idea to not encoding json null fields in a json object, however it's nice to be able to control that behavior.

we figured out we can use implicit codec, however this doesn't work for zio-json 0.2.0-M4, works on zio-json 0.6.2.
0.2.0-M4 is the last version for zio 1 ? is that LTS? if so i think there is a bug.
object JsonNull {
  import zio.json._
  import zio.json.ast._
  import zio.json.internal._

  implicit def explicitlyNullOption[A](implicit A: JsonEncoder[A]): JsonEncoder[Option[A]] = new JsonEncoder[Option[A]] {

    def unsafeEncode(oa: Option[A], indent: Option[Int], out: Write): Unit = oa match {
      case None    => out.write("null")
      case Some(a) => A.unsafeEncode(a, indent, out)
    }

    // This is the only override we need to produce the behavior, but
    // unfortunately I did't see a clean way to pull the default
    // JsonEncoder[Option[A]] and override only this.  YMMV
    override def isNothing(oa: Option[A]): Boolean = false

    override final def toJsonAST(oa: Option[A]): Either[String, Json] =
      oa match {
        case None    => Right(Json.Null)
        case Some(a) => A.toJsonAST(a)
      }
  }
}

object Codecs  {
  import JsonNull.explicitlyNullOption // import this at implicit macro expansion.
  lazy implicit val codecBar = DeriveJsonCodec.gen[Bar]
  lazy implicit val codecFoo = DeriveJsonCodec.gen[Foo]
}

/bounty $100 for making it configurable in some nice and consistent way.


[BUG]Merge didn't fail while inserting wrong data type values

Hello. During some example cases we were running, in order to identify how Databricks treats possible wrong actions we could make, we noticed that merge doesn't fail while inserting different data type values from the ones in the corresponding table. Please find the example below:
Target table schema

View used to update target table
Here you can see that we accidentally inserted the Status values in the Eff_Dt column (Date data type)

Merge along with the success result

Target table after the result

You can see that rows 10 & 11 inserted in the table without failing but with null value in EFF_DT (date type while we tried to insert string values). We would expect the merge to fail and not complete any of the DML actions. Moreover, we noticed that in this case in the identity column, id #9 was skipped.

MERGE in Delta by default casts the update/insert action expressions to match the target column being updated/inserted. So it will not throw error.

Hi @tdas. Is this behavior configurable? I mean, could merge can throw an error in these cases?

This implicit casting is unfortunately not configurable right now. But this could be something worth adding a SQL configuration flag. This is not really a bug, but more like a Feature Request.

@elenigeo: I totally agree with you. This is a bug.
@tdas: You wrote: "This is not really a bug, but more like a Feature Request."
I can not agree with you.
The behavior of MERGE INSERT has to be identical to INSERT.
Why do I insist on this?
Assuming you are not aware of MERGE statement ... You would use:
INSERT ... INTO target t WHERE NOT EXISTS (SELECT 1 from source s WHERE s.id = t.id);
UPDATE target t SET ... WHERE ... ;
DELETE FROM target WHERE ... FROM source ... ;

Result: Wrong Data type causes EXCEPTION ==> Expected result
Assuming you are aware of MERGE stetement ... You would use:
MERGE INTO target t
USING source s
   ON s.id = t.id
WHEN MATCHED (AND <condition>) THEN UPDATE ... SET ...
WHEN NOT MATCHED (BY TARGET) THEN INSERT ...
WHEN NOT MATCHED (BY SOURCE) THEN DELETE ...

Result: Wrong Data type does not cause EXCEPTION ==> This is not the Expected result
So ... If you're aware of MERGE statement ... If you use it ... You would get the wrong result.
This is not acceptable.
Just my 2 cts.
For this, I'd like to contribute and help to fix this bug.


Resolve issues related to multiple global attributes instances showing in the ZAP UI

This happens when the matter/zigbee sdks are updated and the same .zap sample app file is opened using zap.
Updating the attribute tables constraints such that attributes are unique based on cluster_ref, package_ref, code, mfg code and side
Added CLUSTER_REF_NOT_NULL and MANUFACTURER_CODE_NOT_NULL to the table because the unique constraint does not work correctly with null values in sqlite. Therefore adding an empty string to them and using those in the unique constraint
In query-loader#INSERT_ATTRIBUTE_QUERY using ignore such that duplicate attribute insertions are ignored.
In query-impexp#importAttributeForEndpointType ignoring insert if an endpoint type attribute already exists based on UNIQUE(ENDPOINT_TYPE_REF, ATTRIBUTE_REF, ENDPOINT_TYPE_CLUSTER_REF ). The ZAP UI was running into this when SDK was updated and the saved sample .zap file was opened again.
JIRA: ZAPP-1079

Codecov Report

Merging #1006 (19ec545) into master (01d8e00) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #1006   +/-   ##
=======================================
  Coverage   67.07%   67.07%
=======================================
  Files         157      157
  Lines       17185    17185
  Branches     3752     3752
=======================================
  Hits        11527    11527
  Misses       5658     5658

Impacted Files
Coverage Δ

src-electron/db/query-impexp.js
97.50% <ø> (ø)

src-electron/db/query-loader.js
99.44% <ø> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@brdandu this bug is fixed so this PR is not needed, please reopen if I am mistaken! thanks!


Fixed example for "Accession the Service"

Example stated that a "frontend receives traffic from backend". It should be "frontend sends traffic to backend"

NOTE: Please check the “Allow edits from maintainers” box below to allow
reviewers fix problems on your patch and speed up the review process.
Please delete this note before submitting the pull request.

This change is

I signed it!

Thanks


Fix dependency check for Tumblr gem

Fix #1614

👍 Looks save to merge either with manually verifying the version change or with keeping the old one.


Recommend page not found in the copyright policy

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
In the copyright policy page, recommend page its working showing that page not found error in the footer section of the page.

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

047f59eed9894219811a89d42d339cb280347bfc
I have completed this issue also but the commit goes in the previous pr , please marked as completed and give the level label to this pr
before:
https://github.com/user-attachments/assets/2cb723db-4f5a-42e0-a715-446409a4462d
After:
https://github.com/user-attachments/assets/24ba161c-bf00-4f4d-b288-2ced3d4b55f6

@abhi03ruchi  assign this also level label and mark as completed as I completed in the previous pr

@abhi03ruchi can I get points for this???

no , u didnt raise separate pr for it .


Invoice filenames containing dots

If I pass an invoice to the Validator (v1.3.1), whose file name does not contain a dot, the reports are generated with the expected filenames -report.html and -report.xml. E.g. the invoice "C:\Xrechnung\Export\Invoice\abc.xml", executed via
java -jar "C:\Xrechnung\Kosit\lib\validationtool-1.3.1-standalone.jar" -s "C:\Xrechnung\Kosit\xrechnung\conf\scenarios.xml" -r "C:\Xrechnung\Kosit\xrechnung\conf" -h -o "C:\Xrechnung\Export\Bericht" "C:\Xrechnung\Export\Rechnung\abc.xml"
generated the following reports: "abc-report.html" and "abc-report.xml"
However, if the file name of the invoice contains a dot, e.g. "abc.123.xml", and you call the Validator as above, you will get the reports "abc.123-report.html" and "abc-report.123". The name of the HTML report looks quite good so far, but the suffix "-report" is moved before dot and the file extension is discarded, so that only what was previously behind the dot, stays there as the file extension.

already fixed with #51, releases 1.3.2 will be shipped soon

fixed in 1.4.0


[Question] Reinstalling the mobile app after resetting will restore all accounts.

After i reset Ledger Live i see the "Get started" screen.
If i reinstall the app it will ask for my fingerprint.
When i unlock the app it will show all my accounts.
Why is this happening?
I am asking this out of curiosity.
Thanks
Steps to reproduce the behavior

Reset Ledger live in the settings.
Reinstall Ledger Live.
Open the app

Do you mean reinstalling the app as in uninstalling and then installing from the PlayStore/AppStore?
Which platform are you using?
Which version of the app are you running?
I've tested with the current production version on Android and the latest develop version and I can't replicate your findings.

The only reason I see this could happen is that the Reset action didn't had enough time to effectively "save" the new state in the app state (this happen after some delay: https://github.com/LedgerHQ/ledger-live-mobile/blob/develop/src/index.js#L63 )
This would also be on Android only because Android keeps the data of apps even after deletion, not iOS.

fixed in upcoming 1.2.0


Malform http response (Possible bolt protocol obstacle)

Any idea how to resolve these errors (these are errors found after Alteryx finishes running my workflow.  No data is pulled through)?
First error: "http://neo4j.acme.com:7474": net/http: HTTP/1.x transport connection broken: malformed HTTP response "\x15\x00\x00\x00\x02\x01\x00"
Second error: Error: Neo4j Input (1): expected no error but got: URI scheme  is not supported
My URL:  bolt protocol is: jdbc:neo4j:bolt+s://
My IP:     bolt protocol is: jdbc:neo4j:bolt://
Using DBeaver,
jdbc:neo4j:bolt+s://http://neo4j.acme.com:7474   with user name and password, will connect to neo4j.
jdbc:neo4j:bolt://http://neo4j.acme.com:7474   with user name and password, will not connect to neo4j.
Thank you
Alteryx version 2022.1.1
Neo4J version 4.4.12

Thanks for the report. I am getting the bolt URL from the web API. So whether your server requires bolt or bolt+s, should be automatically handled.
If your server uses bolt with TLS, is it also using http with TLS? In that case, the address should be:
https://neo4j.acme.com:7474
The first error indicates the tool is not getting a valid response from the web address. That likely means it is malformed or using the wrong protocol. And if that step fails, it will not be able to connect using bolt because it doesn't know the correct address to use.

Thank you,
What version do you recommend that I download?


kube-prometheus: Add ability to set nodeExporter tolerations

We've got some nodes with taints and want to run nodeExporter on all of them, so need the ability to add tolerations to the node exporter daemonset.
I'm an absolute ksonnet newbie, so apologies in advance if I'd done something silly.

I'm an absolute ksonnet newbie, so apologies in advance if I'd done something silly.

No worries at all, we're very happy to help :slightly_smiling_face: .
The awesome thing about jsonnet is that it encourages composition, and doesn't need all customization to be thought about up front (like other kubernetes "config-management tools). What you're looking for is something along the lines of:
local kp = (import 'kube-prometheus/kube-prometheus.libsonnet') + {
  nodeExporter+:: {
    daemonset+: daemonset.mixin.spec.template.spec.withTolerations([yourToleration]),
  },
};

{ ['00namespace-' + name]: kp.kubePrometheus[name] for name in std.objectFields(kp.kubePrometheus) } +
{ ['0prometheus-operator-' + name]: kp.prometheusOperator[name] for name in std.objectFields(kp.prometheusOperator) } +
{ ['node-exporter-' + name]: kp.nodeExporter[name] for name in std.objectFields(kp.nodeExporter) } +
{ ['kube-state-metrics-' + name]: kp.kubeStateMetrics[name] for name in std.objectFields(kp.kubeStateMetrics) } +
{ ['alertmanager-' + name]: kp.alertmanager[name] for name in std.objectFields(kp.alertmanager) } +
{ ['prometheus-' + name]: kp.prometheus[name] for name in std.objectFields(kp.prometheus) } +
{ ['grafana-' + name]: kp.grafana[name] for name in std.objectFields(kp.grafana) }

Thanks @brancz that's very clear

Is there something more to this snippet ? I can only get STATIC ERROR: test.jsonnet:3:17-26: Unknown variable: daemonset on jsonnet v0.12.1

You need to import ksonnet and assign daemonset to a variable as done in: https://github.com/coreos/prometheus-operator/blob/master/contrib/kube-prometheus/jsonnet/kube-prometheus/node-exporter/node-exporter.libsonnet

Oh right thanks, I thought it should be a reference to the nodeExporter.daemonset, that's better now.


game tabs out when press cntrl+q

hello can you help, i was trying to install gravure studio, after copying contents of the zip and going into gravure mod in the game pressing the Ctrl + Q shortcut just tabs out my game i don't understand how am i supposed to launch the studio, please help

Same thing happens to me. It always has. Unfortunately the Overlay looks to be abandoned, The Mod creator himself might respond if you joined his Patreon. If I manage to find a solution I'll share it here.

the problem was that this software does not work while the game is in full screen, among all other things the code is pretty junk, I found a workaround by switching to windowed and enabling borderless gaming app


[feature] Parse null literal from calcite to thrift and pass down to LiteralContext

Set null field in thrift literal when parsing null SqlLiteral.
Set nullSentinel instance in LiteralContext when the null is passed down.
Changed the value in literalContext type to object so we can support non-string type literal in the future.
Note caller of getLiteral is not handled null yet.

@Jackie-Jiang @zhtaoxiang

Codecov Report

Merging #10257 (a85fade) into master (2c57462) will decrease coverage by 35.28%.
The diff coverage is 37.73%.

@@              Coverage Diff              @@
##             master   #10257       +/-   ##
=============================================
- Coverage     70.43%   35.16%   -35.28%
+ Complexity     5772      202     -5570
=============================================
  Files          2017     2019        +2
  Lines        109263   109265        +2
  Branches      16611    16611
=============================================
- Hits          76963    38426    -38537
- Misses        26899    67549    +40650
+ Partials       5401     3290     -2111

Flag
Coverage Δ

integration1
24.71% <37.73%> (+0.10%)
:arrow_up:

integration2
24.51% <35.84%> (-0.07%)
:arrow_down:

unittests1
?

unittests2
13.70% <0.00%> (+0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

...che/pinot/common/request/context/NullSentinel.java
0.00% <0.00%> (ø)

...pache/pinot/common/utils/request/RequestUtils.java
68.18% <0.00%> (-12.38%)
:arrow_down:

...sform/function/BaseBinaryGeoTransformFunction.java
0.00% <0.00%> (-72.59%)
:arrow_down:

...geospatial/transform/function/StPointFunction.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../transform/function/DateTimeTransformFunction.java
0.00% <0.00%> (-89.25%)
:arrow_down:

...transform/function/DateTruncTransformFunction.java
0.00% <0.00%> (-83.88%)
:arrow_down:

...r/transform/function/ExtractTransformFunction.java
0.00% <0.00%> (-82.06%)
:arrow_down:

...erator/transform/function/InTransformFunction.java
0.00% <0.00%> (-56.02%)
:arrow_down:

...form/function/JsonExtractKeyTransformFunction.java
0.00% <0.00%> (-82.61%)
:arrow_down:

...or/transform/function/LookupTransformFunction.java
0.00% <0.00%> (-77.11%)
:arrow_down:

... and 1172 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Refactor: stop using Luigi

Too much yak shaving going on.  Focus on KISS.

I've been using eggo as the infrastructure for my own Luigi + ADAM pipelines. If you drop Luigi, then I'll start a new repo for Luigi+ADAM workflows and generalize it to run anywhere. Probably will be much better that way and might be useful to others.
(might involve borrowing/stealing some of the Luigi code from eggo, if you're ok with that)

Sorry for the unilateralism, @jfeala.  We decided we were just making things too complicated with Luigi (and also trying to support multiple environments).  If the direction we're going in now (Director-provisioned CDH clusters and simpler scripts for specific datasets) is also useful to you, please consider jumping on board as well.  So far it's been much simpler.  Otherwise, feel free to steal away :)

No problem, I totally agree with the simpler framework. Looking forward to seeing where you go with it.

Closing this.


How can i use this api in my app,pod can not work

does "googleapis"  can be userd in a new app, how can i set up podfile to run this service?
so confused about it ,really need some help

Yes, add Google folder and googleapis.podspec in your project root folder. Add "pod 'googleapis', :path => '.' " in your pod file and then update or install pods. However, I am getting 1 crash after that and I raised this issue.

@wasimsafdar   hi， my app dont use pods but carthage, I need to manually integration，can you help me?


Jepio - ARM Support + CI Changes

If you install qemu-user on the VM, then you should be able to run the tests using qemu-aarch64 on linux, but you'll have to disable -race. This article is relevant: https://ctrl-c.us/posts/test-goarch.html.

This is fascinating: I think the testing is working correctly, but due to the emulation you're managing to reliably reproduce this issue (race condition): https://github.com/Azure/azure-storage-azcopy/issues/1555 👍

Hey @jepio ,
Thanks for the help with QEMU. I was able to test ARM64 with this but, as you might have seen, I found race condition.
I, unknowingly, reproduced error #1555 . I'll talk to my team about it.


Register v0.2.0

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/38333
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.0 -m "<description of version>" 1feb35f32d4bfe339081c8c5a26143dc59296954
git push origin v0.2.0

Also, note the warning: This looks like a new registration that registers version 0.2.0.
Ideally, you should register an initial release with 0.0.1, 0.1.0 or 1.0.0 version numbers
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.


Refresh button text outside box

When viewing the app on a smaller screen the refresh buttons looks like this

The HTML body has a width of 1440 and height of 762 on that specific screen.

I might not had taken the latest styling of the app. I used a private window though. When checking it with the resizable-columns branch I get the following:

The button is ok, but now the logo has no padding at the top and bottom (anymore).

The button is ok, but now the logo has no padding at the top and bottom (anymore).

Is this still the case on main?


Modified devsds lvm script to keep new feature synchronized

What this PR does / why we need it:
Modified devsds lvm script to keep new feature synchronized
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

Coverage decreased (-3.3%) to 56.558% when pulling a8b94001d87dfeaadac37248d8cb787921123139 on xxwjj:lvm_extras into 8d1eb99a2fa462a2090d6bf1c2a8f73e4d440b6a on opensds:development.

Coverage decreased (-3.3%) to 56.558% when pulling a8b94001d87dfeaadac37248d8cb787921123139 on xxwjj:lvm_extras into 8d1eb99a2fa462a2090d6bf1c2a8f73e4d440b6a on opensds:development.

Coverage decreased (-3.3%) to 56.558% when pulling a8b94001d87dfeaadac37248d8cb787921123139 on xxwjj:lvm_extras into 8d1eb99a2fa462a2090d6bf1c2a8f73e4d440b6a on opensds:development.

Coverage decreased (-3.3%) to 56.558% when pulling a8b94001d87dfeaadac37248d8cb787921123139 on xxwjj:lvm_extras into 8d1eb99a2fa462a2090d6bf1c2a8f73e4d440b6a on opensds:development.


Docs landing page and sidebar have fallen out of sync

There’s a mismatch between the listing in the side bar and the listing on the landing page (“Performance” for e.g. is missing, and there are others). This has bitten me before, and I only knew to check because I remember seeing the performance page specifically before. I believe this applies to all previous releases as well.

I was looking at it this morning to make a pr but couldn't figure out which page to update. @jseldess would you mind showing me or adding this in? I don't think people are finding the performance page as easily as they could


Adds xarray backend to support loading unstructured grids

This commit adds a new xarray backend as a plugin to support loading
FVCOM and other unstructured gridded data from DAP and netCDF sources.
The backend enables clients to pass a mapping of variables to rename,
the variables are renamed after the xarray objects are loaded from the
store but before assembled into a dataset which aleviates issues arising
from unstructured grids that have coordinate variables with multiple
dimensions.
Pull Request Reminders

[ ] Make sure the docs notebooks models.ipynb and ts_work.ipynb still run.
[ ] Add tests for the new functionality.
[ ] Add a bullet to docs/whats_new.rst describing your new work.

Superseded by https://github.com/axiom-data-science/extract_model/pull/63


Add rich comparison operators to number types

IronPython.test_stdmodules fails because of the following:
import locale
locale.strxfrm("a") < locale.strxfrm("b")

The reason for the failure is that locale.strxfrm currently returns a System.Globalization.SortKey object and the comparison operators no longer work since __cmp__ is gone.
Possible solutions:

Change locale.strxfrm to return a string like CPython.
Wrap SortKey in something that's comparable.
Somehow map rich comparison operators to Compare. I'm not sure how many other types would actually benefit from this.

I'm currently leaning toward the 2nd solution.


Switch plugin.config-dir to catalog.config-dir

The Presto server logs have the following warning: "Warning: Configuration
property 'plugin.config-dir' has been replaced. Use 'catalog.config-dir' instead."
Keep plugin.config-dir as '/etc/presto', since that's also a valid Presto config with
the default 'etc'.

looks good % passing tests.  Thanks for fixing this!


Show non-DS projects in the project table

Closes #1417
Closes #1310
Description

Add a select field, allowing the user to select the scope of the project table.
When selecting Data science projects:

When selecting All available projects:

Also, only apply the modelmesh-enabled: 'true' annotation when first creating a server in a project.
How Has This Been Tested?

Go to the dashboard projects page
Toggle the select dropdown to view different scopes
~Make sure no project starts with openshift- or kube- or default or system or openshift are shown in the list~
Try to create a workbench in a non-DS project

Test Impact

TBD
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[ ] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change.

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

I have some questions about RBAC for this PR that needs more information or answers.

Does the scope limit access to the specific project? For example, if an admin user has access to some non-DS projects, and he sets the scope to Data science projects, now he can only see DS projects in the list. However, can he access the project details page of a non-DS project by typing in the URL? Currently, in this implementation he can, because we only limit the scope filter from a UI perspective, but we didn't set any RBAC limitation.
Does the scope affects other pages like Data science pipelines? For example, on the DS pipelines page, you will need to select a project to create a pipeline. If the user limits the scope to DS projects only, can he still see the non-DS projects in this list? Currently, we don't do any filters here. Do we want to only show DS projects here no matter what scope the user chooses on the projects page or do we want to show the projects based on the user's choice of scope?

/hold
This issue will slip to next sprint, we've changed the priorities and we'll only merge bug fixes.

@xianli123 - This is to implement your design so please take a look when you get a chamce.

@kywalker-rh Thanks. The UI looks good to me. As for the divider, it can be removed, as decided in this Slack thread.

Based on the discussion we had in the UX meeting, we are not going to block/filter any OpenShift projects, we will fetch whatever we get and show them to the users. Most of the users are developers only, and RBAC will prevent them from seeing the OpenShift default projects. As for admin users, they should know what they are doing so there is no harm to show all the projects to them :)

/hold
Yeah, holding this until we can discuss the "showing of infrastructure projects" in the Dashboard. I disagree with the stance made in the UX meeting last week.

/unhold Already hid all the infrastructure projects.

/lgtm
/approve

@christianvogt I am wondering whether this could go through the merge process because I changed the target branch halfway 🤔

Manually add approved label to see if the merge could happen.


Implement search functionality in QuestionRepo component

•	Added search input to QuestionRepo.tsx to allow users to search questions.
•	Updated backend API to support searching by title, category, and complexity.
•	Enhanced README.md with detailed instructions on how to use the search, sort and pagination endpoint
•	Made the highlightText function reusable across components.

@gmengqi you may merge your PR if all is okay, will resolve merge conflict here

LGTMT!


Allow screenshots to be saved to disk

Overview
This PR extends the screenshot functionality in MCP Playwright by adding support for file storage options and an option to disable base64 encoding.
Changes

Added new screenshot parameters:

storeBase64 - Option to store screenshot in base64 format (default: true)
savePng - Option to save screenshot as PNG file (default: false)
downloadsDir - Custom downloads directory path (defaults to user's Downloads folder)

Important Note
The downloadsDir parameter requires write permissions to be properly configured in the server. Ensure the specified directory is in the allowed write paths before using this feature.
Example Usage
// Store as base64 only
{
  name: "screenshot-name",
  storeBase64: true
}

// Save as PNG file only
{
  name: "screenshot-name",
  savePng: true,
  storeBase64: false,
  downloadsDir: "/custom/path"  // optional
}

Looks great, tested in my local and it's working as expected. Please moving forward, help me attach a screenshot of your testing in local machine. Thanks !