text:
Xiaomi Vibration sensor expose only programmable switch (and not motion sensor)

Describe the bug
I added new Xiaomi Vibrations sensor (model DJT11LM) and the only thing I see on HomeKit is a programmable switch with 3 actions for (drop, tilt, and vibration).
Although it states in the docs for this device that a MotionSensor should be exposed too
Related devices
Aqara vibration sensor DJT11LM
To Reproduce
Add this device to z2m, and see the added device in the HomeKit app.
Expected behavior
Motion Sensor should be exposed too
MQTT messages

The device entry from zigbee2mqtt/bridge/devices

[
  {
    "definition": {
      "description": "Aqara vibration sensor",
      "exposes": [
        {
          "access": 1,
          "description": "Remaining battery in %",
          "name": "battery",
          "property": "battery",
          "type": "numeric",
          "unit": "%",
          "value_max": 100,
          "value_min": 0
        },
        {
          "access": 1,
          "description": "Triggered action (e.g. a button click)",
          "name": "action",
          "property": "action",
          "type": "enum",
          "values": [
            "vibration",
            "tilt",
            "drop"
          ]
        },
        {
          "access": 1,
          "name": "strength",
          "property": "strength",
          "type": "numeric"
        },
        {
          "access": 3,
          "name": "sensitivity",
          "property": "sensitivity",
          "type": "enum",
          "values": [
            "low",
            "medium",
            "high"
          ]
        },
        {
          "access": 1,
          "name": "angle_x",
          "property": "angle_x",
          "type": "numeric",
          "value_max": 90,
          "value_min": -90
        },
        {
          "access": 1,
          "name": "angle_y",
          "property": "angle_y",
          "type": "numeric",
          "value_max": 90,
          "value_min": -90
        },
        {
          "access": 1,
          "name": "angle_z",
          "property": "angle_z",
          "type": "numeric",
          "value_max": 90,
          "value_min": -90
        },
        {
          "access": 1,
          "description": "Voltage of the battery in millivolts",
          "name": "voltage",
          "property": "voltage",
          "type": "numeric",
          "unit": "mV"
        },
        {
          "access": 1,
          "description": "Link quality (signal strength)",
          "name": "linkquality",
          "property": "linkquality",
          "type": "numeric",
          "unit": "lqi",
          "value_max": 255,
          "value_min": 0
        }
      ],
      "model": "DJT11LM",
      "options": [],
      "supports_ota": false,
      "vendor": "Xiaomi"
    },
    "endpoints": {
      "1": {
        "bindings": [],
        "clusters": {
          "input": [],
          "output": []
        },
        "configured_reportings": [],
        "scenes": []
      }
    },
    "friendly_name": "office_vibration",
    "ieee_address": "0x00158d0006370b01",
    "interview_completed": true,
    "interviewing": false,
    "manufacturer": "LUMI",
    "model_id": "lumi.vibration.aq1",
    "network_address": 23546,
    "power_source": "Battery",
    "supported": true,
    "type": "EndDevice"
  }
]

Status update from zigbee2mqtt/[FRIENDLY_NAME]

debug 2022-02-04 22:40:35: Received Zigbee message from 'office_vibration', type 'attributeReport', cluster 'closuresDoorLock', data '{"1285":1769472}' from endpoint 1 with groupID 0
info  2022-02-04 22:40:35: MQTT publish: topic 'home/office_vibration', payload '{"angle":8,"angle_x":2,"angle_x_absolute":88,"angle_y":2,"angle_y_absolute":88,"angle_z":87,"battery":80,"linkquality":90,"strength":27,"voltage":2965}'

Versions used
Please provide the version of the following pieces of software:

This plugin 1.6.2
Homebridge 1.4.0
Zigbee2MQTT 1.22.0
Homebridge Config UI X 4.42.0

I have this sensor myself and for me it does show up as a motion sensor as well as a Stateless Programmable Switch. Note that motion sensors don't show up as tiles, but are grouped above the tiles:

As you can see here, mine has a "Bewegingssensor" (Dutch for motion sensor):

If you still can't find it, please turn in debug logging in Homebridge and share the lights if Homebridge starting up (when the accessories are restored/created).
This might provide some insight in what's going on on your end.

Thanks for answering!
This is the homebridge debug logs
[04/02/2022, 23:00:17] Registering platform 'homebridge-z2m.zigbee2mqtt'
[04/02/2022, 23:00:17] [zigbee2mqtt] Initializing zigbee2mqtt platform...
[04/02/2022, 23:00:17] [zigbee2mqtt] Default device config: {"excluded":false,"exclude":false}
[04/02/2022, 23:00:17] [zigbee2mqtt] Connecting to MQTT server at mqtt://192.168.1.190:1883
[04/02/2022, 23:00:17] [zigbee2mqtt] Using MQTT keepalive: 60
[04/02/2022, 23:00:17] [zigbee2mqtt] MQTT reject_unauthorized set false, ignoring certificate warnings.
[04/02/2022, 23:00:18] [zigbee2mqtt] Restoring accessory: office_button (0x00158d0002c48270)
[04/02/2022, 23:00:18] [zigbee2mqtt] Config for accessory office_button : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:18] [zigbee2mqtt] Mapping of property 'action' of device 'office_button':
Button 1:
- SINGLE: single
- DOUBLE: double
- LONG  : hold
Button 2 #ext1:
- SINGLE: triple
- DOUBLE: quadruple
Button 3 (many):
- SINGLE: many
[04/02/2022, 23:00:18] [zigbee2mqtt] Configuring Battery Service for office_button
[04/02/2022, 23:00:18] [zigbee2mqtt] Updating service names for office_button (from office_button)
[04/02/2022, 23:00:18] [zigbee2mqtt] Restoring accessory: office_door (0x00158d000588ad0d)
[04/02/2022, 23:00:18] [zigbee2mqtt] Config for accessory office_door : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:18] [zigbee2mqtt] Configuring ContactSensor for office_door
[04/02/2022, 23:00:18] [zigbee2mqtt] Configuring Battery Service for office_door
[04/02/2022, 23:00:18] [zigbee2mqtt] Updating service names for office_door (from office_door)
[04/02/2022, 23:00:18] [zigbee2mqtt] Restoring accessory: network_temp (0x00158d00042d5543)
[04/02/2022, 23:00:18] [zigbee2mqtt] Config for accessory network_temp : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:18] [zigbee2mqtt] Configuring HumiditySensor for network_temp
[04/02/2022, 23:00:18] [zigbee2mqtt] Configuring TemperatureSensor for network_temp
[04/02/2022, 23:00:18] [zigbee2mqtt] Configuring AirPressureSensor for network_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for network_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for network_temp (from network_temp)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: office_vibration (0x00158d0006370b01)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory office_vibration : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Mapping of property 'action' of device 'office_vibration':
Button 1 (drop):
- SINGLE: drop
Button 2 (tilt):
- SINGLE: tilt
Button 3 (vibration):
- SINGLE: vibration
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for office_vibration
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for office_vibration (from office_vibration)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: office_motion (0x00158d00027ce768)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory office_motion : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring OccupancySensor for office_motion
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for office_motion
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for office_motion (from office_motion)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: entrance_switch (0x00158d0005c10071)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory entrance_switch : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Mapping of property 'action' of device 'entrance_switch':
Button 1 (both):
- SINGLE: single_both
- DOUBLE: double_both
- LONG  : hold_both
Button 2 (left):
- SINGLE: single_left
- DOUBLE: double_left
- LONG  : hold_left
Button 3 (right):
- SINGLE: single_right
- DOUBLE: double_right
- LONG  : hold_right
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for entrance_switch
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for entrance_switch (from entrance_switch)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: tom_button (0x00158d00035563b1)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory toms_button : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Mapping of property 'action' of device 'toms_button':
Button 1:
- SINGLE: single
- DOUBLE: double
- LONG  : hold
Button 2 #ext1:
- SINGLE: triple
- DOUBLE: quadruple
Button 3 (many):
- SINGLE: many
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for toms_button
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for toms_button (from toms_button)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: office_temp (0x00158d0005828de5)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory office_temp : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring HumiditySensor for office_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring TemperatureSensor for office_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring AirPressureSensor for office_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for office_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for office_temp (from office_temp)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: bedroom_temp (0x00158d0001d6510a)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory bedroom_temp : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring HumiditySensor for bedroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring TemperatureSensor for bedroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring AirPressureSensor for bedroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for bedroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for bedroom_temp (from bedroom_temp)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d00019d4aa8 (0x00158d00019d4aa8)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory livingroom_temp : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring HumiditySensor for livingroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring TemperatureSensor for livingroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring AirPressureSensor for livingroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for livingroom_temp
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for livingroom_temp (from livingroom_temp)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d00024b0cb1 (0x00158d00024b0cb1)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory toms_door : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for toms_door
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for toms_door
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for toms_door (from toms_door)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d0002c4995d (0x00158d0002c4995d)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory entrance_door : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for entrance_door
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for entrance_door
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for entrance_door (from entrance_door)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d00035afe4c (0x00158d00035afe4c)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory kitchen_window : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for kitchen_window
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for kitchen_window
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for kitchen_window (from kitchen_window)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: livingroom_window (0x00158d00035a4e55)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory livingroom_window : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for livingroom_window
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for livingroom_window
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for livingroom_window (from livingroom_window)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d00035a4e38 (0x00158d00035a4e38)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory bedroom_window : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for bedroom_window
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for bedroom_window
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for bedroom_window (from bedroom_window)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d0002c498d4 (0x00158d0002c498d4)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory livingroom_balcony_right : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for livingroom_balcony_right
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for livingroom_balcony_right
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for livingroom_balcony_right (from livingroom_balcony_right)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d00034d84cc (0x00158d00034d84cc)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory livingroom_balcony_left : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for livingroom_balcony_left
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for livingroom_balcony_left
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for livingroom_balcony_left (from livingroom_balcony_left)
[04/02/2022, 23:00:19] [zigbee2mqtt] Restoring accessory: 0x00158d000588c7fe (0x00158d000588c7fe)
[04/02/2022, 23:00:19] [zigbee2mqtt] Config for accessory bedroom_door : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring ContactSensor for bedroom_door
[04/02/2022, 23:00:19] [zigbee2mqtt] Configuring Battery Service for bedroom_door
[04/02/2022, 23:00:19] [zigbee2mqtt] Updating service names for bedroom_door (from bedroom_door)
[04/02/2022, 23:00:20] [zigbee2mqtt] Restoring accessory: 0x00158d0005890d1b (0x00158d0005890d1b)
[04/02/2022, 23:00:20] [zigbee2mqtt] Config for accessory bedroom_motion : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring OccupancySensor for bedroom_motion
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring Battery Service for bedroom_motion
[04/02/2022, 23:00:20] [zigbee2mqtt] Updating service names for bedroom_motion (from bedroom_motion)
[04/02/2022, 23:00:20] [zigbee2mqtt] Restoring accessory: 0x00158d0005890e16 (0x00158d0005890e16)
[04/02/2022, 23:00:20] [zigbee2mqtt] Config for accessory toms_motion : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring OccupancySensor for toms_motion
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring Battery Service for toms_motion
[04/02/2022, 23:00:20] [zigbee2mqtt] Updating service names for toms_motion (from toms_motion)
[04/02/2022, 23:00:20] [zigbee2mqtt] Restoring accessory: bedroom_button (0x00158d0003fb70a2)
[04/02/2022, 23:00:20] [zigbee2mqtt] Config for accessory bedroom_button : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:20] [zigbee2mqtt] Mapping of property 'action' of device 'bedroom_button':
Button 1:
- SINGLE: single
- DOUBLE: double
- LONG  : hold
Button 2 #ext1:
- SINGLE: triple
- DOUBLE: quadruple
Button 3 (many):
- SINGLE: many
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring Battery Service for bedroom_button
[04/02/2022, 23:00:20] [zigbee2mqtt] Updating service names for bedroom_button (from bedroom_button)
[04/02/2022, 23:00:20] [zigbee2mqtt] Restoring accessory: livingroom_motion (0x00158d00027d1213)
[04/02/2022, 23:00:20] [zigbee2mqtt] Config for accessory livingroom_motion : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring OccupancySensor for livingroom_motion
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring Battery Service for livingroom_motion
[04/02/2022, 23:00:20] [zigbee2mqtt] Updating service names for livingroom_motion (from livingroom_motion)
[04/02/2022, 23:00:20] [zigbee2mqtt] Restoring accessory: office_window (0x00158d0002c10b55)
[04/02/2022, 23:00:20] [zigbee2mqtt] Config for accessory office_window : {"excluded":false,"exclude":false}
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring ContactSensor for office_window
[04/02/2022, 23:00:20] [zigbee2mqtt] Configuring Battery Service for office_window
[04/02/2022, 23:00:20] [zigbee2mqtt] Updating service names for office_window (from office_window)
[04/02/2022, 23:00:20] [zigbee2mqtt] Connected to MQTT server
[04/02/2022, 23:00:20] [zigbee2mqtt] Using Zigbee2MQTT v1.22.0 (identified via home/bridge/info)
[04/02/2022, 23:00:20] [zigbee2mqtt] Zigbee2MQTT 'experimental.output' is set to 'json'
[04/02/2022, 23:00:21] [zigbee2mqtt] Received devices...
[04/02/2022, 23:00:21] [zigbee2mqtt] Device is excluded: 0x00124b0024c9ea08
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office_door/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: network_temperature/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office vibration/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office_vibration/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office_motion/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: entrance_switch/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: tom_switch/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office_button/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: tom_button/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office_temp/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: network_temp/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: bedroom_temp/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: livingroom_temp/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: toms_door/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: entrance_door/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: kitchen_window/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: livingroom_window/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: bedroom_window/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: livingroom_balcony_right/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: livingroom_balcony_left/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: bedroom_door/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: bedroom_motion/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: toms_motion/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: toms_button/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: bedroom_button/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: livingroom_motion/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: office_window/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: zigbee router/availability
[04/02/2022, 23:00:22] [zigbee2mqtt] Unhandled message on topic: zigbee_router/availability

