bundler-cache feature breaks ruby-lsp and other default gem behavior

Love the boot time saves provided by bundler-cache but it breaks most default external gem behavior.
rails and other gems are not available on the command line after enabling bundler-cache as a feature
this prevents ruby-lsp and other common IDE add-ons from running correctly.
without bundler-cache feature:
vscode ➜ /workspaces/myapp (ad6c9fe7) $ rails
Beginning in Rails 4.....

vscode ➜ /workspaces/myapp (ad6c9fe7) $ ruby-lsp
server starts and everything works

with bundler-cache feature:
vscode ➜ /workspaces/myapp (ad6c9fe7) $ rails
bash: rails: command not found

vscode ➜ /workspaces/myapp (ad6c9fe7) $ ruby-lsp
Ruby LSP> Skipping custom bundle setup since /workspaces/myapp/.ruby-lsp/Gemfile.lock already exists and is up to date
Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2
The Gemfile's dependencies are satisfied
bundler: failed to load command: ruby-lsp (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp)
/bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:308:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile?

I'm not enough of a smarty to know the right fix for this. I'm assuming a modification of the gem paths needs to be done but I'm unsure of the best way to implement that change within this feature bundle.
Would love if anyone has and ideas or pointers on the right direction of a fix. Thank you all <3
environment: unchanged Dockerfile for ruby 3.3.5, activestorage, postgres-client, github-cli & node devcontainer features

Yes I've also experienced this... I think
My feeling was that it was some kind of timing issue with ruby-lsp being run before cache was built at devcontainer build
I played around with creating this cache using the devcontainer lifecycle hooks with... not 100% results... sometimes would work sometimes wouldn't :)

Hi, sorry you are experiencing this issue. I am going to be away for a couple weeks starting tonight and I don't think I will have time to fix this today. @patriciomacadden maybe you can take a look? Probably we do need to do something with the bin path after all.

Hey everyone, thanks for the feedback! I haven't experienced this unfortunately.
I just created a new rails app by running rails-new devtest --devcontainer, and right before opening up vscode and building the container added the bundler-cache feature. Then I opened vscode and everything went as expected:
024-10-04 18:48:50.542 [info] (devtest) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-04 18:48:50.564 [info] (devtest) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-04 18:48:50.586 [info] (devtest) Discovered version manager rbenv
2024-10-04 18:48:50.586 [info] (devtest) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/devtest using shell: /bin/bash
2024-10-04 18:49:22.440 [info] (devtest) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2

2024-10-04 18:49:22.580 [info] (devtest) Bundler can't satisfy your Gemfile's dependencies.
Install missing gems with `bundle install`.

2024-10-04 18:49:24.018 [info] (devtest) Fetching gem metadata from https://rubygems.org/
2024-10-04 18:49:24.018 [info] (devtest) .
2024-10-04 18:49:24.187 [info] (devtest) .
2024-10-04 18:49:24.393 [info] (devtest) .
2024-10-04 18:49:24.445 [info] (devtest) .
2024-10-04 18:49:24.492 [info] (devtest) .
2024-10-04 18:49:24.505 [info] (devtest) .
2024-10-04 18:49:24.514 [info] (devtest) .
2024-10-04 18:49:24.516 [info] (devtest) .
2024-10-04 18:49:24.518 [info] (devtest) .
2024-10-04 18:49:24.956 [info] (devtest)

2024-10-04 18:49:24.979 [info] (devtest) Resolving dependencies...

2024-10-04 18:49:25.512 [info] (devtest) Fetching prism 1.1.0

2024-10-04 18:49:25.513 [info] (devtest) Fetching sorbet-runtime 0.5.11595
Fetching rbs 3.6.1

2024-10-04 18:49:25.998 [info] (devtest) Installing prism 1.1.0 with native extensions

2024-10-04 18:49:26.622 [info] (devtest) Installing sorbet-runtime 0.5.11595

2024-10-04 18:49:26.645 [info] (devtest) Installing rbs 3.6.1 with native extensions

2024-10-04 18:49:38.389 [info] (devtest) Fetching ruby-lsp 0.19.0

2024-10-04 18:49:38.542 [info] (devtest) Installing ruby-lsp 0.19.0

2024-10-04 18:49:38.553 [info] (devtest) Fetching ruby-lsp-rails 0.3.17

2024-10-04 18:49:38.578 [info] (devtest) Installing ruby-lsp-rails 0.3.17

2024-10-04 18:49:38.586 [info] (devtest) Bundle complete! 18 Gemfile dependencies, 103 gems now installed.

2024-10-04 18:49:38.587 [info] (devtest) Bundled gems are installed into `/bundle/vendor`

2024-10-04 18:49:39.392 [info] (devtest) Initializing Ruby LSP v0.19.0...
2024-10-04 18:49:39.400 [info] (devtest) Using formatter specified by user: standard
2024-10-04 18:49:39.400 [info] (devtest) Auto detected linters: rubocop
2024-10-04 18:49:39.400 [info] (devtest) Detected test library: rails
2024-10-04 18:49:39.400 [info] (devtest) Finished initializing Ruby LSP!
2024-10-04 18:49:39.421 [info] (devtest) Activating Ruby LSP Rails add-on v0.3.17

2024-10-04 18:49:39.431 [info] (devtest) Ruby LSP Rails booting server

2024-10-04 18:49:39.760 [info] (devtest) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-04 18:49:39.789 [info] (devtest) [Error - 6:49:39 PM] Server process exited with code 0.
2024-10-04 18:49:39.790 [info] (devtest) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-04 18:49:39.814 [info] (devtest) Discovered version manager rbenv
2024-10-04 18:49:39.814 [info] (devtest) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/devtest using shell: /bin/bash
2024-10-04 18:49:40.121 [info] (devtest) Ruby LSP> Skipping custom bundle setup since /workspaces/devtest/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-10-04 18:49:40.126 [info] (devtest) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: ((bundle check && bundle update ruby-lsp ruby-lsp-rails) || bundle install) 1>&2

2024-10-04 18:49:40.253 [info] (devtest) The Gemfile's dependencies are satisfied

2024-10-04 18:49:40.948 [info] (devtest) Fetching gem metadata from https://rubygems.org/
2024-10-04 18:49:40.949 [info] (devtest) .
2024-10-04 18:49:41.063 [info] (devtest) .
2024-10-04 18:49:41.101 [info] (devtest) .
2024-10-04 18:49:41.125 [info] (devtest) .
2024-10-04 18:49:41.145 [info] (devtest) .
2024-10-04 18:49:41.158 [info] (devtest) .
2024-10-04 18:49:41.165 [info] (devtest) .
2024-10-04 18:49:41.168 [info] (devtest) .
2024-10-04 18:49:41.170 [info] (devtest) .
2024-10-04 18:49:41.646 [info] (devtest)

2024-10-04 18:49:41.664 [info] (devtest) Resolving dependencies...

2024-10-04 18:49:41.939 [info] (devtest) Resolving dependencies...

2024-10-04 18:49:42.206 [info] (devtest) Bundler attempted to update ruby-lsp but its version stayed the same
Bundler attempted to update ruby-lsp-rails but its version stayed the same

2024-10-04 18:49:42.206 [info] (devtest) Bundle updated!

2024-10-04 18:49:42.979 [info] (devtest) Initializing Ruby LSP v0.19.0...
2024-10-04 18:49:42.981 [info] (devtest) Using formatter specified by user: standard
2024-10-04 18:49:42.981 [info] (devtest) Auto detected linters: rubocop
2024-10-04 18:49:42.981 [info] (devtest) Detected test library: rails
2024-10-04 18:49:42.981 [info] (devtest) Finished initializing Ruby LSP!
2024-10-04 18:49:43.027 [info] (devtest) Activating Ruby LSP Rails add-on v0.3.17

2024-10-04 18:49:43.038 [info] (devtest) Ruby LSP Rails booting server

2024-10-04 18:49:43.747 [info] (devtest) Finished booting Ruby LSP Rails server

However, I did experience this right after adding it to an existing image, meaning that I had to run bundle install to install the gems in the new volume, but then it just worked too.
@JeremiahChurch have you run bundle install after adding the feature?
btw, as @andrewn617 and I discussed in #48 , rails is no longer in the $PATH because gems are now installed in /bundle/vendor/ruby/COMPATIBILITY_VERSION/bin, which is not in the $PATH. Adding this directory to the $PATH is a bit tricky because we can't tell what's the compatibility version of the current ruby (or at least, I haven't tried enough). There is a way you can add it back by changing the BUNDLE_BIN to somewhere like /bundle/bin and then add /bundle/bin to your $PATH, but we decided to leave this out of the scope of this feature.
Can you share your devcontainer.json file?

@patriciomacadden
bundle install has been run - I'm able to dev without issue except having to do bundle exec rails s instead of rails s and similar
The best application I can demo this on is a bullettrain copy app
using effectively the dockerfile, compose.yaml & devcontainer.json from this PR https://github.com/bullet-train-co/bullet_train/pull/1620/files
the devcontainer postCreateCommand runs some scripts that run bundle install along with some other 'prep' actions.
while testing when the app is booting and running through installing the bundled gems without the bundle-cache feature enabled ruby-lsp starts and indexes before bundle install even completes.
uncommenting the bundle-cache feature and hitting rebuild on the devcontainer - the app boots without doing a bundle install as it's already cached but immediately pops the "Ruby LSP client: couldn't create connection to server" popup in the IDE. opening a terminal, running bundle install shows that everything is already installed correctly in the bundle. a 'retry' in the ruby LSP popup fails immediately afterwards.

my complete devcontainer.json
devcontainer.json
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ruby
{
    "name": "demo",
    "dockerComposeFile": "compose.yaml",
    "service": "rails-app",
    "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",

    // Features to add to the dev container. More info: https://containers.dev/features.
    "features": {
      "ghcr.io/devcontainers/features/github-cli:1": {},
      "ghcr.io/devcontainers/features/node:1": {},
      "ghcr.io/rails/devcontainer/features/activestorage": {},
      "ghcr.io/rails/devcontainer/features/postgres-client": {},
      "ghcr.io/rails/devcontainer/features/bundler-cache:1": {}
    },

    "containerEnv": {
      "REDIS_URL": "redis://redis:6379/1",
      "PGHOST": "postgres",
      "PGUSER": "postgres",
      "PGPASSWORD": "postgres",
      "CAPYBARA_SERVER_PORT": "45678",
      "SELENIUM_HOST": "selenium"
       // "MEMCACHE_SERVERS": "memcached:11211"
	},

    // Use 'forwardPorts' to make a list of ports inside the container available locally.
    "forwardPorts": [3000, 5432, 6379],

    // Configure tool-specific properties.
    // "customizations": {},

    // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
    // "remoteUser": "root",

    // Use 'postCreateCommand' to run commands after the container is created.
    "postCreateCommand": "corepack enable && yarn set version 4.2.2 && bin/setup-devcontainer",
    "customizations": {
      "vscode": {
        "extensions": [
            "GitHub.copilot",
            "GitHub.copilot-chat",
            "marcoroth.stimulus-lsp",
            "bradlc.vscode-tailwindcss",
            "Shopify.ruby-lsp",
            "eamodio.gitlens",
            "karunamurti.haml"
            // "manuelpuyol.erb-linter",
            // "setobiralo.erb-commenter",
            // "streetsidesoftware.code-spell-checker",
            // "donjayamanne.githistory",
            // "esbenp.prettier-vscode",
            // "jemmyw.rails-fast-nav",
            // "tmikoss.rails-latest-migration"
        ]
      }
    }
  }

