text:
[错误报告]

当前程序版本
2.5.25-fix
问题类型
WebUI
问题描述
之前一直运行的挺好，这两天不知道怎么，没法检测到订阅的更新了
目测代理应该是没问题
发生问题时系统日志
2023-03-13 11:23:34.762494+00:00获取webui最新版本号
2023-03-13 11:23:34.770122+00:00% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
2023-03-13 11:23:34.770160+00:00Dload  Upload   Total   Spent    Left  Speed
2023-03-13 11:23:35.344956+00:000     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  3671  100  3671    0     0   6385      0 --:--:-- --:--:-- --:--:--  6395
2023-03-13 11:23:35.348369+00:00准备下载最新版本webui
2023-03-13 11:23:35.356842+00:00Connecting to ghproxy.com (192.9.234.13:443)
2023-03-13 11:23:36.414783+00:00saving to 'dist.zip'
2023-03-13 11:23:36.483250+00:00dist.zip               7% |**                              | 15603  0:00:11 ETA
2023-03-13 11:23:36.955403+00:00dist.zip             100% |********************************|  193k  0:00:00 ETA
2023-03-13 11:23:36.955470+00:00'dist.zip' saved
2023-03-13 11:23:36.956817+00:00Archive:  ./dist.zip
2023-03-13 11:23:36.977297+00:00creating: dist/
2023-03-13 11:23:36.977361+00:00inflating: dist/favicon.ico
2023-03-13 11:23:36.977395+00:00creating: dist/assets/
2023-03-13 11:23:36.977406+00:00inflating: dist/assets/el-button.170410e4.css
2023-03-13 11:23:36.977418+00:00inflating: dist/assets/index.12f8f260.js
2023-03-13 11:23:36.977429+00:00inflating: dist/assets/index.0be127ec.js
2023-03-13 11:23:36.977441+00:00inflating: dist/assets/index.a6639e6c.css
2023-03-13 11:23:36.977457+00:00inflating: dist/assets/debug.053ff9e4.js
2023-03-13 11:23:36.977472+00:00inflating: dist/assets/YLayout.909c574a.css
2023-03-13 11:23:36.977484+00:00inflating: dist/assets/el-popper.f394526f.css
2023-03-13 11:23:36.977495+00:00inflating: dist/assets/index.d2c24fae.js
2023-03-13 11:23:36.977510+00:00inflating: dist/assets/index.1a7b13ed.css
2023-03-13 11:23:36.977521+00:00inflating: dist/assets/index.1d3bc1da.js
2023-03-13 11:23:36.977533+00:00inflating: dist/assets/index.a44b6412.css
2023-03-13 11:23:36.977543+00:00inflating: dist/assets/el-button.2fb03e61.js
2023-03-13 11:23:36.977554+00:00inflating: dist/assets/index.aafd5d08.js
2023-03-13 11:23:36.977574+00:00inflating: dist/assets/YLayout.7d7a1595.js
2023-03-13 11:23:36.977585+00:00inflating: dist/assets/index.aafefea2.js
2023-03-13 11:23:36.977596+00:00inflating: dist/assets/logo.b7d483a4.png
2023-03-13 11:23:36.977607+00:00inflating: dist/assets/index.70730466.css
2023-03-13 11:23:36.977623+00:00inflating: dist/assets/el-popper.188d4bcb.js
2023-03-13 11:23:36.977638+00:00inflating: dist/index.html
2023-03-13 11:23:36.977650+00:00inflating: dist/robots.txt
2023-03-13 11:23:36.980725+00:00webui下载完成
2023-03-13 11:23:37.458219+00:00[2023-03-13 19:23:37,457] INFO:                     _        ____                                    _
2023-03-13 11:23:37.458292+00:00[2023-03-13 19:23:37,458] INFO:          /\        | |      |  _ \                                  (_)
2023-03-13 11:23:37.458307+00:00[2023-03-13 19:23:37,458] INFO:         /  \  _   _| |_ ___ | |_) | __ _ _ __   __ _ _   _ _ __ ___  _
2023-03-13 11:23:37.458323+00:00[2023-03-13 19:23:37,458] INFO:        / /\ \| | | | __/ _ \|  _ < / _` | '_ \ / _` | | | | '_ ` _ \| |
2023-03-13 11:23:37.458340+00:00[2023-03-13 19:23:37,458] INFO:       / ____ \ |_| | || (_) | |_) | (_| | | | | (_| | |_| | | | | | | |
2023-03-13 11:23:37.458351+00:00[2023-03-13 19:23:37,458] INFO:      /_/    \_\__,_|\__\___/|____/ \__,_|_| |_|\__, |\__,_|_| |_| |_|_|
2023-03-13 11:23:37.458362+00:00[2023-03-13 19:23:37,458] INFO:                                                 __/ |
2023-03-13 11:23:37.458380+00:00[2023-03-13 19:23:37,458] INFO:                                                |___/
2023-03-13 11:23:37.458511+00:00[2023-03-13 19:23:37,458] INFO:     Version 2.5.25-fix  Author: EstrellaXD Twitter: https://twitter.com/Estrella_Pan
2023-03-13 11:23:37.458606+00:00[2023-03-13 19:23:37,458] INFO:     GitHub: https://github.com/EstrellaXD/Auto_Bangumi/
2023-03-13 11:23:37.458628+00:00[2023-03-13 19:23:37,458] INFO:     Starting AutoBangumi...
2023-03-13 11:23:37.644772+00:00[2023-03-13 19:23:37,644] DEBUG:    Re-initializing context...
2023-03-13 11:23:37.644826+00:00[2023-03-13 19:23:37,644] DEBUG:    Re-initializing context...
2023-03-13 11:23:37.644981+00:00[2023-03-13 19:23:37,644] DEBUG:    Parsed user URL: ParseResult(scheme='', netloc='192.168.124.10:28080', path='', params='', query='', fragment='')
2023-03-13 11:23:37.645054+00:00[2023-03-13 19:23:37,644] DEBUG:    Detecting scheme for URL...
2023-03-13 11:23:37.648373+00:00[2023-03-13 19:23:37,648] DEBUG:    Starting new HTTP connection (1): 192.168.124.10:28080
2023-03-13 11:23:37.650440+00:00[2023-03-13 19:23:37,650] DEBUG:    http://192.168.124.10:28080 "HEAD / HTTP/1.1" 200 0
2023-03-13 11:23:37.651170+00:00[2023-03-13 19:23:37,650] DEBUG:    Using HTTP scheme
2023-03-13 11:23:37.651348+00:00[2023-03-13 19:23:37,651] DEBUG:    Base URL: http://192.168.124.10:28080/
2023-03-13 11:23:37.652710+00:00[2023-03-13 19:23:37,652] DEBUG:    Starting new HTTP connection (1): 192.168.124.10:28080
2023-03-13 11:23:37.820056+00:00[2023-03-13 19:23:37,819] DEBUG:    http://192.168.124.10:28080 "POST /api/v2/auth/login HTTP/1.1" 200 3
2023-03-13 11:23:37.821080+00:00[2023-03-13 19:23:37,820] DEBUG:    Login successful
2023-03-13 11:23:37.821349+00:00[2023-03-13 19:23:37,820] DEBUG:    SID: jRo9m8JNFQCdbzNjxPoHeiNNMz9CJcv5
2023-03-13 11:23:37.929980+00:00[2023-03-13 19:23:37,929] DEBUG:    http://192.168.124.10:28080 "POST /api/v2/app/setPreferences HTTP/1.1" 200 0
2023-03-13 11:23:37.933956+00:00[2023-03-13 19:23:37,933] DEBUG:    http://192.168.124.10:28080 "GET /api/v2/rss/items HTTP/1.1" 200 341
2023-03-13 11:23:37.935279+00:00[2023-03-13 19:23:37,934] INFO:     RSS Already exists.
2023-03-13 11:23:37.936444+00:00[2023-03-13 19:23:37,936] INFO:     Start collecting RSS info.
2023-03-13 11:23:37.938478+00:00[2023-03-13 19:23:37,938] DEBUG:    Starting new HTTPS connection (1): mikanani.me:443
2023-03-13 11:23:37.949318+00:00[2023-03-13 19:23:37,948] INFO:     Started server process [1]
2023-03-13 11:23:37.949619+00:00[2023-03-13 19:23:37,949] INFO:     Waiting for application startup.
2023-03-13 11:23:37.950161+00:00[2023-03-13 19:23:37,949] INFO:     Application startup complete.
2023-03-13 11:23:37.950983+00:00[2023-03-13 19:23:37,950] INFO:     Uvicorn running on http://0.0.0.0:8050 (Press CTRL+C to quit)
2023-03-13 11:23:39.434221+00:00[2023-03-13 19:23:39,433] DEBUG:    https://mikanani.me:443 "GET /RSS/MyBangumi?token=soT3yZcdi%2BXi%2BuNROCPRtLkV7KFAMxf43zhwekSm3v0%3D HTTP/1.1" 200 None
2023-03-13 11:23:39.462818+00:00[2023-03-13 19:23:39,462] DEBUG:    Had added Kyokou Suiri in auto_download rule before
2023-03-13 11:23:39.463625+00:00[2023-03-13 19:23:39,463] DEBUG:    Had added 为了养老金去异界存八万金 in auto_download rule before
2023-03-13 11:23:39.464882+00:00[2023-03-13 19:23:39,464] DEBUG:    Had added Kaiko sareta Ankoku Heishi in auto_download rule before
2023-03-13 11:23:39.464980+00:00[2023-03-13 19:23:39,464] DEBUG:    Had added Koori Zokusei Danshi to Cool na Douryou Joshi in auto_download rule before
2023-03-13 11:23:39.465403+00:00[2023-03-13 19:23:39,465] DEBUG:    Had added Koori Zokusei Danshi to Cool na Douryou Joshi in auto_download rule before
2023-03-13 11:23:39.465694+00:00[2023-03-13 19:23:39,465] DEBUG:    Had added Ijiranaide, Nagatoro-san in auto_download rule before
2023-03-13 11:23:39.465921+00:00[2023-03-13 19:23:39,465] DEBUG:    Had added Saikyou Onmyouji no Isekai Tenseiki in auto_download rule before
2023-03-13 11:23:39.466036+00:00[2023-03-13 19:23:39,465] DEBUG:    Had added Otonari no Tenshi-sama in auto_download rule before
2023-03-13 11:23:39.466287+00:00[2023-03-13 19:23:39,466] DEBUG:    Had added Spy Room in auto_download rule before
2023-03-13 11:23:39.466385+00:00[2023-03-13 19:23:39,466] DEBUG:    Had added Oniichan wa Oshimai! in auto_download rule before
2023-03-13 11:23:39.466587+00:00[2023-03-13 19:23:39,466] DEBUG:    Had added Isekai Nonbiri Nouka in auto_download rule before
2023-03-13 11:23:39.466736+00:00[2023-03-13 19:23:39,466] DEBUG:    Had added Hyouken no Majutsushi ga Sekai wo Suberu in auto_download rule before
2023-03-13 11:23:39.466985+00:00[2023-03-13 19:23:39,466] DEBUG:    Had added Danmachi in auto_download rule before
2023-03-13 11:23:39.467277+00:00[2023-03-13 19:23:39,466] DEBUG:    Had added Ooyukiumi no Kaina in auto_download rule before
2023-03-13 11:23:39.467410+00:00[2023-03-13 19:23:39,467] DEBUG:    Had added Tomo-chan wa Onnanoko! in auto_download rule before
2023-03-13 11:23:39.467691+00:00[2023-03-13 19:23:39,467] DEBUG:    Had added Bofuri in auto_download rule before
2023-03-13 11:23:39.467761+00:00[2023-03-13 19:23:39,467] DEBUG:    Had added Tensei Oujo to Tensai Reijou no Mahou Kakumei in auto_download rule before
2023-03-13 11:23:39.467973+00:00[2023-03-13 19:23:39,467] DEBUG:    Had added Majutsushi Orphen Hagure Tabi in auto_download rule before
2023-03-13 11:23:39.468390+00:00[2023-03-13 19:23:39,468] DEBUG:    Had added Tondemo Skill de Isekai Hourou Meshi in auto_download rule before
2023-03-13 11:23:39.468545+00:00[2023-03-13 19:23:39,468] DEBUG:    Had added Ningen Fushin in auto_download rule before
2023-03-13 11:23:39.468776+00:00[2023-03-13 19:23:39,468] DEBUG:    Had added Ayakashi Triangle in auto_download rule before
2023-03-13 11:23:39.468906+00:00[2023-03-13 19:23:39,468] DEBUG:    Had added Mononogatari in auto_download rule before
2023-03-13 11:23:39.469040+00:00[2023-03-13 19:23:39,468] DEBUG:    Start adding rules.
2023-03-13 11:23:39.469297+00:00[2023-03-13 19:23:39,468] DEBUG:    Finished.
2023-03-13 11:23:39.469369+00:00[2023-03-13 19:23:39,469] INFO:     Finished
2023-03-13 11:23:39.469710+00:00[2023-03-13 19:23:39,469] INFO:     Running....
2023-03-13 11:23:39.474596+00:00[2023-03-13 19:23:39,474] DEBUG:    Saved
2023-03-13 11:23:39.483717+00:00[2023-03-13 19:23:39,483] DEBUG:    http://192.168.124.10:28080 "POST /api/v2/torrents/info HTTP/1.1" 200 3277
2023-03-13 11:23:39.488945+00:00[2023-03-13 19:23:39,488] DEBUG:    Checked 2 files
2023-03-13 11:23:41.506458+00:00INFO:     192.168.124.200:4284 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:23:41.974749+00:00INFO:     192.168.124.200:4284 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:23:45.383382+00:00INFO:     192.168.124.200:4284 - "GET / HTTP/1.1" 200 OK
2023-03-13 11:23:45.506211+00:00INFO:     192.168.124.200:4284 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:23:50.487937+00:00INFO:     192.168.124.200:4284 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:23:55.490653+00:00INFO:     192.168.124.200:4284 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:00.499898+00:00INFO:     192.168.124.200:4325 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:05.501197+00:00INFO:     192.168.124.200:4325 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:10.500905+00:00INFO:     192.168.124.200:4325 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:15.502820+00:00INFO:     192.168.124.200:4325 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:20.499216+00:00INFO:     192.168.124.200:4325 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:25.491277+00:00INFO:     192.168.124.200:4325 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:30.502150+00:00INFO:     192.168.124.200:4408 - "GET /api/v1/log HTTP/1.1" 200 OK
2023-03-13 11:24:40.496333+00:00INFO:     192.168.124.200:4430 - "GET /api/v1/log HTTP/1.1" 200 OK

是否被过滤规则过滤了

是否被过滤规则过滤了

我看了一下规则，只有720|\d+-\d+
而且这1月新番，前面都下的挺好的，最近突然就没了

是否被过滤规则过滤了

我看了一下规则，只有720|\d+-\d+
而且这1月新番，前面都下的挺好的，最近突然就没了

下载问题请检查 QB

是否被过滤规则过滤了

我看了一下规则，只有720|\d+-\d+
而且这1月新番，前面都下的挺好的，最近突然就没了

下载问题请检查 QB

我qb好久没动过了，就一直挂着下呢，我看qb的订阅里面也没有最近更新的集数

是否被过滤规则过滤了

我看了一下规则，只有720|\d+-\d+
而且这1月新番，前面都下的挺好的，最近突然就没了

下载问题请检查 QB

我qb好久没动过了，就一直挂着下呢，我看qb的订阅里面也没有最近更新的集数

说明是 RSS 问题

是否被过滤规则过滤了

我看了一下规则，只有720|\d+-\d+
而且这1月新番，前面都下的挺好的，最近突然就没了

下载问题请检查 QB

我qb好久没动过了，就一直挂着下呢，我看qb的订阅里面也没有最近更新的集数

说明是 RSS 问题

我刚才又测试了一下，再蜜柑里面订阅新的番剧，是能下载的，但是上个月订阅的更新了，没有开始下载

已解决
原因是超出了QBit里面的  “每个订阅源文章数目最大值”
删除rss后重新添加即可，顺便也改了一下设置中的最大值

authors: ChenAlien EstrellaXD


text:
Static Linking

I recently found this project.  I like that it seems to follow along the lines of Godot as a Godot user.  I got my own little hello world not really much, not at this point anyway.  I am wanting to make sure that I can compile it correctly.  I seem to be having a time with trying to compile with static linking.
I am running two rigs.  One is KDE Neon and the other is Win 10.  No cross platform tooling, straight native compilation.  Running the same version of Nim on both, 1.4.8 and using nodesnim 0.4.
I am keeping all of the SDL and Freeglut .a files in a folder called lib in my project folder.
I am running the following command on both:
nim  c --dynlibOverride:SDL2 --passL: "-L lib/" main.nim
I seem to be getting compilation errors related to undefined reference of SDL_SetCursor and SDL_CreateSystemCursor with several files within nodesnim.  However, just compiling without dynlibOvveride and passL, everything runs fine on both OSs.  Am I missing something with the linker flag for both of them? Or is statically linking not possible?
Appreciate the project and looking forward to working with it.
Thanks for the help.

freeglut has long been removed from dependencies.
and follow it: https://github.com/nim-lang/sdl2#static-linking-sdl2
It's works for me.

it pulled in 0.0.6

For some reason nimble is pulling the wrong version. I have no idea what it might be.
Try it for KDE Neon https://github.com/nim-lang/sdl2#linux

Hmmm, I think this is a function of my knowing just enough to cause damage.  I'm still at the same point with Linux.  Just compiling works, but trying to link statically will compile, but it's the same size binary as before, so I doubt anything extra is getting in there.  Windows passL that is mentioned on the nim-SDL bindings actually throws compiler errors.  Some flags aren't recognized.  I remove those and keep the rest and it compiles, but same as before, just the same size binary.
I tried just moving the SDL.dlls next to the compiled binary and that worked for those, but I was coming up with other .dlls that are missing that aren't apart of what I got from the various SDL libs (image, mixer, main etc).
What would be the basic --dynlibOveride and --passL for Linux and windows just for the main SDL library itself, just something that I could go from?
I was thinking that the full command would be something like:
nim c --dynlibOverride:libSDL2 --passL:"-lSDL2 -lSDL2main" main.nim
for --dynlibOverride, I also tried just SDL2 as well with the same results.
While that does compile, it doesn't add anything to the binary.  To get this to work, should I actually be compiling SDL from source to allow linking in such a manner?  I just was using the MS binaries from SDL and my package manager for Neon.

Do you compile SDL dll libs on Linux by any chance?
https://github.com/Ethosa/nodesnim/blob/master/src/nodesnim/thirdparty/sdl2.nim#L15-L22

No, I have yet to compile the libs for either platform.  I got the dev libraries for Linux via the package manager and I got the runtime only binaries from SDL website for Windows.  I put the Windows dlls in the .nimble/bin location as well.
I did update yesterday to Nim 1.6.0 (I just noticed that a new version came out 2 days ago).

I tried compiling with https://stackoverflow.com/questions/69158045/static-link-sdl2-on-linux
and also got this warning.

So, just for giggles, I tried to see if I could come up with a bash script to handle the dependencies in a folder called "lib" that would travel with the binary.
The script that I tried was:
#!/bin/sh
export DIRNAME="$(dirname "$(readlink -f "$0")")"
export SYSTEM_LD_LIBRARY_PATH="$LD_LIBRARY_PATH"
export MAIN_ASSETS_DIR="$DIRNAME/assets/"
cd "$DIRNAME"
export LD_LIBRARY_PATH="$DIRNAME/lib:$LD_LIBRARY_PATH"
"$DIRNAME/bin/main" "$@"
But alas, it was not meant to be.  The program still just kept on telling me that libSDL was not found etc.

source: gharchive/issue

authors: Ethosa wwderw

repo: Ethosa/nodesnim

license: MIT

license_type: permissive

license_source: github-api


text:
No keyboard input.

Version: 1.0.92
Platform: darwin 18.7.0
Plugins: none
Keyboard input does not work at all. I can't type in my local terminal or in SSH. The macOS system terminal works. Originally, I copied the terminus config from my old laptop, and to troubleshoot I reverted to default, but still with no luck. Here is my current config:

Config file
hotkeys:
  settings:
    - '⌘-,'
  ssh:
    - Alt-S
  ctrl-c:
    - Ctrl-C
  copy:
    - ⌘-C
  paste:
    - ⌘-V
  clear:
    - ⌘-K
  zoom-in:
    - ⌘-=
    - ⌘-Shift-=
  zoom-out:
    - ⌘--
    - ⌘-Shift--
  reset-zoom:
    - ⌘-0
  new-tab:
    - ⌘-T
    - ⌘-N
  home:
    - ⌘-Left
    - Home
  end:
    - ⌘-Right
    - End
  previous-word:
    - ⌥-Left
  next-word:
    - ⌥-Right
  delete-previous-word:
    - ⌥-Backspace
  delete-next-word:
    - ⌥-Delete
  search:
    - ⌘-F
  shell:
    __nonStructural: true
  profile:
    __nonStructural: true
  new-window:
    - ⌘-N
  toggle-window:
    - Ctrl+Space
  toggle-fullscreen:
    - Ctrl+⌘+F
  close-tab:
    - ⌘-W
  toggle-last-tab: []
  rename-tab:
    - ⌘-R
  next-tab:
    - Ctrl-Tab
  previous-tab:
    - Ctrl-Shift-Tab
  tab-1:
    - ⌘-1
  tab-2:
    - ⌘-2
  tab-3:
    - ⌘-3
  tab-4:
    - ⌘-4
  tab-5:
    - ⌘-5
  tab-6:
    - ⌘-6
  tab-7:
    - ⌘-7
  tab-8:
    - ⌘-8
  tab-9:
    - ⌘-9
  tab-10:
    - ⌘-0
  split-right:
    - ⌘-Shift-D
  split-bottom:
    - ⌘-D
  split-left: []
  split-top: []
  pane-nav-right:
    - ⌘-⌥-Right
  pane-nav-down:
    - ⌘-⌥-Down
  pane-nav-up:
    - ⌘-⌥-Up
  pane-nav-left:
    - ⌘-⌥-Left
  close-pane:
    - ⌘-Shift-W
ssh:
  connections:
    - name: [redacted]
      host: [redacted]
      port: 22
      user: [redacted]
      algorithms:
        hmac:
          - hmac-sha2-256
          - hmac-sha2-512
          - hmac-sha1
        kex:
          - ecdh-sha2-nistp256
          - ecdh-sha2-nistp384
          - ecdh-sha2-nistp521
          - diffie-hellman-group-exchange-sha256
          - diffie-hellman-group14-sha1
        cipher:
          - aes128-ctr
          - aes192-ctr
          - aes256-ctr
          - aes128-gcm
          - aes128-gcm@openssh.com
          - aes256-gcm
          - aes256-gcm@openssh.com
        serverHostKey:
          - ssh-rsa
          - ecdsa-sha2-nistp256
          - ecdsa-sha2-nistp384
          - ecdsa-sha2-nistp521
      privateKey: [redacted]
      group: null
    - name: [redacted]
      host: [redacted]
      port: [redacted]
      user: [redacted]
      algorithms:
        hmac:
          - hmac-sha2-256
          - hmac-sha2-512
          - hmac-sha1
        kex:
          - ecdh-sha2-nistp256
          - ecdh-sha2-nistp384
          - ecdh-sha2-nistp521
          - diffie-hellman-group-exchange-sha256
          - diffie-hellman-group14-sha1
        cipher:
          - aes128-ctr
          - aes192-ctr
          - aes256-ctr
          - aes128-gcm
          - aes128-gcm@openssh.com
          - aes256-gcm
          - aes256-gcm@openssh.com
        serverHostKey:
          - ssh-rsa
          - ecdsa-sha2-nistp256
          - ecdsa-sha2-nistp384
          - ecdsa-sha2-nistp521
      scripts: []
      group: null
      privateKey: [redacted]
    - name: [redacted]
      host: [redacted]
      port: 22
      user: [redacted]
      algorithms:
        hmac:
          - hmac-sha2-256
          - hmac-sha2-512
          - hmac-sha1
        kex:
          - ecdh-sha2-nistp256
          - ecdh-sha2-nistp384
          - ecdh-sha2-nistp521
          - diffie-hellman-group-exchange-sha256
          - diffie-hellman-group14-sha1
        cipher:
          - aes128-ctr
          - aes192-ctr
          - aes256-ctr
          - aes128-gcm
          - aes128-gcm@openssh.com
          - aes256-gcm
          - aes256-gcm@openssh.com
        serverHostKey:
          - ssh-rsa
          - ecdsa-sha2-nistp256
          - ecdsa-sha2-nistp384
          - ecdsa-sha2-nistp521
      scripts: []
      privateKey: [redacted]
      group: null
    - name: [redacted]
      host: [redacted]
      port: 22
      user: [redacted]
      algorithms:
        hmac:
          - hmac-sha2-256
          - hmac-sha2-512
          - hmac-sha1
        kex:
          - ecdh-sha2-nistp256
          - ecdh-sha2-nistp384
          - ecdh-sha2-nistp521
          - diffie-hellman-group-exchange-sha256
          - diffie-hellman-group14-sha1
        cipher:
          - aes128-ctr
          - aes192-ctr
          - aes256-ctr
          - aes128-gcm
          - aes128-gcm@openssh.com
          - aes256-gcm
          - aes256-gcm@openssh.com
        serverHostKey:
          - ssh-rsa
          - ecdsa-sha2-nistp256
          - ecdsa-sha2-nistp384
          - ecdsa-sha2-nistp521
      scripts: []
      privateKey: [redacted]
      group: null
    - name: [redacted]
      host: [redacted]
      port: 22
      user: [redacted]
      algorithms:
        hmac:
          - hmac-sha2-256
          - hmac-sha2-512
          - hmac-sha1
        kex:
          - ecdh-sha2-nistp256
          - ecdh-sha2-nistp384
          - ecdh-sha2-nistp521
          - diffie-hellman-group-exchange-sha256
          - diffie-hellman-group14-sha1
        cipher:
          - aes128-ctr
          - aes192-ctr
          - aes256-ctr
          - aes128-gcm
          - aes128-gcm@openssh.com
          - aes256-gcm
          - aes256-gcm@openssh.com
        serverHostKey:
          - ssh-rsa
          - ecdsa-sha2-nistp256
          - ecdsa-sha2-nistp384
          - ecdsa-sha2-nistp521
      scripts: []
      privateKey: [redacted]
      group: null
    - name: [redacted]
      host: [redacted]
      port: 22
      user: [redacted]
      algorithms:
        hmac:
          - hmac-sha2-256
          - hmac-sha2-512
          - hmac-sha1
        kex:
          - ecdh-sha2-nistp256
          - ecdh-sha2-nistp384
          - ecdh-sha2-nistp521
          - diffie-hellman-group-exchange-sha256
          - diffie-hellman-group14-sha1
        cipher:
          - aes128-ctr
          - aes192-ctr
          - aes256-ctr
          - aes128-gcm
          - aes128-gcm@openssh.com
          - aes256-gcm
          - aes256-gcm@openssh.com
        serverHostKey:
          - ssh-rsa
          - ecdsa-sha2-nistp256
          - ecdsa-sha2-nistp384
          - ecdsa-sha2-nistp521
      scripts: []
      privateKey: [redacted]
      group: null
terminal:
  font: Fira Code
  shell: default
  profile: user-default
  frontend: xterm
  autoOpen: false
  fontSize: 18
  fallbackFont: null
  linePadding: 0
  bell: 'off'
  bracketedPaste: false
  background: theme
  ligatures: true
  cursor: beam
  cursorBlink: true
  customShell: ''
  rightClick: menu
  copyOnSelect: false
  scrollOnInput: true
  workingDirectory: ''
  alwaysUseWorkingDirectory: false
  altIsMeta: false
  colorScheme:
    __nonStructural: true
    name: Material
    foreground: '#eceff1'
    background: 'rgba(38, 50, 56, 1)'
    cursor: '#FFCC00'
    colors:
      - '#000000'
      - '#D62341'
      - '#9ECE58'
      - '#FAED70'
      - '#396FE2'
      - '#BB80B3'
      - '#2DDAFD'
      - '#d0d0d0'
      - 'rgba(255, 255, 255, 0.2)'
      - '#FF5370'
      - '#C3E88D'
      - '#FFCB6B'
      - '#82AAFF'
      - '#C792EA'
      - '#89DDFF'
      - '#ffffff'
  customColorSchemes: []
  environment: {}
  profiles: []
  useConPTY: true
  recoverTabs: true
pluginBlacklist: []
appearance:
  dock: 'off'
  dockScreen: current
  dockFill: 0.5
  tabsLocation: top
  cycleTabs: true
  theme: Standard
  frame: thin
  css: '/* * { color: blue !important; } */'
  opacity: 1
  vibrancy: true
  vibrancyType: blur
enableAnalytics: false
enableWelcomeTab: false
electronFlags:
  - - force_discrete_gpu
    - '0'
enableAutomaticUpdates: true

And in case it's relevant, here's my bash profile:

Bash profile
export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\]\h:\[\033[33;1m\]\w\[\033[m\]\$ "
export CLICOLOR=1
export LSCOLORS=ExFxBxDxCxegedabagacad
alias ls='ls -GFh'

Any help would be greatly appreciated. I love this app!

I actually found this error every time a key is pressed in the debug tools:
errors.ts:35 ERROR TypeError: value.map is not a function
    at HotkeysService.getHotkeysConfigRecursive (hotkeys.service.ts:207)
    at HotkeysService.getHotkeysConfigRecursive (hotkeys.service.ts:198)
    at HotkeysService.getHotkeysConfig (hotkeys.service.ts:190)
    at HotkeysService.getCurrentPartiallyMatchedHotkeys (hotkeys.service.ts:118)
    at keyboardEventHandler (xtermFrontend.ts:61)
    at t.eval [as _customKeyEventHandler] (xtermFrontend.ts:81)
    at t._keyDown (VM697 57:1)
    at HTMLTextAreaElement.eval (VM697 57:1)
    at ZoneDelegate.invokeTask (/Users/jesse.wisener/Applications/Terminus.app/Contents/Resources/app.asar/node_modules/zone.js/dist/zone.js:423)
    at Object.onInvokeTask (ng_zone.ts:262)

Can you try removing following from the config file?
  shell:
    __nonStructural: true
  profile:
    __nonStructural: true

That worked! But why?
Thanks for your assistance.

These are not actual options and will break hotkey detection - it shouldn't have even been shown in the UI where you copied it from

Great! Thank you for your insight and assistance.

repo: Eugeny/terminus

license: mit

license_source: bigquery


text:
Plotly widget not showing figure

I am trying to employ plotly but the widget which should show the figure gets stuck on a waiting animation.
My context file:
from damnit_ctx import Variable
import plotly.graph_objects as go

@Variable(title="Plotly")
def get_plotly(run):
    # Sample data
    x = [1, 2, 3, 4, 5]
    y = [10, 14, 12, 16, 15]

    # Create a scatter plot
    fig = go.Figure(data=go.Scatter(x=x, y=y, mode='markers'))

    # Add titles and labels
    fig.update_layout(
        title='Simple Scatter Plot',
        xaxis_title='X-Axis',
        yaxis_title='Y-Axis'
    )

    return fig

Created column and mouse-hover preview is quite promising:

But when I double-click on the cell, a new widget is opened but stucks on waiting animation. The app itself is working, I can close the widget, the waiting circle is spinning but the figure is never generated.

I am using Ubuntu, I tried several ways to open the gui: FastX in browser (Chrome, Firefox), ssh -X from terminal, as well as FastX app from https://confluence.desy.de/display/IS/FastX3_258905161.html. I tried also different figure settings all with the same result.
Thank you for your help

Hi,
Could you try setting the following environment variable before starting the gui:
export QTWEBENGINE_CHROMIUM_FLAGS=--no-sandbox
amore-proto gui

Great, thank you. Figures are now well generated.
It works great in a browser but for use in the desktop app this setings somehow ruins scale factor of the entire app (before -> now):

However, setting export QT_AUTO_SCREEN_SCALE_FACTOR=1 and restarting the app solved the issue.

Thanks for your feedback.
I'll just reopen the issue until we have it fixed.

the desktop app this setings somehow ruins scale factor of the entire app

I could not reproduce this issue,
@vojtavozda what OS are you using, and where are you running the damnit gui (locally or on Maxwell)?

Ubuntu 24.04. When I ran the gui from the browser FastX or Maxwell via ssh -X username@max-exfl-display.desy.de there was no scaling issue. But when I ran the app localy it was present. I got the app from here (StarNet_FastX3/client/3.3/FastX3-3.3.60.rhel7.x86_64.tar.gz)

authors: tmichela vojtavozda

repo: European-XFEL/DAMNIT


text:
initialize COLORS with an empty string

it seems to fix an error during early boot "color 0: invalid color".
see https://github.com/EvanPurkhiser/mkinitcpio-colors/issues/3

Thank you very much :)

source: gharchive/pull-request

authors: EvanPurkhiser ohnonot

repo: EvanPurkhiser/mkinitcpio-colors


text:
Are you sure that this.sortCorners() call should be inside the cycle?

I have moved this.sortCorners() in diagram.js down two lines out of the for loop. Looks like the code works the same, but thousand time faster.

I was wondering why this was running so slow. A simple fix and it absolutely should not be in that loop. Good catch thanks.

authors: Evelios baturinsky

repo: Evelios/procIsland


text:
下载到视频后只有声音，没有画面

使用接口获取到的视频链接，有些视频下载到本地后只有声音，没有画面，何解？

请提供详细上下文信息。

就是用接口返回的 bit_rate 里的 play_addr.urlList 里的链接，用 axios 下载到本地，有些会视频会只有声音没有画面
感觉是抖音做了防盗策略，看有啥办法可以绕过吗

在window电脑上nodejs环境，请求接口：https://api.tikhub.io/#/Douyin-App-V3-API/fetch_user_like_videos_api_v1_douyin_app_v3_fetch_user_like_videos_get
获取到用户主页视频list，然后遍历下载
下载的视频有些是好的，有些只有声音没有画面，看了下文件大小是正常的

你好，这里不处理任何有关TikHub.io服务的问题，请到Discord社区中向客服请求技术支持。


text:
How to Handle errors

Hi There,
I'm using your module within a Powershell script, on of the steps in the script decrypts a file with your module. If I use the right key the file is decrypted ok and creates the file (i.e. file.txt), however, if I use the wrong key, the module does not decrypt the file but it still creates an empty output file (i.e. empty file.txt). To validate success of the decryption I'm validating that the decrypted file has been created.
Is there a way I can ask the module not to crete the empty file when it fails to decrypt the file?
Thanks for this module and your help with this issue!

Does it show a warning when you use it when the empty file happens? What happens if you use -ErrorAction Stop ?

I cannot find the option to use -ErrorAction

JUst type it. DoWhatever -ErrorAction Stop -> it will workYou can than do try/catch on it and process any error

repo: EvotecIT/PSPGP


text:
Refactoring and Profile Completion

Refactored
Landing Page

Created new folder landing_page

Moved components to landing page
Fixed bug where One of the Creator's card was too big
Can add more creators dynamically now

Main Chat Page

Created new folder main_chat

Moved components related to Home chat to there
Home.js still in src

Created new folder other_user_modal

Created this for the Github Stats/Profile Modal, because there were too many nested components
Can directly edit the Github Stats section instead of having to dig through code

Added
Package

Octokit
Octokit core for github stats

Profile, issue #49

Basic Profile done, solves #49 Upto 85%
Can view other user's profile
Can view some github stats

TODO task (I suggest @manastelavane)

Use the response from Github to create more Github stats like Total stars, favorite language and so on.

Need to read the Github OctoCat API
Create custom UI in the GithubStats component

do something please

@TheBrahmnicBoy I suggest to use this api - https://github.com/anuraghazra/github-readme-stats/blob/master/themes/README.md

Done ✅

Removed
Dependency

Octokit

Preview
Light Mode

Dark Mode

This is perfect, Great Work!

authors: TheBrahmnicBoy vishal-codes

repo: Evozone/dev-call


text:
code completion not working as expected

Here are some of the logs in codeium-log
E0322 08:17:09.691283 30886 prompt.go:142] Error checking for empty block node start: UseTreeSitter: astNodeCaseUnspecified or node is null
E0322 08:17:09.691296 30886 prompt.go:150] Failed to determine if multiline completions should be requested.
E0322 08:17:26.507256 30886 prompt.go:478] Error getting sibling functions: UseTreeSitter: no function parent found at offset 26