From this I understand that the zigbee2mqtt should have vibration key in the published message, but the message in the mqtt server logs is missing this key..
info  2022-02-04 22:45:34: MQTT publish: topic 'home/office_vibration', payload '{"angle":8,"angle_x":2,"angle_x_absolute":88,"angle_y":2,"angle_y_absolute":88,"angle_z":87,"battery":80,"linkquality":87,"strength":19,"voltage":2965}'

you think it might be related? did you add any specific configuration in the zigbee2mqtt configration.yaml file?

Either it's not creating the motion sensor service on your environment or I forgot to add logging for it.
I did notice I'm running a slightly newer version of Zigbee2MQTT (v1.22.2) and this plugin (v1.7.0-rc.1).
As far as I know/can find, I haven't added any specific configuration in Zigbee2MQTT for this device.

Just noticed that your device's exposes information doesn't include the vibration either. Perhaps updating Zigbee2MQTT can help.

First thing first :) happy B-day!
I'll try what you suggested and dig more
Thank you so much for trying !

I've checked the change log of Zigbee2MQTT and this was indeed fixed/added in v1.22.1.
Updating it should resolve your issue. Good luck!

Just saw that too in the changelog! thanks!

authors: itavero orevron


text:
Error: Cannot assign requested address (os error 99)

https://github.com/itchysats/10101/pull/233 builds a docker container but the binary fails at the moment. This could be because of rocket.
Error: Cannot assign requested address (os error 99)

To solve this I would make maker listen on 0.0.0.0:8000 instead of localhost.

Lol, the error comes from trying to connect to our regtest electrs which is running on localhost. Obviously, this is not available in the container.
We still need to listen on 0.0.0.0 though, I'll change the ticket.

source: gharchive/issue

license: MIT

license_type: permissive

license_source: github-api


text:
No notebook report in VS Code

Not sure if I should open another issue for this, but I also don't see any notebook report when using VS Code:

Originally posted by @dberenbaum in https://github.com/iterative/dvclive/issues/537#issuecomment-1520986820

@daavoo This is local, not codespaces.

repo: iterative/dvclive


text:
Allow pre-resolved coordinates in the optimization router extensions

Currently the router extensions in the optimization module only allow passing in a set of locations which are then resolved with a MassResolvingAlogrithm.
In our case we want to have more finely-grained control about the resolving before starting calculations. We also cache coordinates/routerpoints for improved performance as long as the router works on the same map.
The 'simplest' way I currently see this is as follows:

added routerextension methods with routerpoints instead of coordinates (or both coordinates and routerpoints)
use a 'pre-resolved' massresolver which just returns the preset coordinates/routerpoints
append the model with routerpoints
in MappedModel.BuildAbstract, use the new massresolver if the model has known routerpoints, otherwise keep as-is

This solution allows for this change to be limited to the optimization module and is quite small in scope to implement.
Alternatively this could be implemented further downstream as well by giving the WeightmatrixAlgorithm and DirectedWeightMatrixAlgorithm overrides which take routerpoints. There wouldn't be a custom massresolver then but the new overrides of the algorithms would just handle the passed routerpoints. This requires a change in both routing and optimization.
I'm happy to take this up myself. What do you think of the above approach(es)?

When thinking about this before I had several similar ideas:

cache routerpoints per profile at massresolver level, but this may not allow the fine grained controle over the process.
pass in a custom implementation of the massresolver interface

But it's probably easier to just pass in the routerpoints instead of he lat/lons and be done with it... feel free to build a prototype of what you think it should be but it needs a bit more thinking. I'm on a few days of holiday right now, back on friday, then I can help out...

Enjoy your holiday! :)
When you're back I've got some initial pull requests you can have a look at. I opted to add routerpoints to the extensions currently as this aligns best with how the extensions work in the routing module.
routing pr: https://github.com/itinero/routing/pull/205
optimization pr: https://github.com/itinero/optimization/pull/29

authors: msioen xivk

repo: itinero/optimization

license_source: bigquery


text:
Allow storing the session even without refresh_token

Hello !
I'm trying to use this plugin to handle auth with PingID, it's working pretty well but I just have a problem
Our app is deployed on GKE and there is an auto pod scaling, so sometimes the app is running on 2 or 3 pods at the same time
We need our session to be stored on a Redis, but in our company the refresh_token is disabled by default and we need a "good reason" to enable it
I digged into the code a bit, and I saw the save of the session using nitro storage is only made when refresh_token is present
Is there a way to make the session persistent even without refresh_token ? Because right now it's the only thing that's disallow us to use this library
Thank's !

Hey,
Thanks for you feedback! Currently it is not possible to store the normal session in a remote location, afaik there is no option in h3 to support that.
I am working on an update to make it possible to make persistent session independent of a refresh_token, that will probably solve your problem, but I can unfortunately not work on that before next week.

The current implementation makes it possible to store the persistent session at any supported unstorage location. If you have a proper load balancer/gateway in place that tranparently distributes user across nodes while preserving headers etc., the persistent session should be discoverable from any node running the same website.

repo: itpropro/nuxt-oidc-auth


text:
[filtering page] APPLY button is not shown at the bottom of a screen on an Android phone

Describe the bug
APPLY button is not shown at the bottom of a screen on an Android phone. I am talking about the "filtering" page.
To Reproduce
Steps to reproduce the behavior:

Go to 'https://svelte-commerce.litekart.in/search' from your Android smartphone
Click on 'filter'

Expected behavior
APPLY button is shown at the bottom of the screen
Screenshots

Smartphone (please complete the following information):

Device: Android smartphone
OS: Android 10
Browser: Chrome
Version: 96.0.4664.92

Hi Andrei,
Thank you so much for raising the issue. I will have a look and fix it as soon.

Hi @itswadesh, if this issue is available, i would like to work on

Hi @JugurthaMoad Thanks for the support offer. Anyway I have moved the filter to the top. I guess this issue is already resoved.
You are welcome to contribute any way. ❤

You're welcome @itswadesh

authors: JugurthaMoad andrei-volkau itswadesh

repo: itswadesh/svelte-commerce


text:
decide if zigtests should only exist one to a module.

this might be important because you can get strangeness around imports and whatnot.

this is now no longer an issue due to the way that modules are assembled.

repo: ityonemo/zigler


text:
Connection refused when trying to connect to RCON on Forge 1.12.2 Server

Hi there!
So I'm trying to get a forge server running on my home server. I would prefer to use docker compose to start it up but i seem to have hit a little snag. It starts up just fine (after a bit of troubleshooting, i think some files were being weird and stuff). But when trying to connect to the server console via rcon with docker exec -i forge rcon-cli --password mine i get the error: "2021/08/23 14:51:01 Failed to connect to RCON serverdial tcp 127.0.0.1:28016: connect: connection refused".
This is my docker-compose.yml:
version: "3"

services:
  mc:
    image: itzg/minecraft-server:java8
    container_name: forge
    ports:
      - 25565:25565
      - 28016:28016
    environment:
      TYPE: "FORGE"
      VERSION: "1.12.2"
      EULA: "TRUE"
      ENABLE_RCON: "true"
      RCON_PORT: 28016
      RCON_PASSWORD: "mine"
      DEBUG: "true"
      MEMORY: "4G"
      ALLOW_FLIGHT: "TRUE"
      OVERRIDE_SERVER_PROPERTIES: "TRUE"
      JVM_DD_OPTS: "fml.queryResult:confirm"
    tty: "true"
    stdin_open: "true"
    restart: unless-stopped
    volumes:
        - ./minecraft-data:/data