Dockerfile
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version
ARG RUBY_VERSION=3.3.5
FROM ghcr.io/rails/devcontainer/images/ruby:$RUBY_VERSION

compose.yaml
name: "demo"

services:
  rails-app:
    build:
      context: ..
      dockerfile: .devcontainer/Dockerfile

    volumes:
    - ../..:/workspaces:cached

    # Overrides default command so things don't shut down after the process ends.
    command: sleep infinity

    # Uncomment the next line to use a non-root user for all processes.
    # user: vscode

    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
    # (Adding the "ports" property to this file will not forward from a Codespace.)
    depends_on:
    - redis
    - postgres
    - selenium
    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally.
    # (Adding the "ports" property to this file will not forward from a Codespace.)
    ports:
    - 45678:45678
    environment:
      COREPACK_ENABLE_DOWNLOAD_PROMPT: 0 # prevent yarn install y/n prompt

  selenium:
    image: seleniarm/standalone-chromium
    restart: unless-stopped

  redis:
    image: redis:7.2
    restart: unless-stopped
    volumes:
    - redis-data:/data

  postgres:
    image: postgres:17rc1
    restart: unless-stopped
    networks:
    - default
    volumes:
    - postgres-data:/var/lib/postgresql/data
    environment:
        POSTGRES_USER: postgres
        POSTGRES_PASSWORD: postgres

  # memcached:
  #   image: memcached:latest
  #   restart: unless-stopped
  #   command: ["-m", "1024"]

volumes:
  redis-data:
  postgres-data:

Please let me know if I can provide anything else!

Hmm, interesting.
So, I've tried a couple of things:

create a new project, add the bundler-cache feature and then build/open the container => ruby-lsp works
with the new project above, remove the bundler-cache feature and then rebuild/open the container => ruby-lsp also works
create a new project, build/open the container => works (of course lol)
with the new project above, add the bundler-cache feature and then rebuild/open the container => ruby-lsp also works

I also removed the volumes a bunch of times. can you try that as well?
It's working in all scenarios for me, so makes me wonder if I'm reproducing the issue the way you're doing it 🤔 . Please let me know if I misinterpreted anything.

bundle install has been run - I'm able to dev without issue except having to do bundle exec rails s instead of rails s and similar

this is because /bundle/vendor/ruby/3.3.0/bin is not in the path, so either you need to use bundle exec or the executables in bin. See one of my comments in #48 . you can fix it but it's not optimus imo.
@JeremiahChurch can you share the output of RubyLSP? (cmd-j -> output tab -> select ruby lsp in the right hand side). Hopefully we can see what's going on in there.
Also, can you see what's in $PATH? And do you have any custom command in the ruby lsp extension?

I'm on a different machine but it has a very similar dev environment - experiencing the same issue.
as requested here's a copy of ruby lsp output and PATH for without feature (working) and with feature (not working)
I'll attempt adding/removing volumes to see if the behavior is any different.
The common pattern for me certainly has been existing app and beginning to use devcontainer - not starting fresh.
Please let me know if anything looks interesting or if you need anything else, really appreciate the help!
path shows the same for both situations
vscode -> workspaces/myapp (ad6c9fe7) $ echo $PATH
/home/vscode/.rbenv/shims:/vscode/vscode-server/bin/linux-x64/d78a74bcdfad14d5d3b1b782f87255d802b57511/bin/remote-cli:/home/vscode/.rbenv/shims:/usr/local/share/nvm/versions/node/v20.17.0/bin:/usr/local/share/rbenv/bin:/usr/local/share/nvm/versions/node/v20.17.0/bin:/usr/local/share/rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/vscode/.local/bin

WITHOUT FEATURE
ruby-lsp
2024-10-05 00:59:26.763 [info] (app) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-05 00:59:26.966 [info] (app) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-05 00:59:27.160 [info] (app) Discovered version manager rbenv
2024-10-05 00:59:27.160 [info] (app) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/myapp using shell: /bin/bash
2024-10-05 00:59:49.184 [info] (app) Ruby LSP> Skipping custom bundle setup since /workspaces/myapp/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-10-05 00:59:49.191 [info] (app) Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2

2024-10-05 00:59:49.549 [info] (app) Bundler can't satisfy your Gemfile's dependencies.
Install missing gems with `bundle install`.

2024-10-05 00:59:50.522 [info] (app) Fetching gem metadata from https://rubygems.org/
2024-10-05 00:59:50.523 [info] (app) .
2024-10-05 00:59:51.028 [info] (app) .
2024-10-05 00:59:51.221 [info] (app) .
2024-10-05 00:59:51.381 [info] (app) .
2024-10-05 00:59:51.505 [info] (app) .
2024-10-05 00:59:51.535 [info] (app) .
2024-10-05 00:59:51.549 [info] (app) .
2024-10-05 00:59:51.551 [info] (app) .
2024-10-05 00:59:52.689 [info] (app)

2024-10-05 00:59:52.791 [info] (app) Resolving dependencies...

2024-10-05 00:59:53.929 [info] (app) Using rake 13.2.1

2024-10-05 00:59:53.937 [info] (app) Using mutex_m 0.2.0

2024-10-05 00:59:53.939 [info] (app) Using timeout 0.4.1
Using base64 0.2.0
Using bigdecimal 3.1.8
Using concurrent-ruby 1.3.4
Using connection_pool 2.4.1
Using drb 2.2.1
Using minitest 5.25.1
Using builder 3.3.0

2024-10-05 00:59:53.945 [info] (app) Using erubi 1.13.0
Using racc 1.8.1
Using crass 1.0.6
Using rack 2.2.9
Using nio4r 2.7.3
Using websocket-extensions 0.1.5
Using zeitwerk 2.6.18
Using marcel 1.0.4

2024-10-05 00:59:53.986 [info] (app) Using mini_mime 1.1.5
Using date 3.3.4

2024-10-05 00:59:53.995 [info] (app) Using public_suffix 6.0.1

2024-10-05 00:59:54.000 [info] (app) Using ansi 1.5.0

2024-10-05 00:59:54.005 [info] (app) Using ast 2.4.2

2024-10-05 00:59:54.011 [info] (app) Using docile 1.4.1

2024-10-05 00:59:54.016 [info] (app) Using dry-initializer 3.1.1

2024-10-05 00:59:54.024 [info] (app) Using csv 3.3.0

2024-10-05 00:59:54.032 [info] (app) Using pagy 6.5.0
Using stringio 3.1.1

2024-10-05 00:59:54.042 [info] (app) Using io-console 0.7.2

2024-10-05 00:59:54.046 [info] (app) Using webrick 1.8.2

2024-10-05 00:59:54.050 [info] (app) Using thor 1.3.2

2024-10-05 00:59:54.054 [info] (app) Using method_source 1.1.0

2024-10-05 00:59:54.059 [info] (app) Using awesome_print 1.9.2

2024-10-05 00:59:54.063 [info] (app) Using aws-eventstream 1.3.0

2024-10-05 00:59:54.067 [info] (app) Using aws-partitions 1.976.0

2024-10-05 00:59:54.071 [info] (app) Using jmespath 1.6.2

2024-10-05 00:59:54.075 [info] (app) Using bcrypt 3.1.20

2024-10-05 00:59:54.079 [info] (app) Using bindex 0.8.1

2024-10-05 00:59:54.083 [info] (app) Using debug_inspector 1.2.0

2024-10-05 00:59:54.089 [info] (app) Using msgpack 1.7.2
Using bundler 2.4.10

2024-10-05 00:59:54.096 [info] (app) Using cancancan 3.6.1

2024-10-05 00:59:54.102 [info] (app) Using chronic 0.10.2
Using uri 0.13.1

2024-10-05 00:59:54.110 [info] (app) Using json 2.7.2

2024-10-05 00:59:54.114 [info] (app) Using logger 1.6.1

2024-10-05 00:59:54.118 [info] (app) Using multipart-post 2.4.1
Using ostruct 0.6.0

2024-10-05 00:59:54.126 [info] (app) Using phonelib 0.9.2
Using observer 0.1.2

2024-10-05 00:59:54.133 [info] (app) Using thread-local 1.1.0

2024-10-05 00:59:54.138 [info] (app) Using colorizer 0.0.2

2024-10-05 00:59:54.144 [info] (app) Using commonmarker 1.1.5 (x86_64-linux)

2024-10-05 00:59:54.148 [info] (app) Using orm_adapter 0.5.0

2024-10-05 00:59:54.152 [info] (app) Using pwned 2.4.1

2024-10-05 00:59:54.156 [info] (app) Using charlock_holmes 0.7.9

2024-10-05 00:59:54.160 [info] (app) Using email_reply_parser 0.5.11

2024-10-05 00:59:54.163 [info] (app) Using fastimage 2.3.1

2024-10-05 00:59:54.168 [info] (app) Using hiredis 0.6.3

2024-10-05 00:59:54.172 [info] (app) Using http_accept_language 2.1.1

2024-10-05 00:59:54.177 [info] (app) Using mini_magick 4.13.2

2024-10-05 00:59:54.182 [info] (app) Using ffi 1.17.0 (x86_64-linux-gnu)

2024-10-05 00:59:54.188 [info] (app) Using hashie 5.0.0

2024-10-05 00:59:54.195 [info] (app) Using possessive 1.0.1

2024-10-05 00:59:54.204 [info] (app) Using htmlentities 4.3.4

2024-10-05 00:59:54.209 [info] (app) Using event_stream_parser 1.0.0

2024-10-05 00:59:54.214 [info] (app) Using unicode-version 1.4.0

2024-10-05 00:59:54.219 [info] (app) Using simpleidn 0.2.3

2024-10-05 00:59:54.223 [info] (app) Using xxhash 0.5.0

2024-10-05 00:59:54.228 [info] (app) Using prism 1.0.0

2024-10-05 00:59:54.232 [info] (app) Using jwt 2.1.0

2024-10-05 00:59:54.237 [info] (app) Using version_gem 1.1.4

2024-10-05 00:59:54.242 [info] (app) Using stripe 13.0.0

2024-10-05 00:59:54.247 [info] (app) Using hashids 1.0.6

2024-10-05 00:59:54.252 [info] (app) Using matrix 0.4.2

2024-10-05 00:59:54.258 [info] (app) Using regexp_parser 2.9.2
Using ruby2_keywords 0.0.5

2024-10-05 00:59:54.266 [info] (app) Using rexml 3.3.7

2024-10-05 00:59:54.270 [info] (app) Using rubyzip 2.3.2

2024-10-05 00:59:54.275 [info] (app) Using websocket 1.2.11