Is this expected behaviour?
These three errors pretty consistent in my case.

These are not really errors per se and they shouldn't affect the plugin's functionality at all. You can safely ignore them (and on our end we should probably stop logging them as errors or at all).


text:
Moving post analysis scripts to new folder

They should not be in src/qfit.

This was closed by #84 .

authors: blake-riley stephaniewankowicz


text:
[$250]  iOS - Random avatar color changes after creating a group for a new user

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Issue was found when executing #9963
Action Performed:

Click FAB > New Group
Select a user you've never had a chat with
Add 2 more users and create a group

Expected Result:
Randomly generated avatar color should be same when selecting a user to create a group and after group chat initiated
Actual Result:
Avatar color is different in the group chat than initially selected
Workaround:
Unknown
Platform:

Where is this issue occurring?

iOS

Version Number: 1.1.87-8
Reproducible in staging?: y
Reproducible in production?: y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/182487886-f1f6816a-a1dd-41de-a6fa-99c07f0bf160.mp4
Expensify/Expensify Issue URL:
Issue reported by:
Applause internal team
Slack conversation:
View all open jobs on GitHub

When you are entering the name on the New Group page, name starts with uppercase letter. When you're on Details page, name starts with lowercase letter. getDefaultAvatar is case sensitive, those are two different name, hence two different colors.
If that is not the expected behavior, all that's needed is changing this line in getDefaultAvatar
function getDefaultAvatar(login = '') {
    // There are 8 possible default avatars, so we choose which one this user has based
    // on a simple hash of their login (which is converted from HEX to INT)
-   const loginHashBucket = (parseInt(md5(login).substring(0, 4), 16) % 8) + 1;
+   const loginHashBucket = (parseInt(md5(login.toLowerCase()).substring(0, 4), 16) % 8) + 1;
    return `${CONST.CLOUDFRONT_URL}/images/avatars/avatar_${loginHashBucket}.png`;
}