I know for sure now its getting stuck on the /fml confirm thing. As you can see i have tried adding the suggestion found in Issue: #465 .
The interesting part is it does let me connect when using docker run and then basically the same variables as i have in my compose file (apart from stdin_open, rcon_password, and jvm_dd_opts). But i would much prefer to use docker-compose for easy startup and shutdown (I don't really want to keep the server running while im not using it).
I've also tried some of the suggestions in Issue: #518 . Mainly:
- adding a --password tag after rcon-cli.
- adding "OVERRIDE_SERVER_PROPERTIES: "TRUE""
- changing the rcon_port to something else.
- changing the rcon properties in server.properties
None of these seem to have made a difference. It does seem like something is happening since if i dont use the right context after rcon-cli (like --pasword) it does give me an error message.  When i do docker exec forge grep rcon server.properties it returns:
rcon.port=28016
enable-rcon=true

docker exec forge env returns:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-1.8-openjdk/jre/bin:/usr/lib/jvm/java-1.8-openjdk/bin
HOSTNAME=93101d3ac2c3
TYPE=FORGE
VERSION=1.12.2
EULA=TRUE
ENABLE_RCON=true
RCON_PORT=28016
RCON_PASSWORD=mine
DEBUG=true
MEMORY=4G
ALLOW_FLIGHT=TRUE
LANG=C.UTF-8
JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk/jre
JAVA_VERSION=8u212
JAVA_ALPINE_VERSION=8.212.04-r0
UID=1000
GID=1000
JVM_XX_OPTS=-XX:+UseG1GC
SERVER_PORT=25565
ONLINE_MODE=TRUE
SERVER_NAME=Dedicated Server
ENABLE_AUTOPAUSE=false
AUTOPAUSE_TIMEOUT_EST=3600
AUTOPAUSE_TIMEOUT_KN=120
AUTOPAUSE_TIMEOUT_INIT=600
AUTOPAUSE_PERIOD=10
AUTOPAUSE_KNOCK_INTERFACE=eth0
HOME=/root

The only time it does seem to sort of work is when i just use docker run instead of docker compose. But then i cant seem to connect to it on my minecraft client. I'm also still pretty new to docker and docker-compose. I've only been able, with lots of struggle, to get a homeassistant instance running so far so any suggestions would be much appreciated :).
Also I wouldn't really know what logs to attach and where i could find them so sorry about that :\

So it seems just using docker attach does now work (im guessing I was too impatient when trying to use it before). So i have been able to completely start up the world now. Not gonna close it just yet because somewith strange does seem to be going on with this here

repo: itzg/docker-minecraft-server


text:
server ignore OPS when spigot is used

The problem is, on initial boot up of the container, the specified OP Player is not being OP if the server type is Spigot. If the type is not specified, hence server is a typical minecraft
The OP Player get OP permission on the server.
I have checked ops.json and ops.txt.converted, both contains information related to my Minecraft user account.
I have made sure that I deleted any volume and container when i switch between Spigot and Minecraft Server
Below is my docker compose
version: "3.5"

services:
  mc:
    image: itzg/minecraft-server
    restart: unless-stopped
    ports:
      - 25565:25565
    environment:
      - OPS=<USER>
      - ONLINE_MODE=TRUE
      - EULA=TRUE
      - MODE=survival
      - LEVEL_TYPE=LARGEBIOMES
      - SPAWN_NPCS=TRUE
      - SPAWN_ANIMALS=TRUE
      - SPAWN_MONSTERS=TRUE
      - GENERATE_STRUCTURES=TRUE
      - FORCE_GAMEMODE=TRUE
      - ENABLE_COMMAND_BLOCK=TURE
      - ANNOUNCE_PLAYER_ACHIEVEMENTS=TRUE
      - ALLOW_NETHER=true
      - SERVER_PORT=25565
      - VERSION=1.14.4
      - DIFFICULTY=normal
      - FORCE_REDOWNLOAD=TRUE
      - TYPE=SPIGOT

If ops.json looks correct, then it must be something about Spigot. I vaguely remember Spigot has its own permission system. Maybe that mechanism isn’t honoring the ops.json.

It only worked for me when online_mode false. When online I had to use rcon and give initially op manually

It looks like Spigot and/or PaperMC are the root cause of this issue, such as this one which got a PR merge a few days ago
https://github.com/PaperMC/Paper/issues/4081
I am seeing the same behavior where ops.txt.converted is processing by Spigot's startup, ops.json contains my player at first, but then I do an op some-other-player it blows away my user in ops.json.
Unless someone has a suggestion, I don't see how the container startup scripts can work around this.

authors: itzg manzke panteparak


text:
Fix missing dilate-gt.png