2024-10-05 00:59:54.280 [info] (app) Using choice 0.2.0

2024-10-05 00:59:54.285 [info] (app) Using chunky_png 1.4.0

2024-10-05 00:59:54.293 [info] (app) Using sexp_processor 4.17.2

2024-10-05 00:59:54.297 [info] (app) Using coderay 1.1.3

2024-10-05 00:59:54.301 [info] (app) Using colorize 1.1.0

2024-10-05 00:59:54.306 [info] (app) Using rotp 6.3.0

2024-10-05 00:59:54.312 [info] (app) Using erubis 2.7.0

2024-10-05 00:59:54.318 [info] (app) Using execjs 2.9.1

2024-10-05 00:59:54.322 [info] (app) Using foreman 0.88.1

2024-10-05 00:59:54.327 [info] (app) Using temple 0.10.3

2024-10-05 00:59:54.331 [info] (app) Using tilt 2.4.0

2024-10-05 00:59:54.334 [info] (app) Using honeybadger 5.15.6

2024-10-05 00:59:54.339 [info] (app) Using mini_portile2 2.8.7

2024-10-05 00:59:54.342 [info] (app) Using knapsack_pro 7.8.0

2024-10-05 00:59:54.347 [info] (app) Using language_server-protocol <IP_ADDRESS>

2024-10-05 00:59:54.351 [info] (app) Using lint_roller 1.1.0

2024-10-05 00:59:54.356 [info] (app) Using ruby-progressbar 1.13.0

2024-10-05 00:59:54.360 [info] (app) Using parallel 1.26.3

2024-10-05 00:59:54.364 [info] (app) Using pg 1.5.8

2024-10-05 00:59:54.368 [info] (app) Using rails_autoscale_agent 0.12.0

2024-10-05 00:59:54.373 [info] (app) Using require_all 3.0.0

2024-10-05 00:59:54.377 [info] (app) Using rainbow 3.1.1

2024-10-05 00:59:54.381 [info] (app) Using rqrcode_core 1.2.0

2024-10-05 00:59:54.386 [info] (app) Using unicode-display_width 2.6.0

2024-10-05 00:59:54.390 [info] (app) Using sorbet-runtime 0.5.11595

2024-10-05 00:59:54.394 [info] (app) Using simplecov-html 0.13.1

2024-10-05 00:59:54.398 [info] (app) Using simplecov_json_formatter 0.1.4

2024-10-05 00:59:54.408 [info] (app) Using i18n 1.14.6

2024-10-05 00:59:54.411 [info] (app) Using tzinfo 2.0.6

2024-10-05 00:59:54.415 [info] (app) Using redis-client 0.22.2

2024-10-05 00:59:54.421 [info] (app) Using minitest-retry 0.2.3

2024-10-05 00:59:54.425 [info] (app) Using nokogiri 1.16.7 (x86_64-linux)

2024-10-05 00:59:54.429 [info] (app) Using brakeman 6.2.1
Using psych 5.1.2

2024-10-05 00:59:54.443 [info] (app) Using puma 6.4.3

2024-10-05 00:59:54.447 [info] (app) Using websocket-driver 0.7.6
Using net-protocol 0.2.2

2024-10-05 00:59:54.457 [info] (app) Using multi_xml 0.7.1

2024-10-05 00:59:54.470 [info] (app) Using sentry-ruby 5.19.0

2024-10-05 00:59:54.475 [info] (app) Using addressable 2.8.7

2024-10-05 00:59:54.478 [info] (app) Using parser <IP_ADDRESS>

2024-10-05 00:59:54.482 [info] (app) Using rack-session 1.0.2

2024-10-05 00:59:54.487 [info] (app) Using rack-test 2.1.0

2024-10-05 00:59:54.491 [info] (app) Using warden 1.2.9

2024-10-05 00:59:54.497 [info] (app) Using rack-cors 2.0.2

2024-10-05 00:59:54.502 [info] (app) Using roda 3.84.0

2024-10-05 00:59:54.506 [info] (app) Using rack-mini-profiler 3.3.1

2024-10-05 00:59:54.510 [info] (app) Using sprockets 4.2.1
Using net-http 0.4.1

2024-10-05 00:59:54.518 [info] (app) Using rackup 1.0.0

2024-10-05 00:59:54.524 [info] (app) Using figaro 1.2.0

2024-10-05 00:59:54.528 [info] (app) Using bundler-audit 0.9.2

2024-10-05 00:59:54.532 [info] (app) Using aws-sigv4 1.10.0

2024-10-05 00:59:54.538 [info] (app) Using binding_of_caller 1.0.1

2024-10-05 00:59:54.542 [info] (app) Using bootsnap 1.18.4

2024-10-05 00:59:54.546 [info] (app) Using reline 0.5.10

2024-10-05 00:59:54.550 [info] (app) Using postmark 1.25.1

2024-10-05 00:59:54.555 [info] (app) Using childprocess 5.1.0

2024-10-05 00:59:54.563 [info] (app) Fetching rbs 3.6.1
Using faraday-multipart 1.0.4

2024-10-05 00:59:54.567 [info] (app) Using omniauth 1.9.2

2024-10-05 00:59:54.572 [info] (app) Using unicode-emoji 3.5.0

2024-10-05 00:59:54.577 [info] (app) Using snaky_hash 2.0.1

2024-10-05 00:59:54.581 [info] (app) Using ruby-vips 2.2.2

2024-10-05 00:59:54.585 [info] (app) Using ruby-graphviz 1.2.5

2024-10-05 00:59:54.589 [info] (app) Using selenium-webdriver 4.24.0

2024-10-05 00:59:54.593 [info] (app) Using code_analyzer 0.5.5

2024-10-05 00:59:54.597 [info] (app) Using pry 0.14.2

2024-10-05 00:59:54.601 [info] (app) Using terser 1.2.3

2024-10-05 00:59:54.605 [info] (app) Using haml 6.3.0

2024-10-05 00:59:54.609 [info] (app) Using karafka-rdkafka 0.17.6

2024-10-05 00:59:54.613 [info] (app) Using minitest-reporters 1.7.1

2024-10-05 00:59:54.617 [info] (app) Using loofah 2.22.0

2024-10-05 00:59:54.622 [info] (app) Using xpath 3.2.0

2024-10-05 00:59:54.629 [info] (app) Using rdoc 6.7.0

2024-10-05 00:59:54.634 [info] (app) Using net-imap 0.4.16

2024-10-05 00:59:54.640 [info] (app) Using net-pop 0.1.2

2024-10-05 00:59:54.644 [info] (app) Using net-smtp 0.5.0

2024-10-05 00:59:54.649 [info] (app) Using rqrcode 2.2.0

2024-10-05 00:59:54.654 [info] (app) Using simplecov 0.22.0

2024-10-05 00:59:54.658 [info] (app) Using activesupport 7.1.4

2024-10-05 00:59:54.663 [info] (app) Using sidekiq 7.3.2

2024-10-05 00:59:54.670 [info] (app) Using redis 5.3.0

2024-10-05 00:59:54.675 [info] (app) Using faraday-net_http 3.3.0

2024-10-05 00:59:54.679 [info] (app) Using httparty 0.22.0

2024-10-05 00:59:54.683 [info] (app) Using css_parser 1.19.0

2024-10-05 00:59:54.688 [info] (app) Using rubocop-ast 1.32.3

2024-10-05 00:59:54.693 [info] (app) Using aws-sdk-core 3.206.0

2024-10-05 00:59:54.697 [info] (app) Using launchy 3.0.1

2024-10-05 00:59:54.719 [info] (app) Using image_processing 1.13.0

2024-10-05 00:59:54.726 [info] (app) Using pry-stack_explorer 0.6.1

2024-10-05 00:59:54.730 [info] (app) Using karafka-core 2.4.4

2024-10-05 00:59:54.735 [info] (app) Using rails-html-sanitizer 1.6.0

2024-10-05 00:59:54.740 [info] (app) Using capybara 3.40.0

2024-10-05 00:59:54.744 [info] (app) Using irb 1.14.0

2024-10-05 00:59:54.750 [info] (app) Using mail 2.8.1

2024-10-05 00:59:54.754 [info] (app) Using rails-dom-testing 2.2.0

2024-10-05 00:59:54.759 [info] (app) Using globalid 1.2.1

2024-10-05 00:59:54.764 [info] (app) Using activemodel 7.1.4

2024-10-05 00:59:54.768 [info] (app) Using active_hash 3.3.1

2024-10-05 00:59:54.775 [info] (app) Using inline_svg 1.10.0

2024-10-05 00:59:54.780 [info] (app) Using view_component 3.14.0

2024-10-05 00:59:54.788 [info] (app) Using indefinite_article 0.2.5

2024-10-05 00:59:54.796 [info] (app) Using masamune-ast 2.0.2

2024-10-05 00:59:54.805 [info] (app) Using factory_bot 6.5.0

2024-10-05 00:59:54.816 [info] (app) Using rails_best_practices 1.23.2

2024-10-05 00:59:54.822 [info] (app) Using sentry-sidekiq 5.19.0

2024-10-05 00:59:54.827 [info] (app) Using faraday 2.12.0

2024-10-05 00:59:54.831 [info] (app) Using premailer 1.27.0

2024-10-05 00:59:54.839 [info] (app) Using rubocop 1.65.1

2024-10-05 00:59:54.844 [info] (app) Using aws-sdk-kms 1.91.0

2024-10-05 00:59:54.851 [info] (app) Using letter_opener 1.10.0

2024-10-05 00:59:54.960 [info] (app) Using waterdrop 2.8.0

2024-10-05 00:59:54.963 [info] (app) Using capybara-lockstep 2.2.2

2024-10-05 00:59:54.967 [info] (app) Using debug 1.9.2

2024-10-05 00:59:54.975 [info] (app) Using extended_email_reply_parser 0.5.1

2024-10-05 00:59:54.980 [info] (app) Using capybara-email 3.0.2

2024-10-05 00:59:54.983 [info] (app) Using actionview 7.1.4

2024-10-05 00:59:54.987 [info] (app) Using activejob 7.1.4

2024-10-05 00:59:54.990 [info] (app) Using activerecord 7.1.4

2024-10-05 00:59:54.994 [info] (app) Using valid_email 0.2.1

2024-10-05 00:59:54.998 [info] (app) Using bullet_train-roles 1.7.22

2024-10-05 00:59:55.005 [info] (app) Using faraday-follow_redirects 0.3.0
Using ruby-openai 7.1.0

2024-10-05 00:59:55.009 [info] (app) Using oauth2 2.0.9

2024-10-05 00:59:55.013 [info] (app) Using rubocop-performance 1.21.1

2024-10-05 00:59:55.016 [info] (app) Using standard-custom 1.0.2

2024-10-05 00:59:55.020 [info] (app) Using aws-sdk-s3 1.162.0

2024-10-05 00:59:55.023 [info] (app) Using karafka 2.4.12

2024-10-05 00:59:55.043 [info] (app) Using actionpack 7.1.4
Using nice_partials 0.10.1
Using jbuilder 2.13.0