Hey @kavimuru, heads up we skipped a few steps with this one -  this (and all new issues) should get the Auto Assigner Triage label first, then the assigned triager will apply the Engineering label 😊.

There was discussion on https://github.com/Expensify/App/issues/9876#issuecomment-1208678371 and we determined this was not caused by a regression, so treating this as a normal job.
Posted to Upwork: https://www.upwork.com/jobs/~01c69c0915df9c82b8
@rushatgabhane heads up there is a proposal on this one already: https://github.com/Expensify/App/issues/10220#issuecomment-1203529729

Proposal
This happens when email is capitalized (first letter is uppercased). Email is usually capitalized because search input component (TextInput)'s autoCapitalize prop is not set, which means 'sentences' as default. If this prop is set as 'none', any input such as email will not be capitalized unless user input uppercased letter manually. But search keyword can be person name as well so capitalize is normal.
This is the main issue:
When "Create group" button is triggered, DeprecatedAPI.CreateChatReport() is called with emails as emailList param.
Backend converts all capitalized emails to lowercased (this is normal flow since emails are usually not case sensitive) and create group with updated emails and return them in response data.
That's why default avatars are different between "before create group" and "after create group", based on capitalized status of email.
Solution
getDefaultAvatar can be non-case sensitive but I think this is just a workaround.
getDefaultAvatar is not only for email but also for person name, phone number, etc.
Person name is case sensitive so getDefaultAvatar should also be case sensitive if person name is used.
So my first proposal is to make getDefaultAvatar non-case sensitive only for email.
In getDefaultAvatar function, update this line
function getDefaultAvatar(login = '') {
    // There are 8 possible default avatars, so we choose which one this user has based
    // on a simple hash of their login (which is converted from HEX to INT)
    const loginHashBucket = (parseInt(md5(Str.isValidEmail(login) ? login.toLowerCase() : login).substring(0, 4), 16) % 8) + 1;
    return `${CONST.CLOUDFRONT_URL}/images/avatars/avatar_${loginHashBucket}.png`;
}