Description
In the transforms.py file, the docstring for DilateGT has an image embedded:
class DilateGT(ImedTransform):
    """Randomly dilate a ground-truth tensor.
    .. image:: ../../images/dilate-gt.png
        :width: 600px
        :align: center

but this image does not exist in the images folder. This pull request points it to the correct file:
https://raw.githubusercontent.com/ivadomed/doc-figures/main/technical_features/dilate-gt.png

Pull Request Test Coverage Report for Build 510139574

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.297%

Totals

Change from base Build 509888884:
0.0%

Covered Lines:
5261

Relevant Lines:
6987

💛  - Coveralls

Pull Request Test Coverage Report for Build 510139574

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 75.297%

Totals

Change from base Build 509888884:
0.0%

Covered Lines:
5261

Relevant Lines:
6987

💛  - Coveralls

source: gharchive/pull-request

repo: ivadomed/ivadomed


text:
Day Planner Removing Characters while Typing

Related to #107, but I wanted a new ticket to bump this issue since it is a critical bug
With the new Obsidian Live Preview mode, I'm noticing this issue more frequently. Obsidian is merging changes from the Day Planner causing whitespace between words to be removed as I'm typing
I still have Day Planner active, but I can no longer link the note to prevent Day Planner from modifying it

The problem is here: https://github.com/lynchjames/obsidian-day-planner/blob/c8d4d33af294bde4586a943463e8042c0f6a3a2d/src/planner-md.ts#L92-L99
Could either be a timing issue with auto-save, an issue with Obsidian's merge logic, or that the trailing spaces are being clipped in the plugin. I'm not sure which, but I don't think the plugin should be modifying the file unless it needs to?

I have the same issue, thankfully the plugin is still usable with the legacy editor.

Same issue here too, Windows, clean vault with only day planner loaded.

Also experiencing this issue and it's causing a bunch of issues for me

I am experiencing the same issue, have to switch to legacy editor to avoid it. Is there any other solution?

I am finding as a workaround that if I enter the details without a time, it leaves the text alone while I am typing, and then I go back and add the time to the beginning of the line when I'm done with the rest of it.
I have not done extensive testing on this but it is helping me while we wait for a proper fix.

I think this could be an issue with the regex stripping whitespace:

@KyleKing can you not create a merge request for this?
This bug is so annoying....

I don't think opening a PR would be worthwhile without input from @lynchjames first on what types of changes they would be open to

Typing the time, then a full stop/period, then back-arrowing and typing the text before the full stop is also working for me.

If the code fix works, it is possible to implement it locally. I have done this with another plug-in. Obviously this will be wiped if the plug-in is updated, but hopefully this would fix the issue anyway. And in the meantime...
Did you have a fix @KyleKing or have you just isolated the area of the issue?

Did you have a fix @KyleKing or have you just isolated the area of the issue?

I only tried to isolate the issue and hadn't tried patching it locally yet

I think this is demonstrably abandonware at this point and needs to be forked.

I'm not using the plug in any more, so haven't looked further, sorry.

I don't write type/javascript, so I can't be of much help. If someone was keen to work on the project, I'd be happy to sponsor.

This should be fixed in the new version.

authors: KyleKing RobColes beansrowning fnuttens grouchal himmAllRight ivan-lednev rxy0424

repo: ivan-lednev/obsidian-day-planner


text:
Third-party license attribution

[x] I've added a new note in the CHANGELOG.md file, according to docs:
https://iver-wharf.github.io/#/development/changelogs/writing-changelogs

Summary

Added node.js script collect-licenses to obtain all licenses using license-checker
Changed so build-prod also runs collect-licenses npm script
Added LicensesService to obtain generated licenses.json asset
Added /third-party-licenses page
Updated tsconfig with strictTemplates for Angular 9
Overwrote PrimeNG's Accordion styling

Motivation
Closes #19
I was not able to find an NPM package that did all the custom logic I wanted. So the collect-licenses script extends license-checker with:

Fetching remote licenses for those that have missing license
Do not use README.md files as license text

Preview

@fredx30 This adds alot of code that i dont really think belongs to the core wharf codebase. Could this perhaps be moved out to an angular library?

And by "this" you're referring to the collect-licenses script? Sure we could extract it into it's own repo and then into its own NPM package, but that feels like overkill. It would be its own command-line utility.
It's not an angular library though, so maybe you are referring to something else, then what?

@fredx30 This adds alot of code that i dont really think belongs to the core wharf codebase. Could this perhaps be moved out to an angular library?

And by "this" you're referring to the collect-licenses script? Sure we could extract it into it's own repo and then into its own NPM package, but that feels like overkill. It would be its own command-line utility.
It's not an angular library though, so maybe you are referring to something else, then what?

Im thinking that it could be a standalone component library. It could be added to a template such as <licenses-list></licenses-list>.
If it could be made into a standalone component then it wouldnt have to add build steps, im refering to the collect licenses step here.  It wouldnt have to add thirdparty dependencies to the core package, it would do so indrectly which im still not a big fan of but atleast that way its modular in the sense that if the requirement goes the dependency does as well. It wouldnt add the task of solving administrative issues such as licensing to the core codebase.

Had a verbal meeting with @fredx30, and I researched a little further. Here are my conclusions:
Why embed, instead of linking to licenses
We need the list of dependencies and their licenses, so collect-licenses is needed nonetheless. Question is if we need the license texts, or can we just link to the licenses?
Legally, I was not able to find any concrete answers to this. Best I could find was this: https://www.jolts.world/index.php/jolts/article/view/47/102 which analyses the "license attribution" requirements of many common licenses, including MIT and Apache-2.0 that we depend on here in wharf-web. The conclusion from that article was that none actually require the license text to be embedded, and we could probably settle with only linking to the license texts.
Technically, obtaining the packages through npm run collect-licenses takes:

~5.5 - 6 sec to only get the package names and their SPDX license names
~6 - 7 sec to get the packages names, their SPDX license names, and their license texts by obtain some from GitHub.com where they are missing from their NPM packages.

What takes time is the TypeScript compilation and my slow harddisk drive. Above results are without any cached build files (removed deploy/collect-licenses/dist between each benchmark test). Worth noting again that this only affects the production builds, so this adds 7 seconds to the already 3-4 minutes long build time of the Angular production build, while this is not required for local development so it adds 0 seconds to the development iteration time.
So in the spirit of "better safe than sorry", I conclude that we should keep the license texts in the built product.
Extracting to a separate package
Pros:

Can precompile the typescript, reducing time taken to run npm run collect-licenses
Less bloat in package.json
Reusable, could be useful in other non-wharf projects as well

Cons:

Takes time to dev
More packages => more to maintain

The pros outweighs the cons, so I'll extract this into its own package.
Does licensing considerations belong in the repo
No better place to put it. Will extract into its own package, as mentioned above, but that's just for de-bloating the repo.
I've no better answer than that. If you have suggestions, I'm all ears.

I've extracted the code into the new repo https://github.com/iver-wharf/wharf-collect-licenses-js and as it's pre-compiled TypeScript code the execution time of npm run collect-licenses has dropped down to around ~ 3 - 4 seconds.
It's now ready for review again.

repo: iver-wharf/wharf-web


text:
🛑 21Eurkon is down

In 38ee6eb, 21Eurkon (https://blog.eurkon.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 21Eurkon is back up in f635f14 after 1 hour, 22 minutes.

repo: iwyang/check


text:
🛑 Takagi is down

In 97b3fee, Takagi (https://lixingyong.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Takagi is back up in c407c59.


text:
🛑 23心流 is down

In ddbb24d, 23心流 (https://blog.panghai.top/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 23心流 is back up in 70fd07a.


text:
🛑 30我不是咕咕鸽 is down

In c22a239, 30我不是咕咕鸽 (https://blog.laoda.de/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 30我不是咕咕鸽 is back up in de1610e after 30 minutes.


text:
🛑 21Eurkon is down

In f33726b, 21Eurkon (https://blog.eurkon.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 21Eurkon is back up in 9be83f2 after 23 minutes.


text:
🛑 21Eurkon is down

In b7c8da5, 21Eurkon (https://blog.eurkon.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 21Eurkon is back up in 8183db1 after 19 minutes.


text:
use the session to store the random state

When the user isn't logged in self.request.user returns an AnonymousUser which makes the cache_key always be slack:AnonymousUser.
If two people try to login at the same time the first user will get a StateMismatch error as the cache key has been overwritten by the second user.
This PR switches to storing the random state in the session instead so they don't clash.

This change is

However I'm curios about those who use it with cache mechanism, which is set up in the settings, also probably README.md should be updated indicating that cache no longer is a requirement.

Ah yeah good point, I can update the README.md. This change will also require the session middleware

repo: izdi/django-slack-oauth

license: mit


text:
Saving accidentally removes obsolete Entry's previous_msgid

Repro:
# File: a.py
import polib

po_filepath = 'test_po_file.po'
# Create a new PO file
po = polib.POFile()

# Add a fuzzy entry
fuzzy_entry = polib.POEntry(
  msgid='fuzzy_message',
  msgstr='ασαφής_εικόνα',
  previous_msgid='fuzzy_image',
  fuzzy=True,  # Mark as fuzzy
  obsolete=True  # Mark as obsolete
)
po.append(fuzzy_entry)

# Save the PO file
po.save(po_filepath)

The .po file's contents:
#
msgid ""
msgstr ""

#~| msgid "fuzzy_image"
#~ msgid "fuzzy_message"
#~ msgstr "ασαφής_εικόνα"

# file: b.py
import polib

po_filepath = 'test_po_file.po'

# Reopen the PO file
po = polib.pofile(po_filepath)
po.save(po_filepath)

After running b.py
#
msgid ""
msgstr ""

#~ msgid "fuzzy_message"
#~ msgstr "ασαφής_εικόνα"

Oh boy: https://github.com/izimobil/polib/blob/85f6d1cf727452c2fcc7cf15f4c21e273d704b79/polib.py#L1360-L1361
I will try to implement this.

repo: izimobil/polib


text:
get error when call NBPhoneNumberUtil parse method

`
 +(bool)checkPhoneNumber: (NSString *)phone {

    NBPhoneNumberUtil *phoneUtil = [[NBPhoneNumberUtil alloc] init];

    NSError *error = nil;
    NBPhoneNumber *phoneNumber = [phoneUtil parse:@"14155552671" defaultRegion:@"US" error:&error];
    NSLog(@"- isValidNumber [%@]", [phoneUtil isValidNumber:phoneNumber] ? @"YES" : @"NO");

    if (error == nil) {
        return [phoneUtil isValidNumber: phoneNumber];
    } else {
        NSLog(@"Error : %@", [error localizedDescription]);
    }

    return false;
}

`
phoneUtil parse make application crash. and i got an error like below:
'NSInvalidArgumentException', reason: '-[__NSArrayI nb_safeArrayAtIndex:]: unrecognized selector sent to instance 0x60c0003e0800'
in NBPhoneMetadata.m  line33
who can give me some help,  thanks.
libPhoneNumber-iOS (0.9.13)

Getting the same issue. Did anyone get any solution to it?

Same issue...

Found the solution in my case (no ARC project), I have to:

in PROJECT>TARGETS>myAppTarget>Build Settings>Other Linker Flags
Add flag "-ObjC"
in PROJECT Pods>TARGETS>libPhoneNumber-iOS>Build Phases>Compile Sources
Add Compiler Flags for each file "-fobjc-arc"
Works perfect now.

I'm seeing this issue too
crash is in NBPhoneMetaData.m at line 33
_generalDesc = [[NBPhoneNumberDesc alloc] initWithEntry:[entry nb_safeArrayAtIndex:1]];
@slebreton38 your fix didnt make any difference to my app (even after cleaning and clearing derived data)

Had same issue. Tried the "-fobjc-arc" solution above to no avail. I looked into the method nb_safeArrayAtIndex and XCode directed me to the file "NSArray+NBAdditions.h" which came in the submodule update folder. But the same file's .m was not listed in my compile sources. When I added the file "NSArray+NBAdditions.m" to project compile sources, the crash stopped happening. Cheers!

authors: michaelthejohnson navjotbedi nitinalabur slebreton38 xilibro

repo: iziz/libPhoneNumber-iOS


text:
Add support for Kafka

It would be nice to have support for Kafka components: Reader, Writer, etc.

This was in my todo list since I added support for JMS, but I never had time to work on it.
Kafka is awesome and it would be great to have an extension for it.
If you are comfortable with Kafka APIs, you are welcome to submit a pull request. There are only a couple of interfaces to implement. This would be a fantastic contribution!
Let me plan that for next release.

Sure! I have some experience with Kafka and I could help in my free time (that is not that much at the moment :( ). Btw, what is the difference in project organization between the module "easybatch-extensions" and the other root level ones, such as "easybatch-jms"? Where should I place the kafka one?

Oh great news! you are welcome. Do it on your own pace, no worries.
root level modules are for core java (EE) APIs (jdbc, jms, jpa, etc ).
Integrations with third party tools should go under easybatch-extensions.
So for kafka, it should be in the extensions directory (BTW, I add a 'extension' label on the issue if it is a new extension that is requested).

@raulgomis Still willing to contribute a Kafka record reader/writer to Easy Batch?
FTR, I contributed to adding kafka support in Spring Batch and could do it here too. but since you offered to help, I want to give the credit to you, unless you tell me otherwise.
Looking forward to your reply.

Hey @benas !
Thanks for asking! I have an initial version in my fork, I'll finish it during next week and create a PR so that we can discuss it.
Regards,
Raul

Hi @raulgomis ,
If you are still interested in contributing Kafka record reader/writer, please do it in a repo on your side and I will be more than happy to add a reference to it in the home page.
Thank you!
Best regards,
Mahmoud

authors: benas raulgomis

repo: j-easy/easy-batch


text:
Put newly saved tweets to the top of the saved view

Closes #322

Merged, thank you!

repo: j-fbriere/squawker


text:
Rewrote the way to override site config when testing

Look likes that feature doesn't really works 🤔
At least, if the given domain already has a site config defined in graby-site-config, it was impossible to add more config to it.
Now, config which is tested is merged in the existing file (or the file is created) and after the test, the file is reverted (or deleted if it doesn't exist first).

Coverage decreased (-0.05%) to 97.061% when pulling 73b73ab9c8b7e0e777ec15d6f60ddc72558d3ae9 on fix/test-site-config into 3063120ccabfb2e8d65dabde614d4f587e1f24b2 on master.


text:
[Bug] FATA failed to get question data: no cookie found in browser

Verification steps

[X]  我已经在 Issue Tracker 和 Discussion 中找过我要提出的问题 I have searched on the issue tracker and Discussion for a related issue.

leetgo config
language: zh
code:
  lang: go
leetcode:
  site: https://leetcode.cn
#  credentials:
#    from: browser
#editor:
#  use: none

Debug log
2023/06/08 09:39:49 DEBU cache loaded path=/Users/ding/.config/leetgo/cache/leetcode-questions.db time="962.899µs"
2023/06/08 09:39:49 INFO reading cookies from browser domain=leetcode.cn
2023/06/08 09:39:49 DEBU finished read cookies from browser elapsed=9.75268ms
2023/06/08 09:39:49 FATA failed to get question data: no cookie found in browser

Description
I have already login in browser, but the cli cannot get cookie.
The bug both appears on leetcode.cn and leetcode.com
Steps
go install github.com/j178/leetgo@latest
mkdir demo
cd demo
leetgo init -t cn -l go

leetgo pick 1

Which browser are you using?

May I ask which browser are you using? Currently only standard installation of chrome, edge, safari and firefox are supported.

chrome

I don't know why, but when I installed firefox and use it to login leetcode, the cli woks~~

I added some logs in the master branch, can you try
go install github.com/j178/leetgo@master
DEBUG=1 leetgo pick 1

and paste the log here? It may help debugging why leetgo not reading cookies from Chrome. Thanks!

seems the new change breaks the configfile format:

config file format has changed in v1.0, here is the release note, which metioned the breaking change: https://github.com/j178/leetgo/releases/tag/v1.0
I seems leetcode.com has changed its API authentication, I will try to figure out later. For this issue, can you please test it using leetcode.cn instead?
rm -rf ~/.config/leetgo
mkdir demo
cd demo
leetgo init -t cn

After log in through Chrome, please wait for some time (like 30 seconds) before try leetgo pick. Chrome seems not to write the cookies immediately.

@j178 tried the latest version
Works for FireFox but not for Chrome
leetgo pick 1 works even without login - I think pick needs no credentials, just as the behavior on browser(not login, but can view)
So I picked question 1 and test leetgo test 1:

log in leetcode.cn on browser
leetgo test 1 not work, even though I tried 10min later,  neither firefox nor chrome

output for DEBUG=1 leetgo test 1
2023/06/09 10:02:32 DEBU cache loaded path=/Users/ding/.config/leetgo/cache/leetcode-questions.db time=12.380354ms
2023/06/09 10:02:32 DEBU reading cookies browser=safari file=/Users/ding/Library/Cookies/Cookies.binarycookies
2023/06/09 10:02:32 DEBU failed to read cookies error="open /Users/ding/Library/Cookies/Cookies.binarycookies: operation not permitted"
2023/06/09 10:02:32 DEBU reading cookies browser=firefox file="/Users/ding/Library/Application Support/Firefox/Profiles/6idtsv2e.default-1686208684195/cookies.sqlite"
2023/06/09 10:02:32 DEBU no cookie found browser=firefox
2023/06/09 10:02:32 DEBU reading cookies browser=chrome file="/Users/ding/Library/Application Support/Google/Chrome/Default/Network/Cookies"
2023/06/09 10:02:32 DEBU failed to read cookies error="open /Users/ding/Library/Application Support/Google/Chrome/Default/Network/Cookies: no such file or directory"
2023/06/09 10:02:32 DEBU reading cookies browser=chrome file="/Users/ding/Library/Application Support/Google/Chrome/Default/Cookies"
2023/06/09 10:02:32 DEBU no cookie found browser=chrome
2023/06/09 10:02:32 DEBU finished reading cookies elapsed=7.346075ms
2023/06/09 10:02:32 INFO running test remotely question=two-sum user=@leetcode.cn
2023/06/09 10:02:32 DEBU reading cookies browser=safari file=/Users/ding/Library/Cookies/Cookies.binarycookies
2023/06/09 10:02:32 DEBU failed to read cookies error="open /Users/ding/Library/Cookies/Cookies.binarycookies: operation not permitted"
2023/06/09 10:02:32 DEBU reading cookies browser=firefox file="/Users/ding/Library/Application Support/Firefox/Profiles/6idtsv2e.default-1686208684195/cookies.sqlite"
2023/06/09 10:02:32 DEBU no cookie found browser=firefox
2023/06/09 10:02:32 DEBU reading cookies browser=chrome file="/Users/ding/Library/Application Support/Google/Chrome/Default/Network/Cookies"
2023/06/09 10:02:32 DEBU failed to read cookies error="open /Users/ding/Library/Application Support/Google/Chrome/Default/Network/Cookies: no such file or directory"
2023/06/09 10:02:32 DEBU reading cookies browser=chrome file="/Users/ding/Library/Application Support/Google/Chrome/Default/Cookies"
2023/06/09 10:02:32 DEBU no cookie found browser=chrome
2023/06/09 10:02:32 DEBU finished reading cookies elapsed=2.646027ms
2023/06/09 10:02:32 WARN add credentials failed, continue requesting without credentials err="no cookies found in browsers"
2023/06/09 10:02:32 DEBU request method=POST url=https://leetcode.cn/graphql
  body=
  │ {"operationName":"questionData","query":"\n\tquery questionData($titleSlug: String!) {\n\t\tquestion(titleSlug: $titleSlug) {\n\t\t\tquestionId\n\t\t\tquestionFrontendId\n\t\t\tcategoryTitle\n\t\t\ttitle\n\t\t\ttitleSlug\n\t\t\tcontent\n\t\t\tisPaidOnly\n\t\t\ttranslatedTitle\n\t\t\ttranslatedContent\n\t\t\tdifficulty\n\t\t\tstatus\n\t\t\tstats\n\t\t\thints\n\t\t\tsimilarQuestions\n\t\t\tsampleTestCase\n\t\t\texampleTestcases\n\t\t\texampleTestcaseList\n\t\t\tjsonExampleTestcases\n\t\t\tmetaData\n\t\t\tcodeSnippets {\n\t\t\t\tlang\n\t\t\t\tlangSlug\n\t\t\t\tcode\n\t\t\t}\n\t\t\ttopicTags {\n\t\t\t\tname\n\t\t\t\tslug\n\t\t\t\ttranslatedName\n\t\t\t}\n\t\t\teditorType\n\t\t}\n\t}","variables":{"titleSlug":"two-sum"}}

2023/06/09 10:02:32 DEBU response url=https://leetcode.cn/graphql code=200
  headers=
  │ Connection: keep-alive\r
  │ Content-Length: 9739\r
  │ Content-Type: application/json\r
  data="{\"data\":{\"question\":{\"questionId\":\"1\",\"questionFrontendId\":\"1\",\"categoryTitle\":\"Algorithms\",\"title\":\"Two Sum\",\"titleSlug\":\"two-sum\",\"content\":\"
Given an array of integers nums and an integer target, return indices of the two numbers such that they add up to target.
\n\n
You may assume that each input would have exactly one solution, and you may not use the same element twice.
\n\n
You can return the answer in any order.
\n\n

\n
Example 1:
\n\n
\nInput: nums = [2,7,11,15], target = 9\nOutput: [0,1]\nExplanation: Because nums[0] + nums[1] == 9, we return [0, 1].\n
\n\n
Example 2:
\n\n
\nInput: nums = [3,2,4], target = 6\nOutput: [1,2]\n
\n\n
Example 3:
\n\n
\nInput: nums = [3,3], target = 6\nOutput: [0,1]\n
\n\n

\n
Constraints:
\n\n
\n\t
2 <= nums.length <= 104
\n\t
-109 <= nums[i] <= 109
\n\t
-109 <= target <= 109
\n\t
Only one valid answer exists.
\n
\n\n

\nFollow-up: Can you come up with an algorithm that is less than O(n2) time complexity?\",\"isPaidOnly\":false,\"translatedTitle\":\"\u4e24\u6570\u4e4b\u548c\",\"translatedContent\":\"
\u7ed9\u5b9a\u4e00\u4e2a\u6574\u6570\u6570\u7ec4 nums \u548c\u4e00\u4e2a\u6574\u6570\u76ee\u6807\u503c target\uff0c\u8bf7\u4f60\u5728\u8be5\u6570\u7ec4\u4e2d\u627e\u51fa \u548c\u4e3a\u76ee\u6807\u503c target  \u7684\u90a3 \u4e24\u4e2a \u6574\u6570\uff0c\u5e76\u8fd4\u56de\u5b83\u4eec\u7684\u6570\u7ec4\u4e0b\u6807\u3002
\n\n
\u4f60\u53ef\u4ee5\u5047\u8bbe\u6bcf\u79cd\u8f93\u5165\u53ea\u4f1a\u5bf9\u5e94\u4e00\u4e2a\u7b54\u6848\u3002\u4f46\u662f\uff0c\u6570\u7ec4\u4e2d\u540c\u4e00\u4e2a\u5143\u7d20\u5728\u7b54\u6848\u91cc\u4e0d\u80fd\u91cd\u590d\u51fa\u73b0\u3002
\n\n
\u4f60\u53ef\u4ee5\u6309\u4efb\u610f\u987a\u5e8f\u8fd4\u56de\u7b54\u6848\u3002
\n\n

\n\n
\u793a\u4f8b 1\uff1a
\n\n
\n\u8f93\u5165\uff1anums = [2,7,11,15], target = 9\n\u8f93\u51fa\uff1a[0,1]\n\u89e3\u91ca\uff1a\u56e0\u4e3a nums[0] + nums[1] == 9 \uff0c\u8fd4\u56de [0, 1] \u3002\n
\n\n
\u793a\u4f8b 2\uff1a
\n\n
\n\u8f93\u5165\uff1anums = [3,2,4], target = 6\n\u8f93\u51fa\uff1a[1,2]\n
\n\n
\u793a\u4f8b 3\uff1a
\n\n
\n\u8f93\u5165\uff1anums = [3,3], target = 6\n\u8f93\u51fa\uff1a[0,1]\n
\n\n

\n\n
\u63d0\u793a\uff1a
\n\n
\n\t
2 <= nums.length <= 104
\n\t
-109 <= nums[i] <= 109
\n\t
-109 <= target <= 109
\n\t
\u53ea\u4f1a\u5b58\u5728\u4e00\u4e2a\u6709\u6548\u7b54\u6848
\n
\n\n

\n\n
\u8fdb\u9636\uff1a\u4f60\u53ef\u4ee5\u60f3\u51fa\u4e00\u4e2a\u65f6\u95f4\u590d\u6742\u5ea6\u5c0f\u4e8e O(n2) \u7684\u7b97\u6cd5\u5417\uff1f
\n\",\"difficulty\":\"Easy\",\"status\":null,\"stats\":\"{\\"totalAccepted\\": \\"4.5M\\", \\"totalSubmission\\": \\"8.5M\\", \\"totalAcceptedRaw\\": 4519343, \\"totalSubmissionRaw\\": 8548362, \\"acRate\\": \\"52.9%\\"}\",\"hints\":[\"A really brute force way would be to search for all possible pairs of numbers but that would be too slow. Again, it's best to try out brute force solutions for just for completeness. It is from these brute force solutions that you can come up with optimizations.\",\"So, if we fix one of the numbers, say x, we have to scan the entire array to find the next number y which is value - x where value is the input parameter. Can we change our array somehow so that this search becomes faster?\",\"The second train of thought is, without changing the array, can we use additional space somehow? Like maybe a hash map to speed up the search?\"],\"similarQuestions\":\"[{\\"title\\": \\"3Sum\\", \\"titleSlug\\": \\"3sum\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": \\"\\u4e09\\u6570\\u4e4b\\u548c\\", \\"isPaidOnly\\": false}, {\\"title\\": \\"4Sum\\", \\"titleSlug\\": \\"4sum\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": \\"\\u56db\\u6570\\u4e4b\\u548c\\", \\"isPaidOnly\\": false}, {\\"title\\": \\"Two Sum II - Input Array Is Sorted\\", \\"titleSlug\\": \\"two-sum-ii-input-array-is-sorted\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": \\"\\u4e24\\u6570\\u4e4b\\u548c II - \\u8f93\\u5165\\u6709\\u5e8f\\u6570\\u7ec4\\", \\"isPaidOnly\\": false}, {\\"title\\": \\"Two Sum III - Data structure design\\", \\"titleSlug\\": \\"two-sum-iii-data-structure-design\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": \\"\\u4e24\\u6570\\u4e4b\\u548c III - \\u6570\\u636e\\u7ed3\\u6784\\u8bbe\\u8ba1\\", \\"isPaidOnly\\": true}, {\\"title\\": \\"Subarray Sum Equals K\\", \\"titleSlug\\": \\"subarray-sum-equals-k\\", \\"difficulty\\": \\"Medium\\", \\"translatedTitle\\": \\"\\u548c\\u4e3a K \\u7684\\u5b50\\u6570\\u7ec4\\", \\"isPaidOnly\\": false}, {\\"title\\": \\"Two Sum IV - Input is a BST\\", \\"titleSlug\\": \\"two-sum-iv-input-is-a-bst\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": \\"\\u4e24\\u6570\\u4e4b\\u548c IV - \\u8f93\\u5165\\u4e8c\\u53c9\\u641c\\u7d22\\u6811\\", \\"isPaidOnly\\": false}, {\\"title\\": \\"Two Sum Less Than K\\", \\"titleSlug\\": \\"two-sum-less-than-k\\", \\"difficulty\\": \\"Easy\\", \\"translatedTitle\\": \\"\\u5c0f\\u4e8e K \\u7684\\u4e24\\u6570\\u4e4b\\u548c\\", \\"isPaidOnly\\": true}]\",\"sampleTestCase\":\"[2,7,11,15]\n9\",\"exampleTestcases\":\"[2,7,11,15]\n9\n[3,2,4]\n6\n[3,3]\n6\",\"exampleTestcaseList\":[\"[2,7,11,15]\n9\",\"[3,2,4]\n6\",\"[3,3]\n6\"],\"jsonExampleTestcases\":\"[\\"[2,7,11,15]\\n9\\", \\"[3,2,4]\\n6\\", \\"[3,3]\\n6\\"]\",\"metaData\":\"{\n  \\"name\\": \\"twoSum\\",\n  \\"params\\": [\n    {\n      \\"name\\": \\"nums\\",\n      \\"type\\": \\"integer[]\\"\n    },\n    {\n      \\"name\\": \\"target\\",\n      \\"type\\": \\"integer\\"\n    }\n  ],\n  \\"return\\": {\n    \\"type\\": \\"integer[]\\",\n    \\"size\\": 2\n  },\n  \\"manual\\": false\n}\",\"codeSnippets\":[{\"lang\":\"C++\",\"langSlug\":\"cpp\",\"code\":\"class Solution {\npublic:\n    vector<int> twoSum(vector<int>& nums, int target) {\n        \n    }\n};\"},{\"lang\":\"Java\",\"langSlug\":\"java\",\"code\":\"class Solution {\n    public int[] twoSum(int[] nums, int target) {\n\n    }\n}\"},{\"lang\":\"Python\",\"langSlug\":\"python\",\"code\":\"class Solution(object):\n    def twoSum(self, nums, target):\n        \\"\\"\\"\n        :type nums: List[int]\n        :type target: int\n        :rtype: List[int]\n        \\"\\"\\"\"},{\"lang\":\"Python3\",\"langSlug\":\"python3\",\"code\":\"class Solution:\n    def twoSum(self, nums: List[int], target: int) -> List[int]:\"},{\"lang\":\"C\",\"langSlug\":\"c\",\"code\":\"/**\n * Note: The returned array must be malloced, assume caller calls free().\n */\nint* twoSum(int* nums, int numsSize, int target, int* returnSize){\n\n}\"},{\"lang\":\"C#\",\"langSlug\":\"csharp\",\"code\":\"public class Solution {\n    public int[] TwoSum(int[] nums, int target) {\n\n    }\n}\"},{\"lang\":\"JavaScript\",\"langSlug\":\"javascript\",\"code\":\"/**\n * @param {number[]} nums\n * @param {number} target\n * @return {number[]}\n */\nvar twoSum = function(nums, target) {\n\n};\"},{\"lang\":\"Ruby\",\"langSlug\":\"ruby\",\"code\":\"# @param {Integer[]} nums\n# @param {Integer} target\n# @return {Integer[]}\ndef two_sum(nums, target)\n\nend\"},{\"lang\":\"Swift\",\"langSlug\":\"swift\",\"code\":\"class Solution {\n    func twoSum(_ nums: [Int], _ target: Int) -> [Int] {\n\n    }\n}\"},{\"lang\":\"Go\",\"langSlug\":\"golang\",\"code\":\"func twoSum(nums []int, target int) []int {\n\n}\"},{\"lang\":\"Scala\",\"langSlug\":\"scala\",\"code\":\"object Solution {\n    def twoSum(nums: Array[Int], target: Int): Array[Int] = {\n\n    }\n}\"},{\"lang\":\"Kotlin\",\"langSlug\":\"kotlin\",\"code\":\"class Solution {\n    fun twoSum(nums: IntArray, target: Int): IntArray {\n\n    }\n}\"},{\"lang\":\"Rust\",\"langSlug\":\"rust\",\"code\":\"impl Solution {\n    pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {\n\n    }\n}\"},{\"lang\":\"PHP\",\"langSlug\":\"php\",\"code\":\"class Solution {\n\n    /**\n     * @param Integer[] $nums\n     * @param Integer $target\n     * @return Integer[]\n     */\n    function twoSum($nums, $target) {\n\n    }\n}\"},{\"lang\":\"TypeScript\",\"langSlug\":\"typescript\",\"code\":\"function twoSum(nums: number[], target: number): number[] {\n\n};\"},{\"lang\":\"Racket\",\"langSlug\":\"racket\",\"code\":\"(define/contract (two-sum nums target)\n  (-> (listof exact-integer?) exact-integer? (listof exact-integer?))\n\n  )\"},{\"lang\":\"Erlang\",\"langSlug\":\"erlang\",\"code\":\"-spec two_sum(Nums :: [integer()], Target :: integer()) -> [integer()].\ntwo_sum(Nums, Target) ->\n  .\"},{\"lang\":\"Elixir\",\"langSlug\":\"elixir\",\"code\":\"defmodule Solution do\n  @spec two_sum(nums :: [integer], target :: integer) :: [integer]\n  def two_sum(nums, target) do\n\n  end\nend\"},{\"lang\":\"Dart\",\"langSlug\":\"dart\",\"code\":\"class Solution {\n  List<int> twoSum(List<int> nums, int target) {\n\n  }\n}\"}],\"topicTags\":[{\"name\":\"Array\",\"slug\":\"array\",\"translatedName\":\"\u6570\u7ec4\"},{\"name\":\"Hash Table\",\"slug\":\"hash-table\",\"translatedName\":\"\u54c8\u5e0c\u8868\"}],\"editorType\":\"CKEDITOR\"}}}"
⣾ Running test...2023/06/09 10:02:32 DEBU reading cookies browser=safari file=/Users/ding/Library/Cookies/Cookies.binarycookies
2023/06/09 10:02:32 DEBU failed to read cookies error="open /Users/ding/Library/Cookies/Cookies.binarycookies: operation not permitted"
2023/06/09 10:02:32 DEBU reading cookies browser=firefox file="/Users/ding/Library/Application Support/Firefox/Profiles/6idtsv2e.default-1686208684195/cookies.sqlite"
2023/06/09 10:02:32 DEBU no cookie found browser=firefox
2023/06/09 10:02:32 DEBU reading cookies browser=chrome file="/Users/ding/Library/Application Support/Google/Chrome/Default/Network/Cookies"
2023/06/09 10:02:32 DEBU failed to read cookies error="open /Users/ding/Library/Application Support/Google/Chrome/Default/Network/Cookies: no such file or directory"
2023/06/09 10:02:32 DEBU reading cookies browser=chrome file="/Users/ding/Library/Application Support/Google/Chrome/Default/Cookies"
2023/06/09 10:02:32 DEBU no cookie found browser=chrome
2023/06/09 10:02:32 DEBU finished reading cookies elapsed=1.89812ms
2023/06/09 10:02:32 ERRO failed to run test remotely question=two-sum err="failed to run test: no cookies found in browsers"

Thank you!
Something I want for confirm:

Which version of Chrome you are using?
Can you open the leetcode.cn page on Chrome, login in, open the  DevTools (⌥ ⌘ I on macOS), and confirm that there are cookies named LEETCODE_SESSION and csrftoken?

Thank you!
Something I want to confirm:

Which version of Chrome you are using?
Can you open the leetcode.cn page on Chrome, login in, open the  DevTools (⌥ ⌘ I on macOS), and confirm that there are cookies named LEETCODE_SESSION and csrftoken?

chrome: Version 114.0.5735.106 (Official Build) (x86_64)
yes, there are cookies named LEETCODE_SESSION and csrftoken in dev tools.

I reproduced this issue today, and it seems that the root cause is the cookie file is being used by the chrome process.
 leetcode  leetgo whoami
2023/08/04 19:37:47 DEBU reading cookies browser=chrome file="C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies"
2023/08/04 19:37:47 DEBU failed to read cookies error="open C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies: The process cannot access the file because it is being used by another process."
2023/08/04 19:37:47 DEBU reading cookies browser=chrome file="C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Default\Cookies"
2023/08/04 19:37:47 DEBU failed to read cookies error="open C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Default\Cookies: The system cannot find the file specified."
2023/08/04 19:37:47 DEBU reading cookies browser=chrome file="C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Profile 1\Network\Cookies"
2023/08/04 19:37:47 DEBU no cookie found browser=chrome
2023/08/04 19:37:47 DEBU reading cookies browser=chrome file="C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Profile 1\Cookies"
2023/08/04 19:37:47 DEBU failed to read cookies error="open C:\Users\nigel\AppData\Local\Google\Chrome\User Data\Profile 1\Cookies: The system cannot find the file specified."
2023/08/04 19:37:47 DEBU finished reading cookies elapsed=1.5764ms
2023/08/04 19:37:47 FATA no cookies found in browsers

I tried some browsers and it says "The process cannot access the file because it is being used by another process."
when I closed the browser (including backgroud process in task manager)，the leetgo read cookies successfully.
I wonder is it a bug that it only works when there is no browser process is running.

The root cause is that Chrome open its Cookie file in the exclusive mode (set dwShareMode to 0 in CreateFileW), so Windows prevents any process to access the file again.
This problem is specific to Windows and cannot be addressed directly by leetgo.
But I have a workaround. I log into LeetCode using an alertnate browser such as Edge, but I mainly use Chrome, so when I use leetgo, it can read cookies from Edge since it is not running.

The root cause is that Chrome open its Cookie file in the exclusive mode (set dwShareMode to 0 in CreateFileW), so Windows prevents any process to access the file again.
This problem is specific to Windows and cannot be addressed directly by leetgo.
But I have a workaround. I log into LeetCode using an alertnate browser such as Edge, but I mainly use Chrome, so when I use leetgo, it can read cookies from Edge since it is not running.

Is there any way to set something to change the cookie file share mode on Windows? This problem seems to have emerged only in the recent months

Is there any way to set something to change the cookie file share mode on Windows?

As far as I know, there is not.

This problem seems to have emerged only in the recent months

Yes, it worked fine, perhaps Chrome/Chromium changed the Cookies file mode recently.

I am also having trouble using the browser. I had to use cookies and set them in bashrc. Works great that way. I don't know how long leetcode sessions last though.

authors: JesseGuerrero charleszhangjie j178 zrcoder


text:
ne marque pas les amis / comptes

ne semble pas baliser les comptes ... je n'obtiens pas d'erreurs, il ne balise pas, peut-être que je l'ai mal configuré? J'ai ajouté les comptes dans le fichier de configuration

Salut,
j'ai pas compris ce que tu entends par '"baliser les comptes"

Un petit screen de ce que doit faire le bot

Si tu peux faire un petit screen de ce que tu as en afichage et de ta config (en floutant les keys api), je te dis ce qu'il va pas comme ca.

désolé je parle anglais et utilise un traducteur.
Je voulais dire
Marquer des comptes lorsqu'un concours le demande

Tag des comptes quand un concours le demande

oh ok ! we can speak english !
I think the problem is here :
https://github.com/j4rj4r/BotTwitter/blob/60001c854b0a17509252ca3c770d1823f109f785/retweet_giveaway.py#L35-L38
With these regex you can detect if you need to tag or not but they are in french (sorry).
I will move this variable in the configuration file, I will soon translate the readme into English. If you see any translation errors in the script  (comment or print) please let me know. 😄

Thanks! I think that worked. This is a really cool script by the way.

Thanks! I think that worked. This is a really cool script by the way.

        regex_detect_tag = [r"\b(\w*INVITE(E|É)\w*)\b",                             r"\b(\w*TAG(E|É)\w*)\b"                             r"\b(\w*TAGGING\w*)\b",                             r"\b(\w*MENTION(E|É)\w*)\b"]
actually i don't think i changed it correctly?

regex_detect_tag = [r"\b(\w*INVITE(E|É)\w*)\b", r"\b(\w*TAG(E|É|)\w*)\b",  r"\b(\w*TAGGING\w*)\b", r"\b(\w*MENTION(E|É)\w*)\b"]

Maybe like that


text:
🛑 JaKeJu Calibre-Web (direct) is down

In cb5d949, JaKeJu Calibre-Web (direct) ($SECRET_SITE_2:8000) was down:

HTTP code: 0
Response time: 0 ms

Resolved: JaKeJu Calibre-Web (direct) is back up in 16af65f.

repo: ja-m/Mader-Monitoring


text:
add hidden items

add items which are not shown by default but can be searched for.
use case:
have items like
* github myaccount
* github other-account
so that a search for github other matches

fixed with https://github.com/jacksitlab/speed-dial/commit/d021803e1d62899ca29d58a0962f39ced3a5d164

repo: jacksitlab/speed-dial


text:
add dockerization

Add dockerization to tuatara library

Only change about initial design is to use shared library instead of static library
Should really work out-of-the-box without any modification by following the read.me steps
Automatically download libtorch and PyTorch detection recognition models
For information OpenCV build take time .. on my machine it takes an hour and half

Let me know what you think
And any suggestion I'll be happy to modify accordingly

@BBO-repo Great work and thank you for your contribution!
I'm currently building the code and it's taking a very long time on an EC2 t3.xlarge instance.
As you mentioned above, this is because opencv is being built from source. Having such a long build time isn't ideal, can you change it back to using the static opencv build? It's a goal of the project to keep the binary small and eventually remove opencv as only the connect components algorithm is being used.
Also, it's not a goal of the project to target GPU, not at this point at least. The main focus is targeting and optimization for CPU, so I'd prefer to use a lighter weight base image like the plain ubuntu 22.04 image and not nvidia's distribution.

authors: BBO-repo jackvial

repo: jackvial/tuatara


text:
Using self hosted plausible for analytics doesn't work

Describe the bug
When a self hosted plausible analytics instance is configured Quartz uses script.manual.js instead of script.js (automatic)
This requires the site to manually trigger the view event, which Quartz seemingly doesn't do, meaning no analytics are collected at all
To Reproduce
Configure analytics to use self hosted plausible, open generated website and look inside the head tags, you will see it loading https://plausible.example.com/script.manual.js instead of script.js
Expected behavior
The automatic script should be loaded, or a config option should be added to specify a custom script path/URL like you did for GoatCounter, as plausible has multiple scripts that may be helpful in different use cases
Desktop (please complete the following information):

Quartz Version: 4.3.0
node Version: 20.16.0
npm version: 10.5.0
OS: Linux
Browser: Firefox

After messing around further, it seems to have randomly started working(?)
If anyone else faces the same issue as me in the future, these are some of the things I did before it started working;
Clear page data in your browser
Clear cloudflare cache (if you use cloudflare)
Ensure your configured domain includes the https://, for some reason it gets treated as a relative path instead of a domain if you forget this
Get annoyed and make a issue on github, things usually fix themselves after you do this


text:
beforeunload doesn't handle event of back button?

Are you guys going to add this feature later?

This is to do with back/forward cache: https://web.dev/bfcache/#only-add-beforeunload-listeners-conditionally
I've updated the useBeforeunload hook in v2.6.0 to support conditional listening, which addresses this issue. For example:
  useBeforeunload((event) => {
    if (condition) {
      event.preventDefault();
    }
  });

should now be:
  useBeforeunload(condition && ((event) => event.preventDefault()));

or:
  useBeforeunload(condition ? (event) => event.preventDefault() : null);

Related: https://github.com/jacobbuck/react-beforeunload/issues/9#issuecomment-1111979391

authors: Rongeegee jacobbuck

repo: jacobbuck/react-beforeunload


text:
Added the option to filter the nodes and edges used in forceAtlas

Adds the option to specify an edgeFilter and a nodeFilter to the forceAtlas2 layout algorithm. The filters are applied before the nodes and edges are passed to the worker. The filters are matched to the nodes and edges "filterType" property and if they are the same it will be included when doing the layout.
Below is an example of how the demo can be used. The filter in the screenshot removes the dark-green nodes from being a part of the layout.

Since this pullrequest seemed ignore I'll reopen it to bump it.


text:
🛑 Wikiless is down

In 840120a, Wikiless (https://wiki.jae.fi) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wikiless is back up in b5770a7.


text:
Update UI to latest master

Which problem is this PR solving?

Update UI to latest master https://github.com/jaegertracing/jaeger-ui

Short description of the changes

Bump up jaeger-ui commit to the latest master

closed because of the upcoming today's release. Discussed with @albertteoh

repo: jaegertracing/jaeger


text:
v2.4.7/8 bug

I am not sure what exactly is causing this. Will try to figure it out when I get some time.
In the meanwhile, if you can get something out of this error, it would be great!
The same code works fine with 2.4.6. setSeriousness is a meteorMethod in a collection and the same Class has an afterSave event, which seems to be triggering this error.
 => awaited here:
    at Promise.await (/opt/s.portal/app/programs/server/npm/node_modules/meteor/promise/node_modules/meteor-promise/promise_server.js:60:12)
    at [object Object]._.extend.apply (packages/ddp-server/livedata_server.js:1624:22)
    at callStandardMeteorMethod (packages/jagi:astronomy/lib/modules/storage/utils/callStandardMeteorMethod.js:7:21)
    at Class.applyMethod (packages/jagi:astronomy/lib/modules/methods/class_prototype_methods/applyMethod.js:18:10)
    at Class.setSeriousness (packages/jagi:astronomy/lib/modules/methods/utils/wrapMethod.js:23:16)
    at Class.create.events.afterSave (common/imports/api/group/collection.js:398:33)
    at packages/jagi:astronomy/lib/modules/events/class_prototype_methods/dispatch_event.js:43:5
    at arrayEvery (/opt/s.portal/app/programs/server/npm/node_modules/meteor/jagi_astronomy/node_modules/lodash/_arrayEvery.js:16:10)
    at every (/opt/s.portal/app/programs/server/npm/node_modules/meteor/jagi_astronomy/node_modules/lodash/every.js:53:10)
    at Class.dispatchEvent (packages/jagi:astronomy/lib/modules/events/class_prototype_methods/dispatch_event.js:42:3)
    at triggerAfterSave (packages/jagi:astronomy/lib/modules/storage/utils/trigger_after_save.js:5:6)
    at documentUpdate (packages/jagi:astronomy/lib/modules/storage/utils/document_update.js:97:5)
    at Class.save (packages/jagi:astronomy/lib/modules/storage/class_prototype_methods/save.js:144:20)
    at Class.create.meteorMethods.setSeriousness (common/imports/api/group/collection.js:493:10)
    at [object Object].astronomyExecute (packages/jagi:astronomy/lib/modules/methods/meteor_methods/astronomyExecute.js:34:17)

It's hard to tell without reproduction. It looks like the problem is in the meteor-promise package.

The problem arises due to a recursion happening when I run a meteorMethod in afterSave which saves the same document. It happened when I created a new document, after which afterSave ran, modified the doc and then went into an infinite loop.
I am not sure if it is a bug or a problem with my code. But somehow, this code had no issues earlier. Still, I secured my code by moving the change on afterUpdate instead of afterSave, and the problem has gone.
I will try to dig deep later, but for now I will close this.

repo: jagi/meteor-astronomy


text:
[Feature Request] Allow dj/tc/vc to be set in config

Is your feature request related to a problem? Please describe.
It is annoying having to set dj, tc, and/or vc if the bot is ever rebooted. Allow the bot to load these from config.
Describe the solution you'd like
On bot start up, if the settings are preset in config, they should be loaded up.
Describe the basic flow/steps of using this feature
How this feature would be used:
In config, user can map guild id(s) in a one-to-many relationship for:

dj role ids
text channel ids
voice channel ids

User can create these rules for as many guilds as they want to preset.
Have you confirmed that this idea is not already described here?
https://github.com/jagrosh/MusicBot/projects/1
Yes. Found something for consideration https://github.com/jagrosh/MusicBot/projects/1#card-5217438 that this should also take into account.

It sounds like you're running the bot without the right permissions or from a restricted directory, because these things should be saved to serversettings.json whenever you change them.

authors: jagrosh peterthehan

repo: jagrosh/MusicBot


text:
properly encrypt nixos secrets

There are currently multiple problems with secrets and URLs in the configuration:

URLs are not handled in a consistent manner
There's no way for other users of the configuration to see what options need to be provided
Configuration is done for everything, not just for individual services
The user should not be required to provide all secrets to get the configuration to work

Solution:

Configurations for secrets (and non-secrets) should be made as options and filled out using a secrets file
Configurations don't belong in the lib/ folder
Many options don't have to be hidden

https://christine.website/blog/nixos-encrypted-secrets-2021-01-20

https://christine.website/blog/nixos-encrypted-secrets-2021-01-20

https://github.com/hlissner/dotfiles/commit/69d730f89d8900a372a06c05b8e1865e41355b49 try out agenix as a potential solution

done with sops-nix: https://github.com/jakeisnt/nix-cfg/commit/d97f22448dddabdb1504db94a44dede68bd78338

repo: jakeisnt/nix-cfg


text:
Updated react packages to 15.3.2

Have updated the react packages to the latest and fixes for deprecated usage of "createBrowserHistory"

@jakemmarsh Need to "restart build"

authors: georgeneil hisener

repo: jakemmarsh/react-rocket-boilerplate


text:
/member missing?

I think the /member (not members) is missing from https://github.com/PhilipCastiglione/clubhouse_ruby/blob/master/lib/clubhouse_ruby/constants.rb#L29. Maybe I'm missing something otherwise because I can't make it work.

@gcamp - this has been fixed in version 0.10.0

authors: gcamp jakesorce


text:
SSH into server

With Dashboard-Interface it should be possible to ssh into a server and run a script which installs docker and dashboard-server-docker. When this is installed everything else should be controllable from the interface

repo: jakobhviid/Dashboard-Interface-Docker


text:
Add toml.d.ts to files list

Types don't work correctly since the type definition is not included in the npm bundle. This fixes the problem.
As a workaround, in the meantime we can do:
cd node_modules/toml-j0.4 && wget https://raw.githubusercontent.com/jakwings/toml-j0.4/v1.1.1/toml.d.ts

Thanks for the quick merge! I assume you cherry-picked it to master so the PR wasn't marked as merged.
Since you can't publish to npm I published my own version here: https://www.npmjs.com/package/@hoodmane/toml-j0.4
Since I left you as the author and all the links point to you I think it is fairly clear still that it's your package...


text:
Make Styled target and style public

This allows easily accessing and unstyled version of a Styled and allows amending a Style later on.

@jam1garner  All the Style methods require full ownership, so I felt that exposing style completely makes sense. I will work on exposing the target with methods instead and keep style public.


text:
Collection cover url can't be accessed.

Hi!
Thanks for this awesome repo!
I am accessing for my project the cover URL of an array of collections inside a page.
If the cover I set is one that comes from the notion, the URL I get is downloadable, but if the image cover is a custom one, I do get the aws link to the image and it can't be accessed.
Maybe somehow link needs to be signed with a token for credentials and security purposes or something?
Thanks
Cordially,
Bruno

Update:
Found something
cover = collection.cover

url = "https://www.notion.so/image/"+cover+"?table=collection&id={0}&width=300&userId={1}&cache=v2".format(collection_id, self.client.current_user.id)

Will help you access the image. The width parameter can be changed to whatever you want I have been seeing!
Hope this helps someone.

+1

authors: elblogbruno kaedea

repo: jamalex/notion-py


text:
How can I remove a row from the DataTable from within a component inside of a column?

Hello, I have a component inside of a column in a datatable, I've been attempting to use the click: {} using identical code from the documentation, but I've hit some issues.
I have a button inside the component which has
@click="click(data)"
and the components props include
click: {}
Here is the column for this component
{ 	label: 'Action', 	name: '', 	filterable: false, 	component: DataTableAction, 	click: this.deleteRow, 	meta: { 	updateUrl: '/admin/team-members/update/', }
I've noticed that inside of Vue Dev tools I can see the click event being omitted, but the function called deleteRow is not running at all, I was hoping you might be able to tell me where I was going wrong?

Hello,
This is due to the API changing between version 0.2.0 and 0.3.0.
The click event was changed to two new column props:

event (String) e.g. click, focus etc.
handler (Function) the event to fire

Apologies, it looks like i forgot to update the README when adding this feature. Hence the confusion.
View here for a code example.
I'll adjust the README to reflect this tonight.

Hey,
i've updated the README to reflect the 0.3.1 changes. You can see the README changes here 6630662.
The README has been reduced and has a link to the Vue component repo which is up to date.
After reading your title for the issue above, i wondered if you was trying to remove the row using JavaScript, on the client side? Currently this is not possible with the package as it is driven server-side.
Let me know i can help anymore with the issue.

After reading your title for the issue above, i wondered if you was trying to remove the row using JavaScript, on the client side? Currently this is not possible with the package as it is driven server-side.

Hi, I was originally trying to delete a row from the table client-side, currently I have a delete button inside of my action component which I use the @click="click(data)" to pass the row to a method in the data table to send an axios request to delete the row inside of my database.
After this I wanted the data table to update and reflect the change. I couldn't find much on the documentation but I settled with using a vue ref and the line to update the data table.
self.$refs.table.getData();
is there a better solution for this issue?

Currently no, the only other option you would have is to manipulate the url as this is watched by the data table and would also refresh the data but that would be less ideal than your solution.
I am open to any suggestions you may have on improving the functionality though.

authors: discovery-mark jamesdordoy

repo: jamesdordoy/Laravel-Vue-Datatables


text:
Comparison to core.async/promise-chan

Hi James, I see this project has been around for a while.
In the README, you say as part of the rationale that "Channels in core.async are ... inherently mutable." Did core.async/promise-chan exist when you made this? And would you use that or your lib?

I don't think promise-chan existed when I made this package, but it looks like it doesn't quite do the same thing. This package is for doing interop with JS promises, while promise-chan creates a channel with somewhat similar semantics but doesn't do any JS interop. If you need to work with JS promises coming from another library, this package could still be useful and provide something that promise-chan doesn't.

authors: jamesmacaulay theronic

repo: jamesmacaulay/cljs-promises


text:
I used this Library for picking Photo. But problem is After picking in Android it is showing preview Screen, Whether in iOS it is not showing any preview Screen. Can you please check it and let me know. What is the issue here?

Make sure you follow all of the setup directions before posting an issue: https://github.com/jamesmontemagno/MediaPlugin#important-permission-information
If you are creating an issue for a BUG please fill out this information. If you are asking a question or requesting a feature you can delete the sections below.
Failure to fill out this information will result in this issue being closed. If you post a full stack trace in a bug it will be closed, please post it to http://gist.github.com and then post the link here.
Bug Information
Version Number of Plugin:
Device Tested On:
Simulator Tested On:
Version of VS:
Version of Xamarin:
Versions of other things you are using:
Steps to reproduce the Behavior
Expected Behavior
Actual Behavior
Code snippet
Screenshots

I am looking into this issue as well. This will be good, if preview screen (white blank screen) can be removed after selecting images in Android.

Yes It will be good If it will get removed . Then manually we can add preview screen If we want.

repo: jamesmontemagno/MediaPlugin


text:
Convenient Heap use of BBBuffer

It would be good to have a heap allocated version of BBBuffer, that would automatically be dropped when the Producer and Consumer (and all grants) have been dropped.
This should be possible by replacing the NonNull references in the producer or consumer with an Arc reference, and likely providing a constructor for BBBuffer with something like ::new_arc() with the buffer located in something like an Arc<Box<BBBuffer>>.

This would remove the need to use scoped threads with non-static BBBuffers.

repo: jamesmunns/bbqueue


text:
Add function for computing the postcard serialized size of a value

This PR adds a function for computing the size of the postcard serialization of a value, as well as a ton of tests.

oooh this looks like it's on the way to #46?
boop @jamesmunns (plz forgive the boop-ing)

@ryankurte booping always accepted/appreciated!

Closing in favor of #66.

Closing in favor of #66.

@jamesmunns it seems like you made a typo in what you are referencing since you referenced this closed PR. Btw I am seeing if there is a way of "serializing" just the length of the data without serializing the data itself. Rn I could to to_allocvec and get the size of that, but it seems like a waste.

@ChocolateLoverRaj hmm, I'm not sure what PR I was looking for, but there is the MaxSize trait that you can use if your types are bounded. However, there is not a specific way to calculate the actual length without first serializing it if you have unbounded types, like alloc/std::Vec or alloc/std::String (as opposed to types like heapless::Vec or heapless::String, which have a specific upper limit).
Particularly with hand-implemented versions of the Serialize trait, it's difficult (or not possible) to tell what the actual serialized size is without actually exercising the serialize function.
One potential option that would still incur the same CPU effort but at least wouldn't allocate would be to implement a serialization flavor that just throws away the serialized data and just keeps a count of the bytes given to it.

authors: ChocolateLoverRaj jamesmunns lachlansneff-parallel ryankurte

repo: jamesmunns/postcard


text:
when sorting by "priority", I would like to be able to group them and see group headers (Priority1, Priority2)

Is your feature request related to a problem? Please describe.
When I sort by priority, I would like to be able to group by priority as well and see the project name as metadata. This would also apply to grouping by label.
Describe the solution you'd like
See the tasks grouped by priority with Priority Group headers. Ideally, with an "alias" options, I would like to be able to rename "Priority 1" to "urgent".
Describe alternatives you've considered
There are no alternatives
Something like
{
"name": "My Tasks",
"filter": "p1|p2|p3|No priority",
"group": "priority", //or "label" or "project"
"sorting": ["date"],
"alias": {"p1": "Urgent", "p2": "Next"}
}

Hey @rui-nar, you can now do this as of the latest release like so:
filter: "today | overdue"
groupBy: priority


text:
Look into templating for Rust

Would be nice to not have to reinvent the wheel

What do you mean by templating here?

As in templating for code generation. Something that ideally is native in the Rust ecosystem. Think T4 for C#

Looks like the biggest library is https://github.com/Keats/tera

Ended up using https://github.com/ReSpeak/t4rust


text:
Securing communication to planning.domains

Any chance you can swap over the http://*.planning.domains URLs to use https? We should be good to go on the api, solver, and editor fronts. Some relevant searches...

https://github.com/search?q=repo%3Ajan-dolejsi%2Fvscode-pddl+http%3A%2F%2F&type=code
https://github.com/search?q=repo%3Ajan-dolejsi%2Fvscode-pddl+editor.planning&type=code

I used it recently and instructed my students in the course to switch manually as follows in the meantime:

Make sure to select the https option once you save the settings. You can select it by using the correct option shown in screenshot1.
You can use the planning as a service option (like the online option in the https://tinyurl.com/comp90054-pddl that allows the use of multiple online planners)
For that you can change the URL 45.113... for https://paas-uom.org:5001/package

I had to get a domain for the paas plugin to work with https. @jan-dolejsi , you may use that one instead of the IP.

Catching up. Sorry for the delay.
Replacing the http://*.planning.domains URLs with https, it seems that the solver and editor are good, but education is not using the https yet, right?

That's correct, but you don't hot-link there, do you? Heroku has been absolutely infuriating to work with (won't take a pre-paid lump sum, so funding of planning.domains is perched precariously now). I may migrate to DigitalOcean in protest, so there may be some devops headaches in our nearterm future. Can likely get the https working for education, but we shall see.

I had one hyperlink to education in the markdown documentation, or somewhere. Ok, will keep that as is for now.

Updated extension released. Thanks for your patience.

authors: haz jan-dolejsi nirlipo

repo: jan-dolejsi/vscode-pddl


text:
Update Links “tiktok-29”

Automatically generated by Netlify CMS

👷 Deploy Preview for distracted-hoover-7b89cc processing.
🔨 Explore the source changes: bd1e7e24bf66aa02a361a558a2c56efd3683432d
🔍 Inspect the deploy log: https://app.netlify.com/sites/distracted-hoover-7b89cc/deploys/6219eaac59380100073a6ba0

repo: jandae/thejandae-nuxt-netlify


text:
iOS 16

Hey,
For anyone's future reference, the offset is 0x300 for iOS 16.
I couldn't find a reference to the updated value anywhere online and this seems to be the most up-to-date repo.

Same idea, works for iOS 12-iOS 16 https://codeshare.frida.re/@brian-leidos/ios-tls-keylogger-ios-12-16/

For others unable to find /System/Library/Caches/com.apple.dyld, it has moved into the 2nd biggest dmg - https://github.com/Zuikyo/iOS-System-Symbols/issues/32 .

authors: NotSoSuper brian-leidos eyJhb


text:
org.mapdb.DBException$EngineGetVoid: Recid passed to Engine.get() does not exist. Possible data corruption!

final DB db = DBMaker.fileDB(file).fileMmapEnable().fileChannelEnable().asyncWriteEnable().asyncWriteFlushDelay(1000).asyncWriteQueueSize(10000).make();
final BTreeMap<Long,Long> map = db.treeMap("TreeMap");
mapdb version: 2.0-beta2
jvm process : kill -9 xxxx
reopen and read
Exception in thread "main" org.mapdb.DBException$EngineGetVoid: Recid passed to Engine.get() does not exist. Possible data corruption!
at org.mapdb.StoreDirect.indexValGet(StoreDirect.java:1186)
at org.mapdb.StoreWAL.indexValGet(StoreWAL.java:469)
at org.mapdb.StoreWAL.get2(StoreWAL.java:645)
at org.mapdb.Store.get(Store.java:224)
at org.mapdb.BTreeMap$BTreeIterator.advance(BTreeMap.java:1328)
at org.mapdb.BTreeMap.sizeLong(BTreeMap.java:1795)
at org.mapdb.BTreeMap.size(BTreeMap.java:1782)

I just fixed one issue in StoreWAL which could have cause it. But will need more testing.

authors: jankotek lamfire

repo: jankotek/mapdb


text:
Open APIs to get the current test/group and file name from a plugin

Hey !
I started to take a quick look at writing a snapshot testing plugin for Japa.
I was quickly confronted with this problem. It seems to me that we have no API to retrieve the name of the test/group, as well as the name of the file currently executed.
I need this information to write a snapshot file next to the executed test file, and its content must include the name of the executed test.
I think we could have something quite similar to the Tracker (or use this class but maybe split the "report summary generation" aspect into another class).
What do you think about it? Do you have any better recommendations?

From where you want to access this info. Within the scope of the test?

import type { PluginFn } from '@japa/runner'
import { expectTypeOf as expectType } from 'expect-type'
import { expectSnapshot } from './src'

export function snapshot(): PluginFn {
  return function (config, hey, { TestContext, Test, Group, Tracker }) {
     // Just here, in the plugin
    Tracker.currentGroup
    Tracker.currentTest

    TestContext.macro('snapshot', expectSnapshot(config.cwd))
  }
}

Usage would be like :
// my_test.spec.ts
import { test } from '@japa/runner'

test.group('My Group Name', () => {
	test('My Test Name', ({ snapshot }) => {
	   const obj = { foo: 'bar' }

	   snapshot.shouldMatch(obj)
	})
})

And so, the snapshot macro that is attached to the TestContext, when called, will retrieve the name of the file that is currently being tested, the name of the test etc. This will create a file like "my-test.snapshot.ts" next to the original file with the following content:
// my_test.snapshot.ts
exports[`My Group Name > My Test Name`] = "snapshot content ...."

That means that the tracker, or whatever it is called, should provide the following information:

Current group name
Current test name
Current file name

Is it any clearer? Sorry, re-reading my first comment, it was indeed not.

Yup. It is clear now.
Since, you are in the TestContext scope, you can access all of this info as follows.
this.test // instance of test
this.test.parent // instance of group or undefined (for top level tests)
this.test.meta // this will have the filepath property

Oooh it is already possible? Sorry, I didn't notice !
I'll look at it tonight and will close the issue

Works great ! Thanks, I will look better next time 🙌

I would be stoked by a snapshot plugin for Japa, @Julien-R44 . Using snapshots extensively in Jest, this of the few things I'm really missing from Japa. I'd be very interested in hearing about your progress and would certainly be an early adopter :)

I have a little prototype that works but definitely lacks polish and features! I had to put it on pause but I hope to release the first version between mid-december 2022 and February 2023 ( because I'll be on vacation, so I'll have plenty of time to work on it 😋 )

@juni0r a bit late, but here it is 😅
https://github.com/japa/snapshot

@Julien-R44 That's fantastic, I'll give it a try soon. Thanks for letting me know! 🎉

repo: japa/runner