2024-10-05 00:59:55.050 [info] (app) Using microscope 1.1.1
Using pagy_cursor 0.8.0
Using rails-erd 1.7.2

2024-10-05 00:59:55.059 [info] (app) Using cloudinary 2.2.0

2024-10-05 00:59:55.066 [info] (app) Using omniauth-oauth2 1.7.3

2024-10-05 00:59:55.071 [info] (app) Using standard-performance 1.4.0

2024-10-05 00:59:55.081 [info] (app) Using karafka-web 0.10.3

2024-10-05 00:59:55.085 [info] (app) Using actioncable 7.1.4
Using activestorage 7.1.4
Using actionmailer 7.1.4
Using active_link_to 1.0.5
Using meta-tags 2.22.0
Using railties 7.1.4
Using omniauth-rails_csrf_protection 0.1.2

2024-10-05 00:59:55.088 [info] (app) Using sprockets-rails 3.5.2

2024-10-05 00:59:55.108 [info] (app) Using omniauth-stripe-connect 2.10.1
Using omniauth-google-oauth2 0.8.0
Using omniauth-microsoft_graph 0.3.3

2024-10-05 00:59:55.110 [info] (app) Using standard 1.40.0

2024-10-05 00:59:55.118 [info] (app) Using actionmailbox 7.1.4
Using actiontext 7.1.4

2024-10-05 00:59:55.121 [info] (app) Using premailer-rails 1.12.0
Using postmark-rails 0.22.1

2024-10-05 00:59:55.128 [info] (app) Using turbo-rails 2.0.7
Using cable_ready 5.0.5
Using responders 3.1.1
Using doorkeeper 5.7.1
Using cssbundling-rails 1.4.1
Using factory_bot_rails 6.4.3

2024-10-05 00:59:55.130 [info] (app) Using haml-rails 2.1.0

2024-10-05 00:59:55.132 [info] (app) Using jsbundling-rails 1.3.1

2024-10-05 00:59:55.135 [info] (app) Using sentry-rails 5.19.0

2024-10-05 00:59:55.138 [info] (app) Using stimulus-rails 1.3.4

2024-10-05 00:59:55.142 [info] (app) Using web-console 4.2.1

2024-10-05 00:59:55.146 [info] (app) Using rails 7.1.4

2024-10-05 00:59:55.152 [info] (app) Using turbo_power 0.6.2

2024-10-05 00:59:55.155 [info] (app) Using devise 4.9.4

2024-10-05 00:59:55.175 [info] (app) Using bullet_train-has_uuid 1.7.22
Using bullet_train-routes 1.0.0
Using bullet_train-scope_validator 1.7.22
Using bullet_train-super_load_and_authorize_resource 1.7.22
Using bullet_train-fields 1.7.22
Using showcase-rails 0.4.6
Using bullet_train-super_scaffolding 1.7.22
Using jbuilder-schema 2.6.9
Using bullet_train-integrations 1.7.22
Using bullet_train-integrations-stripe 1.7.22
Using bullet_train-obfuscates_id 1.7.22
Using bullet_train-outgoing_webhooks 1.7.22
Using bullet_train-scope_questions 1.7.22
Using bullet_train-sortable 1.7.22

2024-10-05 00:59:55.176 [info] (app) Using magic_test 0.1.0

2024-10-05 00:59:55.177 [info] (app) Using avo 3.4.1

2024-10-05 00:59:55.178 [info] (app) Using devise-pwned_password 0.1.12

2024-10-05 00:59:55.179 [info] (app) Using devise-two-factor 6.0.0

2024-10-05 00:59:55.182 [info] (app) Using bullet_train-themes 1.7.22

2024-10-05 00:59:55.195 [info] (app) Using bullet_train 1.7.22

2024-10-05 00:59:55.195 [info] (app) Using bullet_train-themes-tailwind_css 1.7.22

2024-10-05 00:59:55.197 [info] (app) Using bullet_train-api 1.7.22

2024-10-05 00:59:55.198 [info] (app) Using bullet_train-themes-light 1.7.22

2024-10-05 00:59:55.201 [info] (app) Using bullet_train-incoming_webhooks 1.7.22

2024-10-05 00:59:55.227 [info] (app) Installing rbs 3.6.1 with native extensions

2024-10-05 00:59:58.488 [info] (app) Fetching ruby-lsp 0.18.4

2024-10-05 00:59:58.602 [info] (app) Installing ruby-lsp 0.18.4

2024-10-05 00:59:58.620 [info] (app) Fetching ruby-lsp-rails 0.3.16

2024-10-05 00:59:58.690 [info] (app) Installing ruby-lsp-rails 0.3.16

2024-10-05 00:59:58.726 [info] (app) Bundle complete! 77 Gemfile dependencies, 275 gems now installed.

2024-10-05 00:59:58.726 [info] (app) Use `bundle info [gemname]` to see where a bundled gem is installed.

2024-10-05 00:59:58.726 [info] (app) 2 installed gems you directly depend on are looking for funding.
  Run `bundle fund` for details

2024-10-05 01:00:00.506 [info] (app) Initializing Ruby LSP v0.18.4...
2024-10-05 01:00:00.529 [info] (app) Auto detected formatter: none
2024-10-05 01:00:00.529 [info] (app) Auto detected linters:
2024-10-05 01:00:00.529 [info] (app) Detected test library: rails
2024-10-05 01:00:00.529 [info] (app) Finished initializing Ruby LSP!
2024-10-05 01:00:00.572 [info] (app) [Standard Ruby] Activating Standard Ruby LSP addon v1.40.0

2024-10-05 01:00:01.068 [info] (app) [Standard Ruby] Initialized Standard Ruby LSP addon 1.40.0

2024-10-05 01:00:01.068 [info] (app) Activating Ruby LSP Rails addon v0.3.16

2024-10-05 01:00:01.100 [info] (app) Ruby LSP Rails booting server

2024-10-05 01:00:06.679 [info] (app) Finished booting Ruby LSP Rails server

2024-10-05 01:00:24.064 [info] (app) Fetching search index for Rails documentation

2024-10-05 01:00:24.364 [info] (app) Finished fetching search index for Rails documentation

WITH FEATURE
ruby-lsp output
2024-10-05 01:04:10.757 [info] (app) Checking if chruby is available on the path with command: /bin/bash -i -c 'chruby --version'
2024-10-05 01:04:10.964 [info] (app) Checking if rbenv is available on the path with command: /bin/bash -i -c 'rbenv --version'
2024-10-05 01:04:11.159 [info] (app) Discovered version manager rbenv
2024-10-05 01:04:11.159 [info] (app) Running command: `rbenv exec ruby -W0 -rjson -e 'STDERR.print("RUBY_LSP_ACTIVATION_SEPARATOR" + { env: ENV.to_h, yjit: !!defined?(RubyVM:: YJIT), version: RUBY_VERSION }.to_json + "RUBY_LSP_ACTIVATION_SEPARATOR")'` in /workspaces/myapp using shell: /bin/bash
2024-10-05 01:04:33.653 [info] (app) Ruby LSP> Skipping custom bundle setup since /workspaces/myapp/.ruby-lsp/Gemfile.lock already exists and is up to date

2024-10-05 01:04:33.666 [info] (app) Ruby LSP> Running bundle install for the custom bundle. This may take a while...

  Run `bundle fund` for details

2024-10-05 01:04:35.081 [info] (app) bundler: failed to load command: ruby-lsp (/home/vscode/.rbenv/versions/3.3.5/bin/ruby-lsp)

2024-10-05 01:04:35.081 [info] (app) /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:308:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/rubygems_integration.rb:336:in `block in replace_bin_path'
	from /home/vscode/.rbenv/versions/3.3.5/bin/ruby-lsp:25:in `<top (required)>'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli/exec.rb:58:in `load'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli/exec.rb:58:in `kernel_load'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli/exec.rb:23:in `run'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli.rb:492:in `exec'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli.rb:34:in `dispatch'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/cli.rb:28:in `start'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/exe/bundle:45:in `block in <top (required)>'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
	from /bundle/vendor/ruby/3.3.0/gems/bundler-2.4.10/exe/bundle:33:in `<top (required)>'
	from /home/vscode/.rbenv/versions/3.3.5/bin/bundle:25:in `load'
	from /home/vscode/.rbenv/versions/3.3.5/bin/bundle:25:in `<main>'

2024-10-05 01:04:35.085 [info] (app) [Error - 1:04:35 AM] Server initialization failed.
2024-10-05 01:04:35.085 [info] (app)   Message: Pending response rejected since connection got disposed
  Code: -32097
2024-10-05 01:04:35.085 [info] (app) [Error - 1:04:35 AM] Ruby LSP client: couldn't create connection to server.
2024-10-05 01:04:35.085 [info] (app)   Message: Pending response rejected since connection got disposed
  Code: -32097
2024-10-05 01:04:35.085 [error] (app) Error starting the server: Pending response rejected since connection got disposed
2024-10-05 01:04:35.086 [info] (app) [Error - 1:04:35 AM] Server process exited with code 1.
2024-10-05 01:04:45.840 [info] (app) [Error - 1:04:45 AM] Connection to server got closed. Server will not be restarted.

The common pattern for me certainly has been existing app and beginning to use devcontainer - not starting fresh.

I didn't think this had anything to do with it because I have couple of projects running with devcontainer (added with rails g devcontainer) and this feature and I thought they were working just fine... until I tried again.
I can now reproduce the error. Unfortunately, it seems to be something to do with ruby-lsp. See https://github.com/Shopify/ruby-lsp/issues/2607. Apparently setting BUNDLE_PATH breaks it.
So, removed the volume and tried again, and this is what I found:
ruby-lsp's initialization creates a .ruby-lsp folder with a Gemfile requiring ruby-lsp and ruby-lsp-rails. Then it should install it.
On a newly created container, the bundle install command succeeds and ruby-lsp fails to start. Then inside the container, ruby-lsp is installed:
$ which ruby-lsp
/home/vscode/.rbenv/shims/ruby-lsp

but then when you run it, it fails:
$ ruby-lsp
Ruby LSP> Skipping custom bundle setup since /workspaces/timetracker/.ruby-lsp/Gemfile.lock already exists and is up to date
Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2
The Gemfile's dependencies are satisfied
bundler: failed to load command: ruby-lsp (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp)
/bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/rubygems_integration.rb:265:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/rubygems_integration.rb:293:in `block in replace_bin_path'
        from /bundle/vendor/ruby/3.3.0/bin/ruby-lsp:25:in `<top (required)>'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:58:in `load'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:58:in `kernel_load'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli/exec.rb:23:in `run'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli.rb:451:in `exec'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/command.rb:28:in `run'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor.rb:527:in `dispatch'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli.rb:34:in `dispatch'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/vendor/thor/lib/thor/base.rb:584:in `start'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/cli.rb:28:in `start'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/exe/bundle:28:in `block in <top (required)>'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
        from /bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/exe/bundle:20:in `<top (required)>'
        from /home/vscode/.rbenv/versions/3.3.4/bin/bundle:25:in `load'
        from /home/vscode/.rbenv/versions/3.3.4/bin/bundle:25:in `<main>'

if you try to run the exe directly, you'll notice that /bundle/vendor/ruby/3.3.0/bin/ruby-lsp is missing. if you go to the .ruby-lsp folder and ruby bundle install you can see the gems are now installed.
If you run ruby-lsp within the .ruby-lsp folder, it works:
$ ruby-lsp
Ruby LSP> Skipping custom bundle setup since LSP dependencies are already in /workspaces/timetracker/.ruby-lsp/Gemfile
Ruby LSP> Running bundle install for the custom bundle. This may take a while...
Ruby LSP> Command: (bundle check || bundle install) 1>&2
The Gemfile's dependencies are satisfied

if you run outside (in your project's root folder), it doesn't work (same output as the error above).
If you run using the absolute path to the bin directory (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp), it doesn't work either.
If you run using the absolute path to the gem directory (/bundle/vendor/ruby/3.3.0/gems/ruby-lsp-0.19.1/exe/ruby-lsp), it doesn't work either.
Prepending bundle exec doesn't do anything either.
I now don't understand what's the difference between a newly created project vs an existing one - at some point, both scenarios build the image/container from scratch.

I'm still trying to understand what's the difference between a newly created rails project vs an existing one with new devcontainer config. Both have pretty much the same setup: same $BUNDLE_PATH, same $PATH, same ruby-lsp version (0.19.1).
With the existing project with new devcontainer config, however, it seems to break when the rubygems bin (/bundle/vendor/ruby/3.3.0/bin/ruby-lsp) tries to activate the gem bin path. In both cases it resolves correctly to /home/vscode/.rbenv/versions/3.3.4/lib/ruby/gems/3.3.0/gems/ruby-lsp-0.19.1/exe/ruby-lsp (though it's not in the BUNDLE_PATH), but in the existing project it fails to execute.
/bundle/vendor/ruby/3.3.0/gems/bundler-2.5.6/lib/bundler/rubygems_integration.rb:265:in `block in replace_bin_path': can't find executable ruby-lsp for gem ruby-lsp. ruby-lsp is not currently included in the bundle, perhaps you meant to add it to your Gemfile? (Gem::Exception)