Before: md5(login)
After: md5(Str.isValidEmail(login) ? login.toLowerCase() : login)
Second proposal:

autoCapitalize prop of TextInput set to 'none'
don't change capitalized email to lowercased in backend, assuming frontend will send lowercased email
So if user capitalize email manually in keyboard (mostly won't happen) and submit, it will be saved without change in backend
BTW, I don't think this proposal is perfect because search keyword can be person name which is capitalized

I agree.
@aimane-chnaif thanks for your proposal, but we're going to go with @eVoloshchak given that they proposed first and I think the check for whether it is email before setting to lowercase is overkill. Thanks!

Hey @eVoloshchak, any update on progress?

Hey @eVoloshchak, any update on progress?

Either something was broken by recent changes or in npm registry, but my npm I fails with react-native-web being at fault. I'll try to resolve this by the end of the week

Also, I sent you an offer for this job in Upwork, please accept when you get a chance: https://www.upwork.com/jobs/~0172aa16b79ead5420

This is the posting for completely different issue

Hey @eVoloshchak, any update on progress?

Either something was broken by recent changes or in npm registry, but my npm I fails with react-native-web being at fault. I'll try to resolve this by the end of the week

Also, I sent you an offer for this job in Upwork, please accept when you get a chance: https://www.upwork.com/jobs/~0172aa16b79ead5420

This is the posting for completely different issue

And there's no need, we already have a contract running for this job on Upwork

PR is up

All paid up, thanks!

authors: aimane-chnaif eVoloshchak kavimuru puneetlath stephanieelliott

repo: Expensify/App


text:
[$250] In additional details page can't clear the first name/ last name field reported by @thesahindia

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Make sure you have a name set at profile page
Visit https://staging.new.expensify.com/enable-payments
Try deleting the whole name

Expected Result:
User should be able to clear the name completely .
Actual Result:
You can't clear the name completely.
Workaround:
unknown
Platform:

Where is this issue occurring?

Web
iOS
Android
Desktop App
Mobile Web

Version Number: 1.2.28-2
Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/202326678-2ed58e00-acd1-4a8a-b273-28a3469ad9a3.mov
https://user-images.githubusercontent.com/43996225/202326693-daee7bc4-7040-4125-95c2-aa35887d627b.mp4
Expensify/Expensify Issue URL:
Issue reported by: @thesahindia
Slack conversation: https://expensify.slack.com/archives/C01GTK53T8Q/p1652192776856909
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013826c459732f8dcc
Upwork Job ID: 1593389710349824000

Proposal
In AdditionalDetailsStep.js the problem came from the way we calculated the value for first name and last name fields.
In this case, when we tried to delete the first name field and when it became empty, the getFirstName() function will return the firstName from PersonalDetails.extractFirstAndLastNameFromAvailableDetails(this.props.currentUserPersonalDetails) and made us couldn't edited the field anymore because the prop this.props.walletAdditionalDetailsDraft.legalFirstName was still empty so it always return firstName.
    getFirstName() {
        const {firstName} = PersonalDetails.extractFirstAndLastNameFromAvailableDetails(this.props.currentUserPersonalDetails);
        return this.props.walletAdditionalDetailsDraft.legalFirstName || firstName;
    }

  <TextInput
      containerStyles={[styles.mt4]}
      label={this.props.translate(this.fieldNameTranslationKeys.legalFirstName)}
      onChangeText={val => this.clearErrorAndSetValue('legalFirstName', val)}
      value={this.getFirstName()}
      errorText={this.getErrorText('legalFirstName')}
  />

Solution
Give the TextInput defaultValue prop and let the value prop to the prop that we updated in Onyx.
                                <TextInput
                                    containerStyles={[styles.mt4]}
                                    label={this.props.translate(this.fieldNameTranslationKeys.legalFirstName)}
                                    onChangeText={val => this.clearErrorAndSetValue('legalFirstName', val)}
-                                 value={this.getFirstName()}
+                                  value={this.props.walletAdditionalDetailsDraft.legalFirstName}
+                                  defaultValue={this.getFirstName()}
                                    errorText={this.getErrorText('legalFirstName')}
                                />

                             <TextInput
                                    containerStyles={[styles.mt4]}
                                    label={this.props.translate(this.fieldNameTranslationKeys.legalLastName)}
                                    onChangeText={val => this.clearErrorAndSetValue('legalLastName', val)}
-                                   value={this.getLastName()}
+                                  value={this.props.walletAdditionalDetailsDraft.legalLastName}
+                                  defaultValue={this.getLastName()}
                                    errorText={this.getErrorText('legalLastName')}
                                />

Proposal

use state for textinput values where the api values are the default values, we dont need to listen to api values after that to prevent slow/lag on input change

I have this kind of bug in our project where we used redux form in our textinputs, redux form was slow thats why it keeps repeating the values

I believe it's a good opportunity to refactor this page to use Form and the issue can be solved in that. Let's update the issue description unless someone disagrees.

I agree, I remember we already have plan to refactor existing form to use Form component right?

Just adding some other ways to reach additional details page (Because the mentioned steps only work when you have a bank account)
Change the code at [ModalStackNavigators.js] and visit search page (https://github.com/Expensify/App/blob/ff2454962dd10327e52d8f9fd4906585ca5521c6/src/libs/Navigation/AppNavigator/ModalStackNavigators.js#L174)
 const SearchModalStackNavigator = createModalStackNavigator([{
     getComponent: () => {
-        const SearchPage = require('../../../pages/SearchPage').default;
-        return SearchPage;
+        const EnablePaymentsPage = require('../../../pages/EnablePayments/EnablePaymentsPage').default;
+        return EnablePaymentsPage;
     },
     name: 'Search_Root',

On web you can just visit http://localhost:8080/enable-payments

I believe it's a good opportunity to refactor this page to use Form and the issue can be solved in that. Let's update the issue description unless someone disagrees.

Waiting for decision on this before reviewing proposal.

Asked in #contributor-plus for more eyes

Letting @joelbettner take this one.

I've been tackling this. I'm refactoring the page to use our Form functionality.

This was handled internally, and @sobitneupane held on any reviews, so I believe the only payment due is the reporting bonus to @thesahindia - Invited you to the Upwork Job here for that payment!
Also reapplying the External label as I'm heading ooo and this will need a new CM to complete the payment mentioned above

@davidcardoza, I have accepted the offer. Please settle this at upwork so that we can close this issue.

Done

This issue still needs to be open because the refactor PR is still in review.

authors: Emz27 MitchExpensify davidcardoza hungvu193 joelbettner kavimuru sobitneupane thesahindia tylerkaraszewski


text:
Redmi Note 8 Pro - Text field with email keyboard type cursor is not visible

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Open the app and logout if logged in
Focus on the email text field
Observe there is no cursor

Expected Result:
cursor is visible
Actual Result:
cursor is not visible
Workaround:
unknown
Platform:

Where is this issue occurring?

Android Android (Redmi Note 8 Pro)

Version Number: 1.2.36-4
Reproducible in staging?: Need reproduction
Reproducible in production?: Need reproduction
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
https://user-images.githubusercontent.com/43996225/207217320-d29f9957-4756-4cc2-bb5a-6bc78c9484ef.mp4
Expensify/Expensify Issue URL:
Issue reported by: @bernhardoj
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1670841591635449
View all open jobs on GitHub

Not able to reproduce via the same device via browserstack Redmi Note 8 - Closing!

authors: AndrewGable kavimuru


text:
[HOLD for payment 2023-09-06] [$1000] mweb - Inconsistency: Copy Link context menu item does not show on the attachment message when it is opened over the attachment in mweb|web

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Open a DM with any user in NewDot.
Send a attachment message.
Long press over the attachment to open the context menu.

Expected Result:
On mweb, it should show copy link item as well when opened over the attachment same like native application.
We should either shown for both mWeb and native or hide on both. I think better would be to show it as there is less space for the user to open the full context menu for attachment(which is opened when user long presses the empty space side to the attachment).
Actual Result:
On mweb, copy link menu item is not shown when menu is opened over the attachment. This is inconsistent with the native iOS and Android.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[x] Android / Chrome
[ ] iOS / native
[x] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.28-3
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/90ef3010-6f86-4fea-bfe0-6e7f174b56ed

Expensify/Expensify Issue URL:
Issue reported by: @parasharrajat
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686904574870779
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0152b793902d18fd0b
Upwork Job ID: 1673348174719672320
Last Price Increase: 2023-07-17

@kbecciv @flaviadefaria - This was disabled around this,
PR: https://github.com/Expensify/App/pull/9955
Issue: https://github.com/Expensify/App/issues/9660.
We were waiting to add a copy image to clipboard functionality but we aren't there yet probably.
If we want to be at a situation where user can identify between copy link of message and not mistake it for copy link of image. Then we can change Copy Link to Copy Message Link and remove the isAttachment check to show the Copy Message Link again.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Copy link menu item is not shown when menu is opened over the attachment on mobile web unlike mobile native application
What is the root cause of that problem?
We have image renderer showing context menu here
https://github.com/Expensify/App/blob/6183609c577f2310928bb4e8ee23b52f6dd28e00/src/components/HTMLEngineProvider/HTMLRenderers/ImageRenderer.js#L68
Anchor element here is img element and we intentionally prevent Copy Link menu here
https://github.com/Expensify/App/blob/6183609c577f2310928bb4e8ee23b52f6dd28e00/src/pages/home/report/ContextMenu/ContextMenuActions.js#L202-L206
As you can see, when the message is attachment and anchor is img, we don't show Copy Link. For native applications, img element is translated into React Native View by ImageRenderer and doesn't meet this condition. Because of this, Copy Link doesn't appear in context menu on mobile web unlike mobile native applications
I'm not sure this is a bug. Anyway this is the root cause
What changes do you think we should make in order to solve the problem?
We should remove checking img attchement checking. shouldShow would be like
        shouldShow: (type, reportAction, isArchivedRoom, betas, menuTarget) => {
            return Permissions.canUseCommentLinking(betas) && type === CONTEXT_MENU_TYPES.REPORT_ACTION && !ReportActionUtils.isMessageDeleted(reportAction);
        },

This works as expected.

Result

What alternative solutions did you explore? (Optional)

@parasharrajat Are we expecting copy link over here or are we still waiting to get a copy image and then allow it on image press ?

Added the external label. I agree with making this consistent for mWeb.

@flaviadefaria - Any thoughts on this comment https://github.com/Expensify/App/issues/21346#issuecomment-1603318986 ?

@jeet-dhandha I agree with you that adding copy link doesn't make sense. I actually posted here to understand a bit better the inconsistency reported as I couldn't find it.

@0xmiroslav
Can you explain again what is the expected behavior of this issue?

Proposal
Updated

@0xmiroslav @parasharrajat  - Should i create a PR for this ?

Proposal
Please re-state the problem that we are trying to solve in this issue.

Copy Link options is inconsistent with the rest of platforms. Either it should be removed or it should be added to the rest of platforms.

What is the root cause of that problem?

The root cause is that condition isAttachmentTarget is not true for all platforms. As IMG tag is not supported in all platforms.

What changes do you think we should make in order to solve the problem?

We should remove the Copy Link option from the menu for all platforms, if its an attachment.
Code wise we just need to remove isAttachmentTarget condition from the code and instead use isAttachment.

What alternative solutions did you explore? (Optional)

N/A

PS: I didn't post any proposal as I was not sure of the requirement due to previous open issues.

@0xmiroslav and thoughts on @jeet-dhandha's proposal above?

@0xmiroslav
Please check the updated proposal
https://github.com/Expensify/App/issues/21346#issuecomment-1604028149
https://github.com/Expensify/App/pull/22315

@0xmiroslav May I kindly ask what your expectations are for the solution?

@0xmiroslav
I thoroughly checked the project related to eh context menu and verified that manual adding doesn't have any side effect.
This also sticks to the minimum changes rule of the proposal, I think. Anyway, let me try to find the better solution

https://github.com/Expensify/App/issues/21346#issuecomment-1624215407 @0xmiroslav my proposal haven’t introduced any tagName param or prop. Will you give it a look again ?

Subscribed. Lets wait on what thoughts Rajat has on this.

Do we have an update here?

@0xmiroslav I'm struggling to recreate this. What does clicking copy link actually copy? Unless it copies the link to the message then I think it's fine to remove it.

Are you still able to recreate this in iOS native? I can no longer see the copy link option there.

@0xmiroslav I enabled the beta on my account and I still can't reproduce this, but if you can then that's fine. Can you reply to this question:

What does clicking copy link actually copy? Unless it copies the link to the message then I think it's fine to remove it.

Confirmed in Slack. @0xmiroslav let's go with what you proposed above and only have the clickable area display the "Copy link" option linking to the message, not the image.

Proposal
Updated

@0xmiroslav can you please give an update?

I'd like to take this as C+ based on discussion

Thanks @situchan I just reassigned it to you.

@jeet-dhandha is the first to provide solution which meets expected result (hide Copy link on attachment for all platforms) we finally landed on.
Proposal: https://github.com/Expensify/App/issues/21346#issuecomment-1624215407
🎀 👀 🎀 C+ reviewed

The menu item should be shown on attachment messages but not over the attachment view on mobile.

Exactly. I accepted that solution. Still show option on message itself but not on attachment view, no matter mobile or web.
https://github.com/Expensify/App/issues/21346#issuecomment-1653591076

I will update my proposal with above requirements. @situchan @parasharrajat

I do apologize for everyone. I got confused about the expected result, so updated previous approval comment.
Now re-evaluating proposals

@s-alves10 thanks for updated proposal. The root cause is correct. Your solution will override mWeb's nativeEvent as well, which is redundant.

Yeah, we can avoid that

We do tagName check only in Copy Link menu and only check the target.tagName
So we can simply use {nativeEvent: {target: {tagName: 'IMG'}}}

@s-alves10 why can't we fully customize it like {target: 'image'}? And no need to pass full nativeEvent as it's not used anywhere.

@situchan We are using it here so we need to pass the nativeEvent but we can override the target with {target: 'IMG'} and change isAttachmentTarget condition to below.

const isAttachmentTarget = menuTarget === 'IMG' && isAttachment;
https://github.com/Expensify/App/blob/7d59bbb4a740a267c0a17a0ab7f369c0bd269dec/src/pages/home/report/ContextMenu/PopoverReportActionContextMenu.js#L163-L170

ok so 👇 is wrong

We do tagName check only in Copy Link menu and only check the target.tagName So we can simply use {nativeEvent: {target: {tagName: 'IMG'}}}

@situchan Are you asking that the comment is wrong or telling me ?

Please do update the C+ review whenever possible.

are you expecting that your proposal will be accepted?
@s-alves10 is the first to propose working solution which fixes the root cause.

@situchan No. This wasn't in my luck 🍀 to get accepted, so what i can do is help others achieve better results and make them get better payout by minimising the chance of regression by their PR.

I am but a humble soul helping Expensify Bloom 🌷

@s-alves10 why can't we fully customize it like {target: 'image'}? And no need to pass full nativeEvent as it's not used anywhere.

I wanted to fix the issue with minimal changes. We're using nativeEvent here for position calculations

@situchan No. This wasn't in my luck 🍀 to get accepted, so what i can do is help others achieve better results and make them get better payout by minimising the chance of regression by their PR.

@jeet-dhandha thanks for your help. Of course such things will be handled in PR.

I think the current solution is fine because mweb has this structure of data already. What do you think?

yes, fine to me too

@s-alves10's proposal LGTM!
cc: @youssef-lr
🎀 👀 🎀 C+ reviewed

Looks like we're just waiting on @youssef-lr for the review.

@laurenreidexpensify I'm heading OoO for 1 week so assigning this to you while I'm away.

@youssef-lr bump for update thanks

LGTM as well! Assigned.

@situchan
PR is ready for review

@youssef-lr
Please take a loot at the PR

BZ Checklist:
No regression. This is inconsistency, not bug. As this is still beta feature, regression test is not needed for now.

As this is still a beta feature, a regression test is not needed for now.

I don't think we should ignore the steps due to this reason. Or do you have any reference to some discussion where you confirmed this?

I don't have any reference. But this doesn't affect production users yet.
I don't think it's late to add regression test step after message deep link is implemented and beta is removed.

For reference, here are some details about the assignees on this issue:
@situchan requires payment
@s-alves10 requires payment
@parasharrajat does not require payment (Eligible for Manual Requests)

Payment Summary:
@situchan requires payment  = $1000 (no bonus)
@s-alves10 requires payment = $1000 (no bonus)
@parasharrajat does not require payment (Eligible for Manual Requests) = $250 (reporting bonus)

@flaviadefaria I think this is eligible for #urgency bonus.

Assign date: Aug 22
C+ approved and requested engineer review: Aug 24
Merged without change requests: Aug 26

@situchan @s-alves10 offers sent to both of you.

That's fair @situchan I'll add the 50% bonus once you've both accepted the contract.
New Payment Summary:
@situchan requires payment = $1000 + $500 (bonus) = $1500
@s-alves10 requires payment  = $1000 + $500 (bonus) = $1500
@parasharrajat does not require payment (Eligible for Manual Requests) = $250 (reporting bonus)

@situchan I'm waiting for you to accept the offer
@s-alves10 has been paid

Everyone has been paid.

Oh sorry that I closed this before you were paid @parasharrajat! I'll reopen and switch this to weekly.

$250 payment for @parasharrajat approved based on BZ summary.

Are we good to close this out?

Alright seems like we're all done here - closing it!

authors: JmillsExpensify flaviadefaria jeet-dhandha kbecciv laurenreidexpensify s-alves10 situchan youssef-lr


text:
Task shows "no activity yet" in LHS with activities.

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Open acc A  & B
Create a task from acc A and assign to any user (except B)
Add some messages to task report from account A
Assign it to account B
Observe last message of task in LHS

Expected Result:
The task report should show the latest message in the LHS.
Actual Result:
The task report shows no activity yet in the LHS.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.57-3
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/38435837/272537bf-e9df-4084-b9cb-12fa233c4a9f
https://github.com/Expensify/App/assets/38435837/df80c941-f752-4e6c-8442-6887ab859107
Expensify/Expensify Issue URL:
Issue reported by: @krishna2323
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1692182548574889
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01a929c2ede7994053
Upwork Job ID: 1696219199991738368
Last Price Increase: 2023-09-04

Not overdue, applied the external label.

Proposal
Please re-state the problem that we are trying to solve in this issue.
When assigning a new assignee to a task, the task report shows "No Activity Yet" on the LHS of all participants, even though there may be chat messages on the task.
Actually, it seems that this happens for every type of task edit, not just assignee change. (for example editing the title has the same effect).
What is the root cause of that problem?
It seems to me that the php server (who's code I don't think I have access to) wrongfully changes the "lastMessageText" attribute of the report to an empty string when the EditTaskAssignee API call is made.
What changes do you think we should make in order to solve the problem?
Change the server code so that it does not remove the lastMessageText when a task is edited.
What alternative solutions did you explore? (Optional)
Alternatively, we could add another else if clause here in line 391 that would check if the last report action was an edit action and if so, display the last visible report action which is already found in line 378:
https://github.com/Expensify/App/blob/fd755ee94ee9aed354e528abc0b62d19a90802c2/src/libs/OptionsListUtils.js#L377-L392

I think it is a BE bug. The BE should return reportActions of task report to new assignee

Adding for clarification to https://github.com/Expensify/App/issues/25937#issuecomment-1697055990 :
note that the reopening of a task and the completion of task use different API calls and so are not affected by this bug, as can be seen in the reporter's videos

Hey @rushatgabhane, can you please review @tomgilon proposal above? Thanks!

We don't see the correct preview because we use reportActions to craft the correct message, and 0 reportActions come in when the task arrives at account B. This is also why the message is fixed once we navigate to the task – this causes the reportActions to be fetched and in turn the correct message to be created.
We should:
a) send the latest reportAction when changing the task assignee -RECOMMENDED, the 2nd report related to the task (the other chat) gets updated like this.
or
b) send latestMessageText when changing assignee.
Both approaches require BE changes and might only need BE changes actually.

ok, so there are actually two problems here

like @carlosalmonte04 and @DylanDylann say the backend doesn't return the reportAction until we navigate to the task
like I said in my original comment, report.lastMessageText is empty. And this is the property which is generally used to craft the LHS message. The only reason reopened task message appears correctly once you've navigated is because it has special treatment here in line 310:
https://github.com/Expensify/App/blob/117e9d77b00f679acbc132e0da9c9844cd046574/src/libs/SidebarUtils.js#L305-L316

As you can see (line 314), for other types of messages (like regular messages), the problem persists and "No Activity Yet" continues to be displayed even after navigating to the task.

Hey @rushatgabhane, what are the next steps here?

Bump @rushatgabhane

Bump @rushatgabhane, what's next here?

@grgia bump!

Removed help wanted label

cc @thienlnam this is an internal task bug

@grgia are we working on this? What are the next steps? Thanks!

@grgia any updates?

Bump @grgia. Are we working on this?

Hey @grgia are we working on this? Should we close this?

@grgia are you working on this?

Making monthly for now

@grgia, should we close this one, given our roadmap?

Bump @grgia

@grgia I DM'd you for an update. Thanks!

I DM'd @grgia again now.

I think we can just close this out for now @isabelastisser

authors: DylanDylann carlosalmonte04 grgia isabelastisser m-natarajan tomgilon


text:
[HOLD for payment 2023-10-09] [$500] Dev: Web - Unnecessary two back icons in #Room

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Click on FAB icon and select Send message option
Go to  #Room tab

Expected Result:
It should show only one back icon
Actual Result:
Two back icons in #Room
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: Dev 1.3.70.5
Reproducible in staging?: n
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/bd28bcf4-8792-4462-bab5-3a2c4021667a
Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1694840257162789
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ce9ae2774c7e1dd5
Upwork Job ID: 1703143519242104832
Last Price Increase: 2023-09-16
Automatic offers:

c3024 | Contributor | 26809665
gadhiyamanan | Reporter | 26809666

Please re-state the problem that we are trying to solve in this issue.
Not found page when selecting room in RHP in send message option of FAB shows another back button.
What is the root cause of that problem?
There is a back button for the RHP as a whole for send message and here
App/src/pages/workspace/WorkspaceNewRoomPage.js
Line 147 in [76c1559](https://github.com/Expensify/App/commit/76c1559fb3fbee1d07c8f210b522b63edd03920e)

 <FullPageNotFoundView shouldShow={!Permissions.canUsePolicyRooms(props.betas) || !workspaceOptions.length}>

we are showing another back button again.
What changes do you think we should make in order to solve the problem?
We should add shouldShowBackButton={false} here
[App/src/pages/workspace/WorkspaceNewRoomPage.js](https://github.com/Expensify/App/blob/76c1559fb3fbee1d07c8f210b522b63edd03920e/src/pages/workspace/WorkspaceNewRoomPage.js#L147
Line 147 in 76c1559
>  <FullPageNotFoundView shouldShow={!Permissions.canUsePolicyRooms(props.betas) || !workspaceOptions.length}>
I think instead of a generic error we can show
title as emptyWorkspace.title from en.ts and show no subtitleKey.
Keep title as it is and show subtitleKey as emptyWorkspace.title
Use linkKey as emptyWorkspace.title and give corresponding onLinkPress for creating workspace.
What alternative solutions did you explore? (Optional)

@eVoloshchak what do you think of the above proposals?

The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/23486
The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/23486/files#r1355533015
A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: this is a simple visual bug, additional discussion isn't needed
Determine if we should create a regression test for this bug.
This is a small visual bug that didn't prevent user from using the app, so regression tests isn't necessary

Awaiting a payment summary to issue payment.

@gadhiyamanan reporter $50 - paid ✔
@c3024 fix + bonus = $750 - paid ✔
@eVoloshchak review + bonus = $750 - in NewDot

$750 payment approved for @eVoloshchak based on summary above.

authors: JmillsExpensify MuzanEDM eVoloshchak kbecciv sonialiap


text:
[$500] The phone number is displayed twice when searching for it after sending a Money Request.

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Action Performed:

Log in to any account.
Send a Money Request to a phone number, for example: +15005550006.
Click on the Search icon in the header and search for that phone number - FULL SEARCH (+15005550006) - IMPORTANT.

Expected Result:
The phone number is displayed ONCE.
Actual Result:
The phone number is displayed TWICE.
Note: This issue actually occurs on all types of search pages: Request Money, New Chat, and Inviting a Member to the Workspace.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.73-0
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/b69137f0-1457-41ee-93f8-f6e85c002d21
https://github.com/Expensify/App/assets/43996225/7656adbe-df43-4af4-b2e0-b47fc65a1a72
Expensify/Expensify Issue URL:
Issue reported by: @tranvantoan-qn
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1695047570703519
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f217b41585e6a18d
Upwork Job ID: 1705249513796894720
Last Price Increase: 2023-09-22

Proposal
Please re-state the problem that we are trying to solve in this issue.
The phone number is displayed twice when searching for it after sending a Money Request.
What is the root cause of that problem?

personal details login don't have the domain
but when we in the search personal details we are searching with
https://github.com/Expensify/App/blob/71db96d8a77068220fac73ca0dc984796ff862f9/src/libs/OptionsListUtils.js#L1154
addSMSDomainIfPhoneNumber
What changes do you think we should make in order to solve the problem?
we need change like this
const noOptionsMatchExactly = !_.find(personalDetailsOptions.concat(recentReportOptions), (option) => addSMSDomainIfPhoneNumber(option.login) === addSMSDomainIfPhoneNumber(searchValue).toLowerCase());
Result

Isn't this intentional behavior?

I dont think it is intended, because:

It only happens if we had a money request to that number
It only happens with full-keyword search - +15005550006

@dukenv0307 I think if we remove the personal details from success or failure it will create the regression.

Coming from here https://github.com/Expensify/App/issues/21706 - it was the same issue which we see here - after creating a request money - we store optimistic data in onyx - but do not clean it after getting correct data from API
Proposal from @dukenv0307 looks good to me https://github.com/Expensify/App/issues/28028#issuecomment-1732210716
🎀 👀 🎀 C+ reviewed

@narefyev91 did you able to check my comment. it will create regression if we removed the data from onyx

@dukenv0307 already shared the screenshot. In the failure cause we don't have personal information  from api(for all the scanrio request money, new chat, workspace invite ). And also requestmoney api not return full data of person al details here.

@dukenv0307 please check that https://github.com/Expensify/App/issues/21706 issue  PR https://github.com/Expensify/App/pull/24355/files they are fixing in the open report api on the account ID conflict  issue.
if you removed the personal details from Onyx how you can retrieve personal information to show the error message?
here
https://github.com/Expensify/App/blob/71db96d8a77068220fac73ca0dc984796ff862f9/src/pages/workspace/WorkspaceMembersPage.js#L271

I think it's expected. The full-detail personal won't be returned until the receiver sends a message.

then why workspace invite api return full details?

Why is there no existing account store personnel in Onyx???.
if you removed from Onyx data on failure how many personal details will there? and also this issue will occur when we create a new chat with a person, not an existing one.

and this issue https://github.com/Expensify/App/issues/21706 is fixing only the conflict of accountId. not completely remove the onyx data when we stored the data on optimistic

This issue removes optimistic personal detail data by setting it as null. Please see the PR for more details.

in this final  PR of that ticket https://github.com/Expensify/App/pull/24355/files
they are only setting null personal details is not there and they are doing the open report api.
 settledPersonalDetails[accountID] = allPersonalDetails[accountID] || null;

Invite flow has nothing to do with removing personal details when requesting money

I thought we were going to invite the scenario also because in this issue actual result is this:

The phone number is displayed TWICE.
Note: This issue actually occurs on all types of search pages: Request Money, New Chat, and Inviting a Member to the Workspace.

I am sharing the screenshot current scenario only. they all are working based on personal details. if we removed the personal details this will break.
Let we can wait internal team review.

@madmax330 bump on this!

Payouts due:
Issue Reporter: $50 @tranvantoan-qn
Contributor: $500 @dukenv0307
Eligible for 50% #urgency bonus? No
Upwork job is here.

@narefyev91 please don't forget the checklist!

authors: kadiealexander kavimuru narefyev91 pradeepmdk rojiphil tranvantoan-qn


text:
[TS migration] Migrate 'CustomStatus' page to TypeScript

TypeScript migration
Make sure you read through our TypeScript's style guide, cheatsheet and PropTypes conversion table before you start working on this migration issue.
Files

Path
Dependencies

src/pages/settings/Profile/CustomStatus/StatusClearAfterPage.js
25

src/pages/settings/Profile/CustomStatus/SetTimePage.js
15

src/pages/settings/Profile/CustomStatus/SetDatePage.js
18

I can work on it

This issue is internal and will be carried out by the TS team.

hi

Assigned @war-in per his comment above.

Should be all done


text:
Chat - Compose Box is shown above empty space and doesn't resize properly

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.57-2
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4459664
Email or phone of affected tester (no customers): gatantm@gmail.com
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Go to any chat
Tap on the compose box
Type a few lines and tap on expand icon

Expected Result:
The compose box is directly above the keyboard, expands with the first few lines added and expands to half the screen when tapping the expand icon
Actual Result:
The compose box has empty space between it and the keyboard, expands with the first few lines but either doesn't expand when tapping the expand icon or contracts.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/510d64ab-96f7-42c1-bca2-631d98897f17

View all open jobs on GitHub

@JmillsExpensify I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors.

We think that this bug might be related to #vip-vsb.

Production video
https://github.com/Expensify/App/assets/115492554/8bdede3d-f00f-4b4e-8772-a803262263bf

@tgolen Do you think this is a blocker? I agree with QA that it's a #vip-vsb issue, though I also think this is largely cosmetic.

It is a pretty ugly bug, but since it doesn't prevent any functionality and only affects a single platform, I agree it's not a blockers. Let's make this a normal bug and I'll see if I can quickly spot the PR that might have caused the regression. I'll remove the deploy blocker label for now.

@suneox Do you think this might have been a regression of your recent PR https://github.com/Expensify/App/pull/38755 ?

Thanks for looking into this. It should just be the staging branch.

Regression from https://github.com/Expensify/App/issues/35380 issue https://github.com/Expensify/App/pull/38755 PR. @situchan will be reviewing the PR.

@situchan is on leave this month. So, I think I should go ahead and review the PR.

Payment summary:

Contributor: @suneox $500
Contributor+: @sobitneupane $500

Contributor paid out. @sobitneupane since you're paid via Expensify, I'm going to close this issue, though please fill out the BZ checklist before requesting. Thanks!

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ]  [@sobitneupane] The PR that introduced the bug has been identified. Link to the PR:

https://github.com/Expensify/App/pull/38755

[ ]  [@sobitneupane] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:

https://github.com/Expensify/App/pull/38755#issuecomment-2027314901

[ ]  [@sobitneupane] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ]  [@sobitneupane] Determine if we should create a regression test for this bug.

Yes.

[ ]  [@sobitneupane] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal

Go to any chat in mWeb/Safari
Tap on the compose box
Type a few lines and tap on expand icon
Verify that the compose box resizes properly.

Do we agree 👍 or 👎

$500 approved for @sobitneupane.

authors: JmillsExpensify izarutskaya sobitneupane tgolen


text:
[$250] Taxes - Cursor continues to move after deleting one digit when long pressing on delete key

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 1.4.57-2
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Issue reported by: Applause - Internal Team
Issue found when executing PR https://github.com/Expensify/App/pull/38733
Action Performed:
Precondition:

User is admin of Collect workspace

Go to staging.new.expensify.com
Go to Profile > Workspaces > Collect workspace
Go to Taxes > Add rate > Value
Enter 12.3456
Long press on delete key on BNP

Expected Result:
Long pressing on delete key will delete one digit and the cursor will not continue to move backward (BNP on request money flow behavior)
Actual Result:
The cursor continues to move backward after deleting one digit when long pressing on delete key
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[x] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/e00250e7-7937-42dc-8de5-78399dcad45c
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01629df1846fc38b09
Upwork Job ID: 1777700152991117312
Last Price Increase: 2024-04-09

@miljakljajic  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

Proposal
Please re-state the problem that we are trying to solve in this issue.
Taxes - Cursor continues to move after deleting one digit when long pressing on delete key
What is the root cause of that problem?
For BigNumPad when we long press < numberPressed is recalled every 100ms using interval
https://github.com/Expensify/App/blob/b27be0fde68ee4bd5419698d54d939d9b590b50f/src/components/BigNumberPad.tsx#L54-L55
And for taxes in this case we recalculate selection according to the new amount vs the currentAmount
https://github.com/Expensify/App/blob/b27be0fde68ee4bd5419698d54d939d9b590b50f/src/components/AmountForm.tsx#L114-L115
But the problem lies here because the function is called via interval it doesn't have the latest edition of currentAmount so all the way during  the long pressing it will hold the amount before the back press and the strippedAmount holds one digit deleted from currentAmount so it decrements the selection start and end continously according to this code
https://github.com/Expensify/App/blob/b27be0fde68ee4bd5419698d54d939d9b590b50f/src/components/AmountForm.tsx#L50-L51
What changes do you think we should make in order to solve the problem?

The solution lies in understanding the problem. In BigNumPad we have built a long press mechanism for < deletion key but it is not working because of the reason I mentioned above so we need to make the setInterval callback to receive the latest values of the component states and props then the long press will be working.
In side BigNumPad we add this to
const numberPressedRef = useRef(numberPressed);

    useEffect(() => {
        numberPressedRef.current = numberPressed;
    }, [numberPressed]);

    /**
     * Handle long press key on number pad.
     * Only handles the '<' key and starts the continuous input timer.
     */
    const handleLongPress = (key: string) => {
        if (key !== '<') {
            return;
        }

        longPressHandlerStateChanged(true);

        const newTimer = setInterval(() => {
            numberPressedRef.current?.(key);

So that the interval callback will be the right and latest value
Now in any place we utilize BigNumPad if we don't want to enable long pressing we can disabling it via the prop isLongPressDisabled as it is by default false
What alternative solutions did you explore? (Optional)

shared in BZ for discussion

@miljakljajic BTW The title of the issue is a little misleading the bug is more serious than what is depicted in the title: the bug is not just hold pressing the delete key moves the cursor all the way to the left unlike money request amount equivalent Num Pad, but the hold pressing first designed to continuously delete digits is broken as a whole. Only for the reason I mentioned in my RCA is that we are seeing different behaviours in this taxes num pad and money request num pad. Both are broken and the fix should be to make the holding of the button delete the digits continously.

I agree, let's get this fixed. Added the external label.

Evaluating proposal

@FitseTLT If we applied your proposal changes, then the long press on the request money should delete the numbers, right?
But, I have applied your changes to the src/components/BigNumberPad.tsx but I am seeing no difference in the long press for Request Money number pad
https://github.com/Expensify/App/assets/35371050/5869f227-786e-42dc-b138-07f81e8def9b

Here is the test branch and here is the result
https://github.com/Expensify/App/assets/38649957/cfecd537-a7f5-4494-97f7-afcda814bfba

@FitseTLT Thanks for the test branch. It's now working fine on my side, too. I'm not sure why it didn't work before; maybe my iOS is flaky from yesterday.
@FitseTLT 's Proposal LGTM, After fixing the currentAmount value using the ref, it will long press will also work in the request money.

Rate Input After Adding the Proposed Changes:
https://github.com/Expensify/App/assets/35371050/ce44456a-a834-4bc6-a29f-da8c88ee3ca8

Request Money After Adding the Proposed Changes:
https://github.com/Expensify/App/assets/35371050/987b537f-59b4-4da0-8ff6-9f21b2798703

🎀 👀 🎀 C+ reviewed

Proposal LGTM, feel free to create a PR @FitseTLT.

PR will be up in 2 days

Thank you!

[x]  [@jayeshmangwani] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/20231
[x]  [@jayeshmangwani] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/20231/files#r1590983061
[ ]  [@jayeshmangwani] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A
[x]  [@jayeshmangwani] Determine if we should create a regression test for this bug.
[x]  [@jayeshmangwani] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal

Open the App and Go to Profile > Workspaces > Collect workspace
Go to Taxes > Add rate > Value
Enter 12.3456
Press and hold on the delete button from NumPad
Verify that digits get deleted continuously For Android And iOS, And For Mobile web, it will only delete the last digit

Do we agree 👍 or 👎

Accepted regression test proposal and paid/ended both contracts. Thank you all!

authors: FitseTLT chiragsalian jayeshmangwani lanitochka17 miljakljajic


text:
[$250] Room - Unable to leave invited workspace chat specifically from report details page

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 9.0.2-0
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: N/A
Action Performed:
Precondition:

User is invited to the workspace chat (not workspace)

Go to staging.new.expensify.com
Go to the invited workspace chat
Click chat header > Leave
Leave the room
Go to Troubleshoot > Clear cache and restart > Reset and refresh (or relogin)
Note that the workspace chat shows up again
Go to the invited workspace chat
This time, click 3-dot menu > Leave
Leave the room
Go to Troubleshoot > Clear cache and restart > Reset and refresh (or relogin)

Expected Result:
User should be able to leave workspace chat via both report details page (Step 4) and 3-dot menu (Step 9)
Actual Result:
User is unable to leave workspace chat from report details page (Step 4) as the workspace chat reappears after leaving and restarting app (or relogin)
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/4f999cf6-996f-463a-b4ac-2fefa8ec1db9
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0104feb060b6fcc52e
Upwork Job ID: 1812674634063741063
Last Price Increase: 2024-07-15
Automatic offers:

suneox | Reviewer | 103146753

Issue OwnerCurrent Issue Owner: @RachCHopkins

@RachCHopkins  FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors

We think that this bug might be related to #vip-vsp

I can't replicate this. @lanitochka17 can you tell me, in between inviting the user to the chat, and them attempting to leave, did they comment or take any action in the chat? (I just want to make sure that I'm replicating it right)
Here's what I did on MacOS Chrome:

Create brand new user account (let's call it User C)
Log in as User A.
Go to workspace chat, workspace users are User A and User B.
Mention User C in chat to invite them and send a message
Log out from User A
Log in as User C
Go to workspace chat and view message
Leave
Page refreshes to "page not found" and workspace chat instantly vanishes from Chat list.

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

@lanitochka17 can you offer some more insight here please?

Oops, still learning the process. Posted in QA channel.

@RachCHopkins Tester is still able to reproduce the bug.
Precondition:

User A creates a workspace.
User A invites User B to the workspace chat from report details page.
The following steps will be done by User B.

Go to staging.new.expensify.com
Go to the invited workspace chat
Click chat header > Leave
Leave the room
Go to Troubleshoot > Clear cache and restart > Reset and refresh (or relogin)
Note that the workspace chat shows up again
Go to the invited workspace chat
This time, click 3-dot menu > Leave
Leave the room
Go to Troubleshoot > Clear cache and restart > Reset and refresh (or relogin)

https://github.com/Expensify/App/assets/43996225/9baf22aa-f684-470b-975c-0cc6d42438a1

I'm looking for someone other than the original reporter of this to replicate it. I cannot.

@RachCHopkins Now the step 8 is blocked. There is no 3-dot in the header now. https://github.com/Expensify/App/pull/44025
https://github.com/Expensify/App/assets/43996225/0c87118d-029d-4ec6-9b20-a275a1aa4f06
https://github.com/Expensify/App/assets/43996225/2e9fff33-1708-4d2a-b0b1-45a15e469007

@kavimuru does this mean another person was able to replicate the issue?

@RachCHopkins  As per this PR https://github.com/Expensify/App/pull/44025 , no more 3dot menu. But tester reproduced leaving the room as in step 4 and able to reproduce the issue.
https://github.com/Expensify/App/assets/43996225/27ba8a26-8dc4-441c-ad47-2a6c65c9e4f0

Thank you @kavimuru !

Assigning @tienifr to the issue!

@RachCHopkins Can you double check if this reproducible or it got fixed as mentioned here?

Sorry @pecanoro I've been slammed - I could not reproduce it in the first place. Do we have anyone else who could replicate it who can retest?

Maybe @kavimuru could retest this for us?

@RachCHopkins That also works! Could you post in the #qa channel in Slack so they know they need to retest it?

Not able to reproduce.
https://github.com/user-attachments/assets/f64d03e1-aaa6-4677-923d-6b37f90bc059

I think we can call this fixed - @pecanoro I'm new to this, what is the next step in this case?

@RachCHopkins We need to pay @suneox and @tienifr half of the bounty since they were assigned before it was fixed somewhere else.

@RachCHopkins Friendly reminder so we can finally close the issue!

Payment Summary:
Contributor: @tienifr to be paid $125 via Upwork
Contributor+: @suneox to be paid $125 via Upwork
Upwork job here
I am told I will need to create new contracts for both.

@tienifr can you please add your name to your github profile so that I can find you.
@suneox I will send a new offer shortly and cancel the original contract.

@suneox I was able to do a partial payment rather than a new contract, but I did get an error. Can you please confirm for me that you were actually paid for this?

My bad, looks like we pay @tienifr via NewDot Manual Request. You're good to submit that! I'll update my comment above.

Contributor+ has been paid, the contract has been completed, and the Upwork post has been closed.

$125 approved for @tienifr

authors: MelvinBot RachCHopkins garrettmknight kavimuru lanitochka17 pecanoro


text:
Saga intacct - After entering incorrect credentials, if we connect advanced-auto sync toggle is off.

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 9.0.33-1
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:

Launch app
Create a workspace
Tap more features --enable accounting features
Tap accounting features -- connect sage intacct entering incorrect credentials
Tap 3 dots - enter correct credentials and connect
Tap advanced
Note auto sync toggle is off
Disconnect connection
In new workspace, try to connect entering valid credentials
Tap advanced
Note auto sync is on

Expected Result:
After entering incorrect credentials, if we connect advanced-auto sync toggle must not be off.
Actual Result:
After entering incorrect credentials, if we connect advanced-auto sync toggle is off.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/user-attachments/assets/1e1f7615-2a08-4e04-93e7-3f0a2e2303a0

View all open jobs on GitHub

I don't think this one is a bug.

authors: JmillsExpensify izarutskaya


text:
Compose Box - After create a group task user is not redirected to task conversation

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: 9.0.50
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?: N/A
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/5083366&group_by=cases:section_id&group_order=asc&group_id=291936
Email or phone of affected tester (no customers): aatweq+22222223@gmail.com
Issue reported by: Applause - Internal Team
Action Performed:

Loggin on macOS app
Navigate to a Group Chat
Click on the + in the compose box and select "Assign task"
Enter a Title and a Description
Do not assign any group member
Create the task

Expected Result:
After the user creates a task he/she should be redirected to the task conversation
Actual Result:
After the user creates a task he/she is redirected to the group conversation
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Add any screenshot/video evidence

https://github.com/user-attachments/assets/346b1e17-dc0c-4331-b9ff-917ac3e42141
View all open jobs on GitHub

Proposal
Please re-state the problem that we are trying to solve in this issue.
Compose Box - After create a group task user is not redirected to task conversation
What is the root cause of that problem?
Here  we navigate to parent report screen.
What changes do you think we should make in order to solve the problem?
Update the parentReportID to optimisticTaskReport.reportID
What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
After create a group task user is not redirected to task conversation
What is the root cause of that problem?
When we create task, we only dismiss the modal and there is no other navigation logic.
What changes do you think we should make in order to solve the problem?

In CreateTaskAndNavigate, Check if task has no assignee and is in group report then navigate user to the taskReport else do the current logic (dismiss modal). The condition for group report and no assignee is assumption based on steps in issue and can be changed if the requirement is different.
We need to update below portion in CreateTaskAndNavigate:
https://github.com/Expensify/App/blob/f95b99baddd8ac8a99499d5cad73029231cbcac8/src/libs/actions/Task.ts#L315-L318

Proposal
Please re-state the problem that we are trying to solve in this issue.
After create a group task user is not redirected to task conversation
What is the root cause of that problem?
This issue happened because of this ticket, which states that after creating an IOU or task, the user should be redirected to the DM
https://github.com/Expensify/App/blob/f95b99baddd8ac8a99499d5cad73029231cbcac8/src/libs/actions/Task.ts#L317
What changes do you think we should make in order to solve the problem?
When creating a task, we have shareDestination and assignee. If the assignee exists, we need to redirect the user to the share destination; otherwise, redirect to the task report
//.src/libs/actions/Task.ts#L304
-  Navigation.dismissModal(parentReportID);
+ Navigation.dismissModal(assigneeAccountID ? parentReportID : optimisticTaskReport.reportID);

https://github.com/user-attachments/assets/520d1514-713d-447a-8ad2-7dff2fe2a2e9

Asking about expected behavior here

Confirmed this is expected behavior.
We don't drop you in the expense you submitted either, you stay in the chat. So it should be the same for a task. Closing


text:
Full Setup Checklist Not Sending

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!

Version Number: v9.0.66-8
Reproducible in staging?:
Reproducible in production?: Yes
If this was caught on HybridApp, is this reproducible on New Expensify Standalone?:
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers): See internal issue below for details
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL: https://github.com/Expensify/Expensify/issues/448100
Issue reported by: @MitchExpensify
Slack conversation (hyperlinked to channel name): NA
Action Performed:

Sign into New.Expensify via a new account
Select 1-10 employees
Select QBO

Expected Result:
See a full setup checklist in Concierge or #admins like this:

Actual Result:
Land on a long loading skeleton view with only one task showing:

Workaround:
Explore the app despite this janky-ness but smooth onboarding is compromised at this point
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Standalone
[ ] Android: HybridApp
[ ] Android: mWeb Chrome
[ ] iOS: Standalone
[ ] iOS: HybridApp
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari (Chrome, OS X)
[ ] MacOS: Desktop

Screenshots/Videos
Added above, full story here: https://app.fullstory.com/ui/o-1WN56P-na1/session/6735773232164417224:6735773232164417224!6172688171892001743

View all open jobs on GitHub

I haven't been able to reproduce this as the flow to select how I will be using Expensify is not coming up. I've posted in #quality to find out if that's an expected change or a bug
https://expensify.slack.com/archives/C05LX9D6E07/p1733121675571129

I wasn't able to reproduce this:

I'm wondering if the issue was resolved with this -  https://github.com/Expensify/App/issues/53284
@MitchExpensify are you able to reproduce this now?

I cannot reproduce @VictoriaExpensify

Excellent! I think we can close this then. If you disagree, feel free to reopen

authors: MitchExpensify VictoriaExpensify