Question for @andrewn617. Off-topic and out of curiosity, why are we using rbenv in the devcontainer? If we stick to just one ruby version (for example using ruby's official docker images as our base image), it would be easier to just set up /usr/local/bundler as a volume and we wouldn't be messing around with env vars at all (no rbenv in the path, no separate bundle_path), etc.

a hacky fix for this is to add another containerEnv of "GEM_HOME": "/bundle/vendor/ruby/3.3.0/"
This restores rails and other gems because they are now all installed in the same folder that bundler is using. ruby-lsp and other system gems all go back to working.
This feels more right because it restores the functionality to 'base' before installing the feature while still having the persisted gem storage for faster boots.
I'm not sure of the downfalls of this.
I'm sure it could also be handled as a script to better match multiple ruby versions. Since that ruby version folder is a moving target. Something like  "postCreateCommand": "sudo chown -R ${USER} /bundle && export GEM_HOME=$BUNDLE_PATH/ruby/$(ruby -e 'puts RbConfig::CONFIG["ruby_version"]')"

hey @JeremiahChurch , that indeed solves it. But I feel like it's a bit hacky to export the env var in the postCreateCommand instead of the containerEnv section of the devcontainer-feature.json. Unfortunately it wouldn't work because it won't do command substitutions (it's what I wanted to do before changing the BUNDLE_PATH).
I'm still trying to figure out why this feature works for newly created projects but not for an existing one - I think that is key.

running into the same issue. following up 🙏

Hey all,
could you please check, if my change in https://github.com/rails/rails/pull/53161 would solve your issues?
Thanks a lot.


NEXTJS AND REACT INSTALLATION FILES IN ONE FOLDER

the nextjs files is mixed up with the former create react app files you installed.
will need to clean up the folders and work with nextjs only.

the nextjs files is mixed up with the former create react app files you installed. will need to clean up the folders and work with nextjs only.

Oh. I'll look into that


test_ec_compressed_points is very slow in SGX

This test takes over 20 seconds in SGX on my machine but less than 1 second on Linux. Changing the optimization level seems to have no effect.

Adding some info we gathered back then with @MihirLuthra.
MbedTLS implements comb methods for scalar multiplication (Algorithm 4 due to an attack by Louis Goubin, MbedTLS code). The first step is to precompute a list of generator multiples that is memory intensive (the list is thus fixed per curve).
To optimize one scalar mult, it could be useful to tune flags related to this algorithm (see MBEDTLS_ECP_WINDOW_SIZE (and COMB_MAX_PRE)).
To optimize several scalar mults: Precomputed points are cached within an EcGroup within each key. It would be great if MbedTLS reused static precomputation tables. This idea was discussed here and added to 3.X here.


Compilation Error for Newton.Json dependency

Hi James,
Setup
DotnetSdk 2.1
Azure functions v2
On build I'm seeing the below NewtonSoft dependency error below.  I note https://github.com/JamesRandall/FunctionMonkey/issues/8 but seems to have reared its head again.
Current nugets in use:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. Could not find or load a specific file.
Anything obvious I'm doing wrong?

Hi, could you try it with Newtonsoft.Json 11.0.2 and let me know if that helps please?

Hi James,
Think this is related.  https://github.com/reactiveui/refit/issues/670
Trying to resolve but downgrading Refit version, currently in dependency hell

Yeah I thought it would be something like that.
Azure Functions is a bit of a nightmare with dependencies. It's much much better than it was but the whole "in process with their deployed runtime" stuff continues to burn.

Thanks James,
So for anyone else...

These versions of Refit Nuget packages seem to work.
Any plans on supporting NewtonSoft => 12.0 James?

I'm not sure its anything I can do anything about myself - the problem is in the Azure Functions runtime. They have relaxed the dependency requirement but its still causing issues I see. It sounds like their is more work in progress and the .30 version of Functions is in beta so maybe this will address it.
Worth reading this thread: https://github.com/Azure/azure-functions-host/issues/4049
And the below highlight:

For runtime binding behavior in 2.x: Currently, the runtime unifies (Json.NET specifically) to the version it uses (currently, 11.x), which enables redirection and is only problematic in the cases where functions or dependencies take a dependency on new functionality (which is the case for some of the issues reported above). We're tracking a fix for this as well, but this last item has to be carefully handled to ensure a good experience and make sure existing apps are not negatively impacted.

I'll track it and once resolved make sure FM is ok.

Apologies, should have realised the dependency was on the framework and not the product.
Great work BTW, really like the idea of the CQS approach coupled with TDD.  Fits nicely into our real estate and follows best practices too :)

No worries! It's not always obvious what's going on with dependencies at the best of times and when you add the Functions runtime into the mix.... well!


[goctl] how to replace the table prefix

now

table: t_user, t_role
genModel: tuser, trole

expect

table: t_user, t_role
genModel: user, role

How to achieve this effect with goctl?

it's not support to replace the table prefix so far, and there has no plan to support it.

so, is there any way to define table prefix in the model？

it's not support to replace the table prefix so far, and there has no plan to support it.

so, is there any way to define table prefix in the model？


Can I run a spider attack on URLs from the loaded session?

I run an spider attack on our website then saved sessions. If i'm not mistaken, saved sessions stores the URLs that were attack previously. Is it possible to do another spider attack using the loaded saved session? How?

Hi! Yep, if you load the previous session with zap-cli session load /path/to/saved-session, then you can simply run zap-cli spider <URL to spider> again. If you have a saved context, you can also pass the context name using the --context-name parameter, and likewise if you have a saved authentication method and users, you can pass the name of the user you would like to run the spider as using the --user-name parameter.
Hope that helps!

Yep, you can export the context to a file, which will include the authentication method you have configured:
$ zap-cli context export --name ContextNameHere -f /path/to/context/file.context

And then it can be imported later with:
$ zap-cli context import /path/to/context/file.context

Thank you, Grunny! It's working now. The other problem was the loading of saved session file. It must be on a full path 'zap-cli session load full_path/session_file'.


Create Added ol and ul tag

Follow the CONTRIBUTING.md file before giving wrong PRs.

Don't change any of the previous contributor's commits.
Don't make any unnecessary changes on other files.


Add dir change reward and previous weights loading

Add reward for velocity sign change
Add loading from previous weights (thanks @rtjord)

yay


SmarInvs Lib override my plugin

Hi,
I'm using 1.14.4-R0.1-SNAPSHOT with SmartInvs 1.2.7 as a Library inside my Plugin and maven as a build system.
When I build my plugin without SmartInvs in it, everything works fine but if my plugin is build with SmartInvs in it,
when spigot launch, it only detect SmartInvs and my plugin doesn't work at all.
Creating a InventoryManager and using init() doesn't change anything.
Does someone know why it happens ?
Thanks

you can use maven-shade-plugin with relocation feature.

So I just shade fr.minuskube.inv to fr.minuskube.shade.inv  ?

I found the problem, the plugin.yml from SmartInvs override mine when I put it in my jar with maven :/

I think you can exclude this file with the maven shade plugin

I don't think so but I will soon switch to gradle and I know it possible with gradle.
Anyway, thanks, you should probably mention it somewhere


doc: add reference to uv_update_time from uv_timer_start

I'm not sure this is correct. It probably isn't. I have no idea about this .rst thing. Hope this is a decent piece of text to start from at least.

Hey, thanks for the patch!  Left a comment about the reference syntax, otherwise it's ok.

Thanks, I didn't get that reference system. This PR lies in the top now so it should be mergable.

Landed in 8ebecf6, sorry for the delay! I see this is your first commit in libuv Alex, thank you and welcome aboard!

Thanks :+1:


Download subtitles using hash check from OpenSubtitles

It seems SMPlayer doesn't depend on the file name for downloading subtitles from OpenSubtitles.org. I was expecting the same behaviour from subliminal but noticed it doesn't find anything if the filename is changed to something like E01.mp4. If I add the episode name it downloads the subtitle.
Can you please support the hash match for opensubtitles?

It does already match with hash. Please provide debug logs as described here.

Please find the details below:
$ sha256sum E08.\ Rixty\ Minutes.mkv
e9ace93f7bbff070cb4709148924fb5dc506a1bf5c7e37d008d08874c8afc4bc  E08. Rixty Minutes.mkv

$ sha256sum E08.mkv
e9ace93f7bbff070cb4709148924fb5dc506a1bf5c7e37d008d08874c8afc4bc  E08.mkv

$ subliminal --debug download -l en E08.mkv
Collecting videos  [####################################]  100%  E08.mkvDEBUG:subliminal.cli:Collecting path E08.mkv
INFO:subliminal.core:Scanning video 'E08.mkv' in ''
ERROR:subliminal.cli:Unexpected error while collecting path E08.mkv
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/subliminal/cli.py", line 352, in download
    video = scan_video(p)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/core.py", line 380, in scan_video
    video = Video.fromguess(path, guessit(path))
  File "/usr/local/lib/python3.5/dist-packages/subliminal/video.py", line 93, in fromguess
    return Episode.fromguess(name, guess)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/video.py", line 166, in fromguess
    raise ValueError('Insufficient data to process the guess')
ValueError: Insufficient data to process the guess
Collecting videos  [####################################]  100%
0 video collected / 0 video ignored / 1 error

$ subliminal --debug download -l en E08.\ Rixty\ Minutes.mkv 2>&1 | tee debug_correct.log
Collecting videos
DEBUG:subliminal.cli:Collecting path E08. Rixty Minutes.mkv
INFO:subliminal.core:Scanning video 'E08. Rixty Minutes.mkv' in ''
DEBUG:subliminal.core:Size is 197689796
DEBUG:subliminal.core:Computed hashes {'thesubdb': '87231eda0c04ada906d179c71d861556', 'napiprojekt': '6370f22871f5e8d09d5bb9427b40795e', 'opensubtitles': '3a8d748cf6edf626', 'shooter': 'fb40812ba77ab6a2b4eaa6399bb5d707;f4a89182f1884c22cada2da84d18fca5;c26cc03161b16948ae2ec7b8d9b12feb;3f2c61a1ad4b57aee72dc0a20154a54a'}
DEBUG:subliminal.core:Found subtitles {}
INFO:subliminal.core:Refining video with metadata
DEBUG:subliminal.refiners.metadata:Found resolution 1080p
DEBUG:subliminal.refiners.metadata:Found audio_codec AAC
DEBUG:subliminal.refiners.metadata:Found embedded subtitle {<Language [und]>}
INFO:subliminal.core:Refining video with tvdb
INFO:subliminal.refiners.tvdb:Searching series 'Rixty Minutes'
WARNING:subliminal.refiners.tvdb:No results for series
INFO:subliminal.core:Refining video with omdb
ERROR:subliminal.core:Failed to refine video
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/subliminal/core.py", line 542, in refine
    refiner_manager[refiner].plugin(video, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/refiners/omdb.py", line 115, in refine
    results = search(video.series, 'series', video.year)
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 1231, in decorate
    should_cache_fn)
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 833, in get_or_create
    async_creator) as value:
  File "/usr/local/lib/python3.5/dist-packages/dogpile/lock.py", line 154, in __enter__
    return self._enter()
  File "/usr/local/lib/python3.5/dist-packages/dogpile/lock.py", line 94, in _enter
    generated = self._enter_create(createdtime)
  File "/usr/local/lib/python3.5/dist-packages/dogpile/lock.py", line 145, in _enter_create
    created = self.creator()
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 800, in gen_value
    created_value = creator()
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 1227, in creator
    return fn(*arg, **kw)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/refiners/omdb.py", line 76, in search
    results = omdb_client.search(title, type, year)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/refiners/omdb.py", line 59, in search
    r.raise_for_status()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 840, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: http://www.omdbapi.com/?r=json&v=1&s=Rixty+Minutes&page=1&type=series
1 video collected / 0 video ignored / 0 error
Downloading subtitles
INFO:subliminal.core:Listing subtitles with provider 'tvsubtitles' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider tvsubtitles
INFO:subliminal.core:Listing subtitles with provider 'podnapisi' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider podnapisi
INFO:subliminal.providers.podnapisi:Searching subtitles {'sL': 'en', 'sXML': 1, 'sTE': 8, 'sK': 'Rixty Minutes', 'sTS': 1}
INFO:subliminal.core:Listing subtitles with provider 'opensubtitles' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider opensubtitles
INFO:subliminal.providers.opensubtitles:Logging in
INFO:subliminal.providers.tvsubtitles:Searching show id for 'Rixty Minutes'
INFO:subliminal.core:Skipping provider 'subscenter': no language to search for
INFO:subliminal.core:Listing subtitles with provider 'shooter' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider shooter
INFO:subliminal.core:Listing subtitles with provider 'thesubdb' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider thesubdb
INFO:subliminal.providers.thesubdb:Searching subtitles {'action': 'search', 'hash': '87231eda0c04ada906d179c71d861556'}
INFO:subliminal.core:Listing subtitles with provider 'legendastv' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider legendastv
INFO:subliminal.core:Listing subtitles with provider 'addic7ed' and languages {<Language [en]>}
DEBUG:subliminal.providers.shooter:Searching subtitles {'filehash': 'fb40812ba77ab6a2b4eaa6399bb5d707;f4a89182f1884c22cada2da84d18fca5;c26cc03161b16948ae2ec7b8d9b12feb;3f2c61a1ad4b57aee72dc0a20154a54a', 'pathinfo': '/home/vaio/Downloads/torrents/Rick and Morty (2013-)/S01/E08. Rixty Minutes.mkv', 'lang': 'eng', 'format': 'json'}
INFO:subliminal.core:Initializing provider addic7ed
DEBUG:subliminal.providers.addic7ed:Getting show id
WARNING:subliminal.providers.addic7ed:Series not found in show ids
ERROR:subliminal.providers.tvsubtitles:No show id found for 'Rixty Minutes' ({'year': None})
INFO:subliminal.providers.addic7ed:Searching show ids with {'search': 'Rixty Minutes', 'Submit': 'Search'}
ERROR:subliminal.core:Unexpected error in provider 'addic7ed'
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/subliminal/core.py", line 118, in list_subtitles_provider
    return self[provider].list_subtitles(video, provider_languages)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/providers/addic7ed.py", line 273, in list_subtitles
    return [s for s in self.query(video.series, video.season, video.year)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/providers/addic7ed.py", line 228, in query
    show_id = self.get_show_id(series, year, country)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/providers/addic7ed.py", line 222, in get_show_id
    show_id = self._search_show_id(series)
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 1231, in decorate
    should_cache_fn)
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 833, in get_or_create
    async_creator) as value:
  File "/usr/local/lib/python3.5/dist-packages/dogpile/lock.py", line 154, in __enter__
    return self._enter()
  File "/usr/local/lib/python3.5/dist-packages/dogpile/lock.py", line 94, in _enter
    generated = self._enter_create(createdtime)
  File "/usr/local/lib/python3.5/dist-packages/dogpile/lock.py", line 145, in _enter_create
    created = self.creator()
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 800, in gen_value
    created_value = creator()
  File "/usr/local/lib/python3.5/dist-packages/dogpile/cache/region.py", line 1227, in creator
    return fn(*arg, **kw)
  File "/usr/local/lib/python3.5/dist-packages/subliminal/providers/addic7ed.py", line 170, in _search_show_id
    raise TooManyRequests()
subliminal.exceptions.TooManyRequests
INFO:subliminal.providers.legendastv:Searching title 'rixty minutes'
DEBUG:subliminal.providers.shooter:No subtitles found
DEBUG:subliminal.providers.legendastv:Found 0 titles
DEBUG:subliminal.providers.thesubdb:Found subtitle <TheSubDBSubtitle '87231eda0c04ada906d179c71d861556-en' [en]>
DEBUG:subliminal.providers.opensubtitles:Logged in with token 'Hx-38XwedHWeVlFnNY9gHDqii40'
INFO:subliminal.providers.opensubtitles:Searching subtitles [{'moviehash': '3a8d748cf6edf626', 'moviebytesize': '197689796', 'sublanguageid': 'eng'}, {'sublanguageid': 'eng', 'tag': 'E08. Rixty Minutes.mkv'}, {'episode': 8, 'query': 'Rixty Minutes', 'season': 1, 'sublanguageid': 'eng'}]
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954353688' [en]> by moviehash
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954359713' [en]> by fulltext
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954841522' [en]> by fulltext
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954369758' [en]> by fulltext
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954353688' [en]> by fulltext
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954365520' [en]> by fulltext
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1954898502' [en]> by fulltext
DEBUG:subliminal.providers.podnapisi:No subtitles found
INFO:subliminal.core:Discarding provider addic7ed
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954353688' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.providers.opensubtitles:Match on hash discarded
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954359713' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954841522' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954369758' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954353688' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954365520' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1954898502' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'episode', 'year', 'season'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 151 with final matches {'episode', 'year', 'season', 'hearing_impaired'}
INFO:subliminal.score:Computing score of <TheSubDBSubtitle '87231eda0c04ada906d179c71d861556-en' [en]> for video <Episode ['Rixty Minutes', 1x8]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hearing_impaired': 1, 'year': 90, 'release_group': 15, 'hash': 359, 'season': 30, 'resolution': 2, 'episode': 30, 'audio_codec': 3, 'video_codec': 2, 'format': 7, 'series': 180}
DEBUG:subliminal.score:Found matches {'hash'}
DEBUG:subliminal.score:Keeping only hash match
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 360 with final matches {'hash', 'hearing_impaired'}
INFO:subliminal.core:Downloading subtitle <TheSubDBSubtitle '87231eda0c04ada906d179c71d861556-en' [en]>
INFO:subliminal.providers.thesubdb:Downloading subtitle <TheSubDBSubtitle '87231eda0c04ada906d179c71d861556-en' [en]>
INFO:subliminal.subtitle:Guessing encoding for language en
DEBUG:subliminal.subtitle:Trying encodings ['utf-8', 'latin-1']
INFO:subliminal.subtitle:Guessed encoding utf-8
INFO:subliminal.subtitle:Guessing encoding for language en
DEBUG:subliminal.subtitle:Trying encodings ['utf-8', 'latin-1']
INFO:subliminal.subtitle:Guessed encoding utf-8
DEBUG:subliminal.core:All languages downloaded
Some providers have been discarded due to unexpected errors: addic7ed
DEBUG:subliminal.core:Terminating initialized providers
INFO:subliminal.core:Terminating provider podnapisi
INFO:subliminal.core:Terminating provider opensubtitles
INFO:subliminal.providers.opensubtitles:Logging out
DEBUG:subliminal.providers.opensubtitles:Logged out
INFO:subliminal.core:Terminating provider shooter
INFO:subliminal.core:Terminating provider thesubdb
INFO:subliminal.core:Terminating provider tvsubtitles
INFO:subliminal.core:Terminating provider legendastv
INFO:subliminal.core:Terminating provider addic7ed
INFO:subliminal.core:Saving <TheSubDBSubtitle '87231eda0c04ada906d179c71d861556-en' [en]> to 'E08. Rixty Minutes.en.srt'
Downloaded 1 subtitle

As I mentioned earlier, SMPlayer finds the subtitle in both the cases.

Subliminal doesn't even attempt to download the subtitles because there is not enough information in the video file to ensure minimal coherence of results.
Subliminal cannot check if the hash is a sane match DEBUG:subliminal.providers.opensubtitles:Match on hash discarded by cross checking with other informations: https://github.com/Diaoul/subliminal/blob/master/subliminal/providers/opensubtitles.py#L81-L85

I understand point 1, the name is far too short.
However, can you please explain the problem with hash match, my understanding is it should be unique for a file. If you think the cross verification is really important, why not:

provide a override option or,
notify the user that the subtitle is based on a hash match and may not be the correct one. If the user still agrees to download it, get it?

Opensubtitles hashes are not unique, this is why we need this extra check. You are the first to report that subliminal is too strict.
I can see two problems with your solutions:

This issue is only related to opensubtitles and subliminal is provider agnostic, I'm not a big fan of introducing different behaviors on a provider basis. The scoring should take care of this.
Subliminal is non interactive by design, it's not possible to "ask the user". Maybe I'll consider an interactive mode in the future but it's a lot of work.

/cc @pannal

I'm not a big fan of introducing different behaviors on a provider basis

I think I was looking for a distinction between hash/non-hashed providers by the program option... not specifically opensubtitles.

Only opensubtitles hash has problems, haven't heard of issues with other hashes..

Only opensubtitles hash has problems, haven't heard of issues with other hashes..

From your response my understanding is the code doesn't do only hash check for files whose names are too short for any provider, not only opensubtitles.

Anyway, here's a little background: I wanted to replace SMPlayer with mpv media player. The only issue blocking me was this feature. I tend to arrange the series in the S0n->E0n hierarchy without names. Many series doesn't have any names per episodes as well (e.g. House of Cards). Found subliminal dowsn't work with these.
I found a good alternative in OpenSubtitlesDownload and hr back and it's working well for me so far.
I leave it up to your good judgment on whether you would support this feature or not. Personally I think it would be a good feature to have because regarding the subs SMPlayer was doing quiet well for me over the past 3 years.

Chiming in here.
Well, I have a pretty big sample size with Sub-Zero and over the years it's proven good to be even more strict when it comes to OpenSubtitles hash data, than subliminal itself currently is.
Those hashes can be and are being fed into the system by humans. Humans fail, thus creating wrong hash matches for subtitles on OS. I had to go as far as sanity-checking the hashes against certain portions of the media file (movie name, series, etc.), because it became such a problem for SZ users.
I've thought about explicit provider ordering; perhaps one could set a flag to prioritize hash-based providers over non-hash-based ones.

Subliminal guesses the name using the given path, you can try to feed more information to subliminal by running it from your video folder:
subliminal download -l en House of Cards/S03/E05.mkv

Also note that subliminal won't attempt to download subtitles for videos that already have some so you can run it on the whole video folder if you want.

as with #744, can't reproduce anymore; matching subtitles by hash on opensubtitles.org works even with the most vague filename:
$ ~/dev/subliminal/subliminal.py --debug download -p opensubtitles -r hash -l en movie.mkv
Collecting videos  [------------------------------------]    0%  movie.mkvDEBUG:subliminal.cli:Collecting path movie.mkv
INFO:subliminal.core:Scanning video 'movie.mkv' in ''
DEBUG:subliminal.core:Size is<PHONE_NUMBER>
DEBUG:subliminal.core:Found subtitles {}
INFO:subliminal.core:Refining video with hash
DEBUG:subliminal.refiners.hash:Computing hashes for 'movie.mkv'
DEBUG:subliminal.refiners.hash:Computed hashes {'opensubtitles': 'b0352ce66d08c62f'}
INFO:subliminal.core:Refining video with hash
DEBUG:subliminal.refiners.hash:Computing hashes for 'movie.mkv'
DEBUG:subliminal.refiners.hash:Computed hashes {'opensubtitles': 'b0352ce66d08c62f'}
Collecting videos  [####################################]  100%
1 video collected / 0 video ignored / 0 error
Downloading subtitles  [------------------------------------]    0%  movie.mkvINFO:subliminal.core:Listing subtitles with provider 'opensubtitles' and languages {<Language [en]>}
INFO:subliminal.core:Initializing provider opensubtitles
INFO:subliminal.providers.opensubtitles:Logging in
DEBUG:subliminal.providers.opensubtitles:Logged in with token 'URr3MLZrmNTTvOrmDSTzt70ng96'
INFO:subliminal.providers.opensubtitles:Searching subtitles [{'moviehash': 'b0352ce66d08c62f', 'moviebytesize': '3141729583', 'sublanguageid': 'eng'}, {'tag': 'movie.mkv', 'sublanguageid': 'eng'}, {'query': 'movie', 'sublanguageid': 'eng'}]
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1955298518' [en]> by moviehash
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1955307575' [en]> by moviehash
DEBUG:subliminal.providers.opensubtitles:Found subtitle <OpenSubtitlesSubtitle '1955293023' [en]> by moviehash

< snip >

DEBUG:subliminal.score:Found matches {'country'}
INFO:subliminal.score:Computed score 45 with final matches {'country'}
INFO:subliminal.score:Computing score of <OpenSubtitlesSubtitle '1952304620' [en]> for video <Movie [movie]> with {'hearing_impaired': False}
DEBUG:subliminal.score:Using scores {'hash': 269, 'title': 135, 'year': 45, 'country': 45, 'release_group': 15, 'streaming_service': 15, 'source': 7, 'audio_codec': 3, 'resolution': 2, 'video_codec': 2, 'hearing_impaired': 1}
DEBUG:subliminal.score:Found matches {'country'}
DEBUG:subliminal.score:Matched hearing_impaired
INFO:subliminal.score:Computed score 46 with final matches {'hearing_impaired', 'country'}
INFO:subliminal.core:Downloading subtitle <OpenSubtitlesSubtitle '1956395986' [en]>
INFO:subliminal.providers.opensubtitles:Downloading subtitle <OpenSubtitlesSubtitle '1956395986' [en]>
DEBUG:subliminal.core:All languages downloaded
Downloading subtitles  [####################################]  100%
DEBUG:subliminal.core:Terminating initialized providers
INFO:subliminal.core:Terminating provider opensubtitles
INFO:subliminal.providers.opensubtitles:Logging out
DEBUG:subliminal.providers.opensubtitles:Logged out
INFO:subliminal.core:Saving <OpenSubtitlesSubtitle '1956395986' [en]> to 'movie.en.srt'
Downloaded 1 subtitle


The error toast message vanishes very quickly. It should not auto-dismiss.

What would you like to be added:
The error toast message should not be dismissed automatically and should wait for the user to close it.
Why is this needed:
When doing certain operations e.g.: a release upgrade, sometimes there is a failure and LENS displays the error message in the form of a toast message at the top-right corner. However, this toast message is auto-dismissed within less than 5 seconds and the user cannot even read the error message properly.
The suggestion here is that the error toast messages (red toasts) should not get dismissed automatically and instead wait for user interaction.
The success toast messages (green toasts) can continue to be dismissed automatically.
Environment you are Lens application on:

Kubernetes distribution: EKS, GKE & OpenShift
Desktop OS: MacOS Ventura 13.3.1 (22E261)

Note for the time being, if you mouse over the notification that delays the auto-closing of them.

Note for the time being, if you mouse over the notification that delays the auto-closing of them.

Ahh, good to know!

This has been resolved by #7599. Error notifications now don't auto close by default.

Thank you @Nokel81


Better support for OpenCV & RXTX

counterpart of https://github.com/ev3dev-lang-java/installer/pull/41 - split OpenCV and RXTX installers
run programs only through -jar ...
add boolean flags opencv=true/false and rxtx=true/false to config.gradle
add option for custom class paths

I haven't updated README yet.

It is a good idea this kind of actions if the solution is not clear.

Fixed in commit c63b75beb79362524a839da60f9daa5ae11e810d

Let's break this apart


Add possibility to read Imagick or GDImage instance directly with ImageManager::read()

Most use cases would use Imagick or GD and it would be useful to include these as parameters in the new read function like the make function had done in previous versions, so you can extend the functionality by switching between the two with core()->native and read().

As far as I understand you, you would like to be able to read in objects of type GDImage or Imagick directly via the ImageManager::class. I will look into this.

Turns out, the Decoder are already there, but they were not linked in the input handler. Will be included in the next feature release.


various qscript renamings

Current coverage is 63.55% (diff: 85.71%)

Merging #1533 into master will increase coverage by 0.84%

@@             master      #1533   diff @@
==========================================
  Files           324        324
  Lines         15240      15038   -202
  Methods       14765      14761     -4
  Messages          0          0
  Branches        144        138     -6
==========================================
+ Hits           9556       9557     +1
+ Misses         5684       5481   -203
  Partials          0          0

Powered by Codecov. Last update 4823e4a...871e694

I think this, too, looks good. I think that the Normalizable type class should be renamed – Rewrite.normalize is much closer to actual normalization – and we should in general keep instances in the typeclass companion rather than the type companion (at least for these QScripty things, where the instances are really pieces of a bigger function).


Pass video without the json file

@kaylode thanks for great work !
How to run the code with new video that don't have the json file that include annotations as in demo folder, I have multiple videos and I want to use the pretrained model on  them
!python run.py --input_path='/content/main/demo/sample/cam_04.mp4' \
              --output_path="/content/results" \
              --weight="/content/gdrive/MyDrive/best.pt"

as we can see we should have a json file in the same folder (demo/sample) with the video and it must have the same name, what if we want to pass a new video that don't have a json of annotations ?

is it run successfully !!
i can't run it successfully
it's give me an error :
Traceback (most recent call last):
File "C:\AhmedHefnawy\buy\altr\vehicle-counting-master\vehicle-counting-master\run.py", line 48, in
main(args, config)
File "C:\AhmedHefnawy\buy\altr\vehicle-counting-master\vehicle-counting-master\run.py", line 30, in main
pipeline.run()
File "C:\AhmedHefnawy\buy\altr\vehicle-counting-master\vehicle-counting-master\modules_init_.py", line 31, in run
videoloader = VideoLoader(self.config, video_path)
File "C:\AhmedHefnawy\buy\altr\vehicle-counting-master\vehicle-counting-master\modules\datasets.py", line 89, in init
dataset = VideoSet(config, video_path)
File "C:\AhmedHefnawy\buy\altr\vehicle-counting-master\vehicle-counting-master\modules\datasets.py", line 24, in init
self.initialize_stream()
File "C:\AhmedHefnawy\buy\altr\vehicle-counting-master\vehicle-counting-master\modules\datasets.py", line 46, in initialize_stream
assert 0, f"Cannot read video {os.path.basename(self.input_path)}"
AssertionError: Cannot read video cam_04.mp4'
Can you help ?!!


Trusty not starting

First of all, I understand that Trusty is not officially supported. Still, maybe someone has any tips. The hidpi support looks very promising and I decided to give it a try.
After fresh install of Trusty, I get black screen at start, it seems that x is not starting at all. Console output below. Any help highly appreciated.
Entering /usr/local/chroots/trusty...
X.Org X Server 1.15.0
Release Date: 2013-12-27
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.2.0-58-generic x86_64 Ubuntu
Current Operating System: Linux localhost 3.8.11 #1 SMP Fri Feb 28 03:44:29 PST 2014 x86_64
Kernel command line: cros_secure  console= loglevel=7 init=/sbin/init cros_secure oops=panic panic=-1 root=/dev/dm-0 rootwait ro dm_verity.error_behavior=3 dm_verity.max_bios=-1 dm_verity.dev_wait=1 dm="1 vroot none ro 1,0 2097152 verity payload=PARTUUID=02c62a69-6150-1e44-9cba-bfea71535727/PARTNROFF=1 hashtree=PARTUUID=02c62a69-6150-1e44-9cba-bfea71535727/PARTNROFF=1 hashstart=2097152 alg=sha1 root_hexdigest=a1a073de91c5cc712b16053e8f5185587291173f salt=3f2aa701e61bcf8073e253ea4ea1d113537d9c35b2810ecc144f43cd7cb435c5" noinitrd vt.global_cursor_default=0 kern_guid=02c62a69-6150-1e44-9cba-bfea71535727 add_efi_memmap boot=local noresume noswap i915.modeset=1 tpm_tis.force=1 tpm_tis.interrupts=0 nmi_watchdog=panic,lapic gpt
Build Date: 13 February 2014  03:27:21PM
xorg-server 2:1.15.0-1ubuntu6 (For technical support please see http://www.ubuntu.com/support)
Current version of pixman: 0.30.2
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.1.log", Time: Tue Mar  4 22:41:35 2014
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
setversion 1.4 failed: Permission denied
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension XFree86-VidModeExtension
Initializing built-in extension XFree86-DGA
Initializing built-in extension XFree86-DRI
Initializing built-in extension DRI2
Loading extension GLX
setversion 1.4 failed: Permission denied
(II) AIGLX: Suspending AIGLX clients for VT switch

I have this issue with a Pixel 2 (2015) and the following instance:
crouton: version 1-20150730171703~master:f8fdfb0c
release: trusty
architecture: amd64
xmethod: xorg
targets: touch,unity-desktop,audio,chromium,cli-extra,extension,keyboard,x11,xorg
host: version 7077.95.0 (Official Build) stable-channel samus
kernel: Linux localhost 3.14.0 #1 SMP Tue Jul 14 21:42:56 PDT 2015 x86_64 x86_64 x86_64 GNU/Linux
freon: yes


Don't rebuild default targets without --force

Fix makelove will rebuild default targets.
prepare_build_directory aborts the build if we're rebuilding targets
(unless forced). It checked input targets and not default targets, so it
wouldn't abort for any targets that are only built as defaults.
Now we get the full target list first before doing any checks.

I'm so sorry, but I am not sure if I understand the issue correctly. You are doing versioned builds right? And if you try to rebuild a version + target combination that has already been built, without passing --force, it should error out. But if you don't pass a target explicitly, it will not error out, but instead silently rebuild the default targets, right? And you think (I probably agree), that it should error out as well, unless --force is passed?

Yeah, that's right. Example:
Before
$ makelove --version-name 1.0.1751380
Loading config from default path 'makelove.toml'
Found conf.lua
Assuming default löve version '11.3'
Building version '1.0.1751380'
Building targets: win32
Assembling game directory..
Created build\1.0.1751380\love\game.love
>> Building target win32
No love binaries specified for target win32
Love binaries already present in 'C:\blah\makelove\Cache\love-binaries\11.3\win32'
Target win32 complete

Versioned build overwritten!
After fix-rebuild-default-targets
$ makelove --version-name 1.0.1751380
Loading config from default path 'makelove.toml'
Found conf.lua
Assuming default löve version '11.3'
Building version '1.0.1751380'
Cannot rebuild an already built version + target combination. Remove it manually first or pass --force to overwrite it

$ makelove --version-name 1.0.1751380 --force
Loading config from default path 'makelove.toml'
Found conf.lua
Assuming default löve version '11.3'
Building version '1.0.1751380'
Building targets: win32
Assembling game directory..
Created build\1.0.1751380\love\committhebad.love
>> Building target win32
No love binaries specified for target win32
Love binaries already present in 'C:\blah\makelove\Cache\love-binaries\11.3\win32'
Target win32 complete


We are not able to set the sorting of replicas in annotation

Could you give more details so that I can implement something?

We need to be able to do the same thing than in laravel.
https://github.com/algolia/algoliasearch-laravel#primaryreplica

Set the replicas settings for the index. We handle that already
Being able to set the replica settings. If I am not wrong, we don't handle that

The new version of the bundle won't be offering this kind of features. I think it's better if settings are handled in a json file or in the dashboard. It won't be added to the 2.x version either.


Backend Data Mgmt: Dashboard

Tier 2:

[ ]  edit products and manage users through a dashboard so I can easily make changes and assessments as necessary.


Cargo Profiles

It looks like Cargo profiles parsed, but I'm not quite sure how to actually use them, or if you can. I have some profile in my Cargo.toml like MyRelease that I use for production builds. I would like to be able to specify something like
pkgs.rustBuilder.makePackageSet {
  rustVersion = "1.75.0";
  packageFun = import ./Cargo.nix;
  profile = "MyRelease";
};

or something, as it would be useful to be able to set profiles for different builds. Or I may be misinterpreting.

FYI I'm not supporting this and moved over to crane

You should make that clear then.


[PROPOSAL][WIP] Turn client a first class citizen

Major changes

Client becomes a first class app with your own directory: With rails-api client should be decoupled from server
Add css-modules as default

Minor changes

Add action-cable support
Add some defaults gems to prompt
Create component and container generators
Add redux-saga as default
Make kebab-case as default file naming (discuss further with the team, I've thought a lot about it and still have my doubts)
Fix some .(dot) problem with templates
Add some loaders
Re-structured some configs
Updated rails-api
Enable active_view (discuss further, maybe it's useful for mail)
Add minitest as rails default (should become a prompt in the future(or not))
Add some initial test on js (need more care)

TODO

Add test to component and container generator
Parse WEBPACK_DEV_SERVER_URL on webpack config
Start webpack-dev-server from server.js
Discuss about i18n (maybe a unopinated gettext is the way to go)

Will commit all those changes tomorrow

kebabCase transforms 'test1' in 'test-1', should we not stay with 'teste1'?

Well, I have to sleep right now, tomorrow I can take another look, but here's my general impressions:
First, I think you're focusing too much on Ecostage. If we really want the people to take our open source projects seriously, we can't just dump what we use carelessly. We have to create projects that other people will want to use. Projects in which other people will find value, not only Ecostage employees.
For example, enforced immutable, the subgenerators to generate components and containers with our structure in mind, enforced css modules, enforced minitest, etc etc are things that will work for us because that's how we work with our projects, but is not necessarily true for other people, and we don't want only the people that make projects exactly like we do to use our projects.
The second thing is that you just kinda removed everything and restarted the template from scratch. That means you had to fight against a multitude of bugs and problems I already had fought and already had fixed (or at least planned to). The _gitignore file is a good example. And there will also have some others we don't know yet. Can't we pick your modifications and try to merge with the current template?
I also think this PR has A LOT of stuff, it should be broken in a lot of smaller ones. You removed everything inside templates, recreated the rails project with different modifications, recreated the express server, recreated the js files from the SPA, changed completely the structure of the directories, changed the structure of the generators, removed one subgenerator, added other two subgenerators, added enforced minitest, enforced mocha, enforced css modules, etc etc.

About some of the major changes:
I had put client inside the app directory before because to me it was a separation of concerns inside one app (just like the separation of MVC layers inside Rails). I don't think that what we intend to do here is really develop two separated apps, we're separating client and server but, semantically, they are still part of a single application.
I don't necessarily dislike the completely separated client/server approach, though I think it's not the way to go for what we intend to do here. But if we're gonna do that, like I said before, it would be cool if we could merge the changes with the current template. I don't think throwing everything on the thrash is the right thing to do, even though it appears to be the easiest.
About CSS modules, I already said before I intended on adding it to the project, but I think it should be an opt-in. CSS modules are not exactly the coolest kid on the whole block right now, and is also not the right tool for every kind of situation. Yeoman has every tool we need for that, it's made exactly for this kind of situation, we won't need to maintain two different templates because of that. It can save persist configuration in the main generator that can be accessed seamlessly by the subgenerators, for example. It has the tools.
Immutable, redux saga and other cool libs like that I think should be added as prompts, just like we added some gems. They are good, I think maybe not just the best options for every case.
Action view I think we can leave disabled by default and if we need it for emails, we enable it. It's not like every project needs to send emails.
ActionCable and the component and container subgenerators :+1:  (I had a lot of subgenerators in mind to create afterwards, I just didn't have the time yet).
Kebab Case is cool for filenames, I think, but I don't know, the usual way I've seen in other projects was to make React components PascalCase, and kebab case for other javascript files.
As said before, also, I agree with minitest by default, but I think it should offer the option for RSpec as well, we just let minitest selected by default.
And about the i18n discussion, I have to say I'm not exactly impressed with the idea of changing everything to gettext, mostly because I think it may be cumbersome in some aspects (not to mention the fact that yaml files are supported completely out-of-the-box on Rails) and because I disagree with most of the points made on that article you mentioned (which is so far the only argument I've seen for it).
Argumenting on it point by point:
1. It's painful to "make up" keys. Need to switch between many files.
To me it's purely a matter of organization. I think it's perfectly possible to don't have this problem if you keep things organized and structured.
2. Not trivial to search text in code.
That is just not true. You can search in the yaml files directly in EXACTLY the same way, except with mo files you will maybe need to search in a hell of a lot more files than with yaml files.
3. Difficult coevolution between keys and associated text.
I think that for this to happen, or you are choosing the wrong names (which also causes the problem nº 1), or the change was so big that it will make even the context of that translaction be changed, and in that case, you might as well just add a new message like you would if you were creating new code.
4. Difficult to know if all the keys are really used in the application.
There are a lot of tools to find the simplest cases and I think this will only happens with the more complicated cases with dynamically generated keys.
5. YAML can contain values that are not translations.
Agreed. But the locales for the project will rarely contain that kinda info, so it's a different problem. It's a problem with the way Rails internal locale files are organized.
6. GetText is a standard in the Open-Source community.
And so is the yaml files for Rails applications.
7. GetText syntax is nice.
Completely subjective? I disagree strongly on this one, though I really don't believe I'm making my judgement based on this.

Agreed, but I think it's better to have a default now and then we build the prompts for choosing.
I think that the TODO list must be complete before merge and create the setup generator.

Yeah, I guess there's no harm in that. I only fear it becomes more and more coupled and it gets harder to do the prompts later. But if we just keep that in mind when we're developing, I think there won't be any problem.
We can leave out the setup generator, but remember that we have to make the user install yeoman and the generator anyway, so that's why I figured it was easier to just use yeoman itself to do the setup. At least the common one. We can make it call the setup script for project specific configuration.


Using mouse wheel with MOUSE_MODE_CAPTURED is changing mouse position

Godot 3.1.1
Windows 10 64 bits
I use get_viewport().get_mouse_position() in order to get a ray to the 3D world. However, I found that if I use MOUSE_MODE_CAPTURED, scrolling the mouse wheel will make the function return bad coordinates, until you move the mouse again. I expect this should not happen, mouse wheel is not supposed to move the mouse in any way.
Project:
MousePositionWheel.zip
Run the main scene, notice the mouse position is correctly reported (most often near the center). Then use mouse wheel, you'll see it changes by a lot, until you move the mouse again.

I encountered this issue with the _input method, as it's being called with the InputEventMouseMotion event every time the wheel is scrolled.