Debug Mode No Longer Working In Lasted Vampire Survivors Release

I understand you're no longer active with Vampire Survivors, I appreciate all the work you have done. Posting this issue just in case there is a chance it could get fixed
Mod version: v<IP_ADDRESS>
Game version: v1.12.105 - Release
Melon loader version: v0.6.5 Open-Beta
Issue: Mod no longer works with lasted DLC release
24-10-31_17-1-36.log

Hopefully solved with release v1.0.8, I will not close this until I am certain it should be working for others.

Closing this as it is solved and working, thanks for testing it.


ChainSyncServer: read updated tip after blocking

Fixes #661. After blocking for a reader instruction, i.e., waiting for the
chain to change, don't send the old tip (before the chain changed), but the
new tip (after the chain changed).

Unfortunately, we are not using the tip yet (see #467), so there is no test that failed.

bors r+


fix: make --kube-context override helmDefaults

This would allow cli flag --kube-context to override value in helmDefaults allowing to use different values in local development and CI context.

Let me tag this is feat:  assuming this isn't actually a bug fix :)


Add option to use existing transport when 'create_transport' is used

Hello,
it would be cool to use an existing transport request when the create_transport is used. It should be determine to use the existing request when the name of the request match with the given one from the transport_text option. Otherwise it should create a new one with the given name.
Best regards
Max

Validations on texts are always a bad idea. Closed.


Crossbrowser issue with scrollable elements UI

Describe the bug
Scrollbars of scrollable elements are not consistent across different browsers
Screenshots
Chrome 71-

Firefox 69-

Desktop (please complete the following information):

OS: Windows 10

Yikes. Great catch! This issue relates to #114 and #80

I was looking and that's a problem with firefox they don't enable edit in scrollbar

@fboechats ah yes, looks like this could be a bit tricky. I'm finding a bit of info in this answer on Stack Overflow.

@irmerk I saw that, so what you think it's better?? To use some lib to do this work??

I think input from @mttrbrts, @DianaLease, and @Michael-Grover could be useful.
I hesitate to use a library. I think writing our own javascript to handle it would be the best bet.

In general, I think the scrollbars should only appear on hover, like this:
https://codepen.io/kqlambert/pen/tbJCD

@Michael-Grover that looks different on Firefox, which is where the issue is coming in.

I get really close just using scrollbar-color and scrollbar-width. How do you guys round the scrollbar corner and get the hover effect??

@fboechats - it looks like this has support for firefox: https://css-tricks.com/almanac/properties/s/scrollbar/. if you edit the codepen on that page (https://codepen.io/zakkain/pen/phjBC), adding border-radius: 20px; to the last css rule applies the rounded edges to the scrollbar. Hope that helps!

Hum... Those webkit selectors doesn't work on firefox, I'm using those:

https://developer.mozilla.org/pt-BR/docs/Web/CSS/CSS_Scrollbars

What version of firefox are you running? that page says it's supported by firefox starting with version 71, so maybe you on an older one.

I'm using firefox 69, just like the guy that opened the issue.

Ah, yes, sorry, I didn't see that it was already stated in the issue! It looks like that version might only support width and color then.

Yes, so we should just change width and color to look similar?? That way we get some support for older firefox versions.

@fboechats I think an improvement is better than nothing, so I'd say yes.

Yes, that sounds good to me!

Should be finished with #123


M2477: Missing connector: "and"

@wiwagn,
It seems that it  should be a connector between them. Please, review the proposed file change and if you agree, could you help to merge it?
Thanks in advance.
Title
On the title describe
what you've fixed (or created) with this Pull Request (PR).
Summary
Insert a short (one or two sentence) summary here.
Fixes #Issue_Number

Note: The "Fixes #nnn" syntax in the PR description causes
GitHub to automatically close the issue when this PR is merged.
Remove that line if you don't have issues associated with this
PR. Click on the Guidelines for Contributing link above for details.

Details
Explain your changes, and why you made them. If that
information is already available in the issue referenced
above, just referencing the issue is preferred to copying
the text.
This may not be necessary depending on the scope of the PR
changes. For example, "fix typo in introduction.md" is
sufficient to describe that PR.
Suggested Reviewers
If you know who should review this, use '@' to request a review.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
.NET Foundation Pull Request Bot

Thanks again @carolinacmoravia  I'll merge as soon as the builds finish.


Dockerfile changes for identity

Description
We want to pull into the docker image identity code so that we use the newest dependencies/ code build on fly. All other dependencies from other packages are still pulled from NPM.

@codyborn @alecps
I've added two commit "test" and "test2". They show that even with changes in Common, Signer and Combiner at the same time GCP build is just fine.
Once the PR is approved I'll revert these two commits and leave dockerfile changes.


⚠ Bofrost.at has degraded performance

In 0d09763, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 962 ms

Resolved: Bofrost.at performance has improved in b2dbaec.


UHF-6566: Navigation fixes

Codecov Report

Merging #7 (67dde94) into main (22e1fb1) will increase coverage by 0.08%.
The diff coverage is n/a.

:exclamation: Current head 67dde94 differs from pull request most recent head e9c4d48. Consider uploading reports for the commit e9c4d48 to get more accurate results

@@             Coverage Diff              @@
##               main       #7      +/-   ##
============================================
+ Coverage     31.34%   31.42%   +0.08%
- Complexity      116      117       +1
============================================
  Files            13       13
  Lines           386      385       -1
============================================
  Hits            121      121
+ Misses          265      264       -1

Impacted Files
Coverage Δ

...fi_navigation/src/Plugin/QueueWorker/MenuQueue.php
0.00% <0.00%> (ø)

...b/helfi_navigation/src/ExternalMenuTreeFactory.php
4.00% <0.00%> (+0.15%)
:arrow_up:

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


have problem when using python

I create a new folder 'build' in livox detection, then run:
(base) shiyanshi@shiyanshi-System-Product-Name:~/livox_detection$ python3 setup.py develop
after a long list, I got this:
IndexError: list index out of range
how to deal wiz it?

I got the same error, dost anyone have encountered the same issue?
Traceback (most recent call last):   File "setup.py", line 18, in <module>     setup(   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/__init__.py", line 103, in setup     return distutils.core.setup(**attrs)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup     return run_commands(dist)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands     dist.run_commands()   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands     self.run_command(cmd)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command     super().run_command(command)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command     cmd_obj.run()   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/command/develop.py", line 34, in run     self.install_for_development()   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/command/develop.py", line 109, in install_for_development     self.run_command('build_ext')   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command     self.distribution.run_command(command)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command     super().run_command(command)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command     cmd_obj.run()   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 88, in run     _build_ext.run(self)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run     self.build_extensions()   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 708, in build_extensions     build_ext.build_extensions(self)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions     self._build_extensions_serial()   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial     self.build_extension(ext)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 249, in build_extension     _build_ext.build_extension(self, ext)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension     objects = self.compiler.compile(   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 524, in unix_wrap_ninja_compile     cuda_post_cflags = unix_cuda_flags(cuda_post_cflags)   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 423, in unix_cuda_flags     cflags + _get_cuda_arch_flags(cflags))   File "/home/nsoft/anaconda3/envs/livox_sdk/lib/python3.8/site-packages/torch/utils/cpp_extension.py", line 1561, in _get_cuda_arch_flags     arch_list[-1] += '+PTX' IndexError: list index out of range

oh, it looks like my nvidia drivier doesn't work, the nvidia-smi commands reports error, try to reboot my machine...

Based on the provided information, the error message "IndexError: list index out of range" indicates that the Python code encountered an attempt to access an index of a list that does not exist. This typically happens when the code tries to access an index that is beyond the length of the list.
In this scenario, the error likely occurred during the execution of the setup.py develop command in the livox_detection folder. Without seeing the specific contents of the setup.py file or the context of the error, it's challenging to pinpoint the exact cause. However, here are some common reasons for encountering such an error:
Incorrect List Indexing: The code inside setup.py or any other Python script being executed might be attempting to access a list using an index that doesn't exist.
Parsing Command Line Arguments: If the setup.py script parses command-line arguments, the error could be related to incorrect handling or parsing of the arguments.
Dependencies or Configuration Issues: It's possible that there are missing dependencies or configuration issues within the setup.py script or the environment, leading to unexpected behavior.
Data Processing or Iteration: If the error occurs during data processing or iteration over a list, it could be due to incorrect logic for accessing list elements.
To troubleshoot the issue, you can try the following steps:
Review the contents of the setup.py file in the livox_detection folder to check for any potential errors or issues with list indexing.
Ensure that all dependencies required by the livox_detection project are properly installed and configured.
Verify the command-line arguments passed to setup.py and ensure they are correctly handled.
Look for any recent changes or updates that might have introduced the error.
If you need any further assistance, feel free to reach me out 👍🏻 :)


Leaving a room does not work, sometimes

Sometimes (didn't investigate much further), leaving a room does nothing and doesn't properly give back control, the callback in the following code snippet is not always visited:
var detachSocketFromRoom = function (req, room, callback) {
    var socket = getSocketSync(getSocketIdSync(req));
    return socket ? socket.leave(room, function (err) {
        //SOMETIMES THIS CALLBACK IS NOT CALLED!
        if (err)
            return callback(err);
        return callback(null, true);
    }) : callback(null, false);
};

It never happens without the mongodb adapter.
FYI, I initialize socket.io-mongodb like this:
    _socketPortType = new io(server, {path: '/rpc'});

    var _storeAdapter = store(url.resolve(config.databaseUrl || "mongodb://localhost:27017", "_transient"), {
        prefix: 'ws',
        collectionName: 'message'
    });
    _socketPortType.adapter(_storeAdapter);

    _storeAdapter.pubsubClient.on('error', logHandler.error);
    _storeAdapter.channel.on('error', logHandler.error);

    if (config.frontendUrl)
        _socketPortType.set('origins', config.frontendUrl + ' localhost:*');

    _socketPortType.on('connection', function (socket) {
        logHandler.info("Comet socket connected");
    });

I have the same problem, but for me it's not SOMETIMES.  This callback has never been called, also if I debug into the socket io lib, when it has to do 'adapter.del (nm, room, function (err) { } , this callback is not called.
logger.debug('[Leave Room] User ' + socket.decoded_token._id + ' left Room Workflow: ' + data.workflowId);
            var roomToLeave = socket.rooms['workflow_' + data.workflowId];

            if (roomToLeave) {
                socket.leave(roomToLeave, function (err) {
                    if (err) {
                      console.log('Error', err);
                    }
                });
            }

I also simply tried:
socket.leave('room name', function (err) {
if (err) {
console.log('Error', err);
}
});
In both cases socket.rooms still contains the old room.
For us it's a big problem, I hope we can do something for that I have to change adapter.


Allow query_as! to convert types with .into()

Thank you for the nice crate.
I've been using it only 2 days, so I am still earning, but I like the ideas that sqlx embraces.
Motivation
I would like to use the newtype pattern for my data models to explicitly distinguish between different ID types.
Here is a snippet from my code base:
use derive_more::From;

#[derive(Debug, From)]
pub struct TopicId(i64);

#[derive(Debug, From)]
pub struct UserId(i64);

#[derive(Debug)]
pub struct Topic {
    pub id: TopicId,
    pub name: String,
    pub is_active: bool
}

#[derive(Debug)]
struct User {
    id: UserId,
    email: String,
    topic_id: TopicId
}

I use derive_more trait here to derive implementations of From<i64> for TopicId and UserId.
Having From<i64> for TopicId and UserId we get automatically Into<TopicId> and Into<UserId for i64.
My fetch code looks like:
pub async fn fetch_topics(pool: &DbPool) -> anyhow::Result<Vec<Topic>> {
    let topics =
        sqlx::query_as!(Topic, "SELECT * FROM topics WHERE is_active = true")
        .fetch_all(pool)
        .await?;
    Ok(topics)
}

So invoking .into() on initializing the struct (Topic) makes the conversion from i64 into TopicId automatically if it's possible.
Error message
In case there is uncovertible type the following error message appears (i replaced id: TopicId with id: String)

That must be sufficient to understand the source of problem.

Looks like the change broke MySQL driver: https://github.com/launchbadge/sqlx/runs/1414912041?check_suite_focus=true
At this point I am not sure what would be the way to fix it (help is appreciated).
If the fix is not straight forward I would close this PR an open an issue ticket with feature request.

Nevermind. I just figured out, that there are Type and FromRow traits, that can be derived.
This code works well:
#[derive(Debug, sqlx::Type)]
pub struct TopicId(i64);

#[derive(Debug, sqlx::Type)]
pub struct UserId(i64);

#[derive(Debug, sqlx::FromRow)]
pub struct Topic {
    pub id: TopicId,
    pub name: String,
    pub is_active: bool
}

#[derive(Debug, sqlx::FromRow)]
struct User {
    id: UserId,
    email: String,
    topic_id: TopicId
}

My bad, it stills does not work.
I get the following error:
  --> src/db/mod.rs:40:9
   |
40 |         sqlx::query_as!(Topic, "SELECT * FROM topics WHERE is_active = true")
   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `TopicId`, found `i64`

Ok, after raising a question in the chat, I was suggested that his can work (and it does!):
#[derive(Debug, Clone, Copy, sqlx::Type)]
#[sqlx(transparent)]
pub struct TopicId(i64);

#[derive(Debug)]
pub struct Topic {
    pub id: TopicId,
    pub name: String,
    pub is_active: bool
}

pub async fn fetch_active_topics(pool: &DbPool) -> anyhow::Result<Vec<Topic>> {
    use crate::db::models::TopicId;

    let topics =
        sqlx::query_as!(Topic, r#"SELECT id as "id: TopicId", name, is_active FROM topics WHERE is_active = true"#)
        .fetch_all(pool)
        .await?;
    Ok(topics)
}

There is also related issue https://github.com/launchbadge/sqlx/issues/514
It seems that this will be more ergonomical when #514 is addressed.


attemp to call field fuzzy_matched_indices (a nil value)

Make sure you have done the following

[X] I have updated to the latest version of blink.cmp
[X] I have read the README

Bug Description
Hello,
Thank you a lot for your plugin.
I've updated to the latest version, but when I open blink autocmp, it shows this message error:
Error executing vim.schedule lua callback: ...l/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/init.lua:24: attempt to call field 'fuzzy_matched_indices' (a nil value)
stack traceback:
	...l/share/nvim/lazy/blink.cmp/lua/blink/cmp/fuzzy/init.lua:24: in function 'fuzzy_matched_indices'
	.../lazy/blink.cmp/lua/blink/cmp/windows/render/context.lua:21: in function 'get_from_items'
	...vim/lazy/blink.cmp/lua/blink/cmp/windows/render/init.lua:55: in function 'draw'
	...im/lazy/blink.cmp/lua/blink/cmp/windows/autocomplete.lua:111: in function 'open_with_items'
	.../.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/init.lua:57: in function <.../.local/share/nvim/lazy/blink.cmp/lua/blink/cmp/init.lua:51>

I tested with default config and custom config, same thing.
WSL2 Ubuntu 22.04
Relevant configuration
	{
		"saghen/blink.cmp",
		build = "cargo build --release",
		dependencies = {
			"rafamadriz/friendly-snippets",
			"saghen/blink.compat",
			{ "petertriho/cmp-git", lazy = true },
			{ "chrisgrieser/cmp-nerdfont", lazy = true },
			{ "hrsh7th/cmp-emoji", lazy = true },
		},
		lazy = false,
		opts = {},
	},

neovim version
NVIM v0.11.0-dev-1082+g3688a33354
blink.cmp version: branch, tag, or commit
main

Double check that cargo build --release ran successfully. It sounds like it didn't rebuild

Yes that was that, sorry.
Thank you !


Azure DDoS protection service

The current documentation was misleading, because it suggested that customers can apply Standard DDoS protection on the AADAP endpoints. This is not possible. According to the Azure Networking Support Team the Basic SKU (as name) might be deprecated in the future. I simplified the doc. Could you please check it and update it, in case there are no open questions, suggestions?

@githubarpyka : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Reusing models, is it savvy?

This is not strictly an issue, just a question about usage.
I saw in the doc you can point, through types.json, to a model struct and define it yourself.
I was wondering if it's a good idea to point it, and hence use, to the same models structs we're already using for the domain logic.
The app already has a REST interface and we want to add a separate GraphQL interface to it, so it would be very handy not to have to duplicate the domain objects across the two layers.
Do you see any reasons not to?
Thanks

I don't think that was me. Maybe https://github.com/vektah/gqlgen/issues/21?

o lol, sorry the generic github user icons look so alike i didnt see that it was a different user.  Thanks.


Azure OpenAI support

It would be wonderful if you could add the Azure OpenAI as option.
We are on the path of developing the elderly care soft  robots using  Azure AI services like Prompt Flow, and found the MemGPT could evolve the care robot as emotion support level with long term  human  interaction !!!!
Https://hyodol.com

Isnt this just changing some env variables to make openai completions to the Azure endpoints?
Your work sounds amazing! I can't wait to see where it goes!

Hi @tyoh-love, we just added Azure support in the latest commit, see the extra Azure steps here: https://github.com/cpacker/MemGPT#running-memgpt-locally.
We were unable to test it, so if you try it and it doesn't work, please let us know here and we'll patch it.

it works!!
one minor thing : AZURE_OPENAI_ENDPOINT means full api endpoint in Azure.
It would be better to rename it as AZURE_OPENAI_APIBASE
Thank you!!!


Track doc/code generator V3.0.0 support

This issue is for tracking purposes only.

[ ] https://github.com/asyncapi/dotnet-nats-template/issues/384
[ ] https://github.com/asyncapi/ts-nats-template/issues/545
[ ] https://github.com/asyncapi/python-paho-template/issues/189
[ ] https://github.com/asyncapi/nodejs-ws-template/issues/294
[ ] https://github.com/asyncapi/java-spring-cloud-stream-template/issues/336
[ ] https://github.com/asyncapi/go-watermill-template/issues/243
[ ] https://github.com/asyncapi/java-spring-template/issues/308
[ ] https://github.com/asyncapi/nodejs-template/issues/215
[ ] https://github.com/asyncapi/java-template/issues/118
[ ] https://github.com/asyncapi/php-template/issues/191

Related to https://github.com/asyncapi/studio/issues/979

Hi @Amzani  I want to work on these issue https://github.com/asyncapi/nodejs-ws-template/issues/294
but i don't know how to get start
can you give me some instructions to understand and contribute in this issue

from 0.3.0 java-template now supports v3 AsyncAPI docs


[FEATURE]:  Shift + E to Use/Equip

Feature Title
Shift + E to Use/Equip
Motivation
Allowing to use potions, eat food and equip armors and weapons directly from the quickloot menu would allow for more smooth gameplay
Feature Description
Allow to directly equip armor and weapons, eat food or drink potions directly from the quickloot menu bypressing Shift + E (ideally with the promps changing from take to use when shift is pressed)
Additional Context
The modifier key could be configurable but using "shift" sounds like the best option for consistency with base game and other mods.

It's on our todo list, but pretty low priority for now, since this is a pretty complicated feature and it depends on the rewrite of the input system.

This has indeed been brought up before, but as said the input system makes this very complicated. It was intended to work similarly to Read or Take/Use or Take, with a configurable modifier. It'll be at the later stages however


How I can create a schema to use an input of file on swagger docs?

Today I use this approach, but the input does not work on my docs.
 schema: {       tags: ["Upload"]       params: z.object({         filename: z.string(),       }),       consumes: ["multipart/form-data"],       body: z.custom<Multipart>()     },
How I can write for the input works on my docs?
This is the output of this code:

I come up with this solution to tackle the problem, but I'm not entirely satisfied with it and am still seeking a more appropriate way to handle it.
fastify.register(multipart, {
  attachFieldsToBody: "keyValues",
  onFile: async (part) => {
    const buff = await part.toBuffer();
    part.value = {
      filename: part.filename,
      file: buff,
    };
  },
});

this.server.register(swagger, {
...
  transform: (data) => {
    const jsonSchema = jsonSchemaTransform(data);

    normalizeFileFields(jsonSchema.schema);

    return jsonSchema;
  },
});

const normalizeFileFields = (obj: Record<string, any>) => {
  for (let key in obj) {
    if (typeof obj[key] === "object" && obj[key] !== null) {
      if (obj[key].hasOwnProperty("filename") && obj[key].hasOwnProperty("file")) {
        obj.type = "file";
      } else {
        normalizeFileFields(obj[key]);
      }
    }
  }

  return obj;
};

Dude, I am so happy by you helped me, your answer was very good, but her does not work 100%, I had exchange some points of your code.
Then your code has been like this.
const normalizeFileFields = (obj: Record<string, any>) => {
  let routeContainsFile = false;

  if (obj.hasOwnProperty("consumes") && obj.consumes.includes("multipart/form-data")) {
    routeContainsFile = true;
  }

  for (let key in obj) {

    if (typeof obj[key] === "object" && obj[key] !== null) {
      if (key === "body" && routeContainsFile) {
        obj[key] = {
          type: "object",
          required: ["file"],
          properties: {
            file: { type: 'file' },
          }
        };
      } else {
        normalizeFileFields(obj[key]);
      }
    }
  }

  return obj;
};

And I need to change my implementation for this.
  app.withTypeProvider<ZodTypeProvider>().route({
    method: "POST",
    url: "/files/:filename",
    schema: {
      tags: ["Upload"],
      summary: 'Insert a file from CloudFlare R2 or AWS',
      params: z.object({
        filename: z.string(),
      }),
      consumes: ["multipart/form-data"],
      body: z.custom<MultipartFile>(),
    },
    handler: async (request, reply) => {
      const data = request.body;

      if (!data.file) {
        return reply.status(400).send({
          message: "Please send a file"
        })
      }

      const buffer = data.file;
      await client.putObject({
        Bucket: process.env.BUCKET_NAME,
        Key: request.params.filename,
        Body: buffer,
      }).promise();

      return reply.status(201).send({ message: "File uploaded" })
    }
  });

Then, my end point start work on swagger docs, see here.

Thank you so much for your help.


Cannot use it with imports @kinde-oss/kinde-node-express

Prerequisites

[X] I have searched the repository’s issues and Kinde community to ensure my issue isn’t a duplicate
[X] I have checked the latest version of the library to replicate my issue
[X] I have read the contributing guidelines
[X] I agree to the terms within the code of conduct

Describe the issue
import { setupKinde } from '@kinde-oss/kinde-node-express'
or
import pkg from '@kinde-oss/kinde-node-express'
(node:27836) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use node --trace-warnings ... to show where the warning was created)
warning:65
Uncaught SyntaxError .../node_modules/@kinde-oss/kinde-node-express/dist/index.js:1
import { getInternalClient, setupInternalClient } from './setup';
the entire backend is written with 'import', there is no way for me to change it to 'require'
Library URL
https://github.com/kinde-oss/kinde-node-express
Library version
latest
Operating system(s)
macOS
Operating system version(s)
latest
Further environment details
No response
Reproducible test case URL
No response
Additional information
No response

@whitetown try using v1.0.12. I'm experiencing a similar issue, and that was the last version that worked correctly with ESM imports.

I have a new build locally and will get this out in the next hour of so

I already chose clerk and wish all the same)

@whitetown Sorry to hear that, version 1.5 has now been released with this resolved.
@dg-robinson new version release which resolves imports

facing the same issue with 1.5.0 @DanielRivers

@rip32700 Can you explain what issue you're seeing?  If possible share code example.  I have this all working locally with imports.

@DanielRivers I've upgraded to 1.5.0 and I'm now seeing a different issue: TypeError: Cannot destructure property 'audience' of 't' as it is undefined.     at Rq (file:///.../node_modules/@kinde-oss/kinde-node-express/dist/index.esm.js:313:109874). It seems to be mixing the contents of the map with the regular output and breaking everything.
Here's the latest verion versus the last working version, at least for me. 1.4.1 didn't have this problem, so maybe an issue with the Rollup implementation?
Do you think there could be some issue with local Node or npm versions, perhaps? I'm running Node v21.5.0 and npm 10.5.2 if that helps at all.

Hi @dg-robinson,
I have just released a new beta version which I have tested on both ESM and CJS.  Could you please try 1.6.0-0 and let me know.

Fixed in 1.6.0

Sorry for the delay in responding @DanielRivers. I've just tried 1.6.0, but I'm getting exactly the same as behaviour as 1.5.0. Is there any information I can give you that might be useful?

@dg-robinson could you supply me with a minimal reproduction repo? I'm not able to reproduce locally.

@DanielRivers sorry it's taken so long! I finally got around to making a minimal reproduction for you: https://github.com/dg-robinson/kinde


Slider unavailable workaround

@lbbrhzn not sure if this will help but as we push api changes turning off polling might help

If I am not mistaken, we currently don't use push! It would require the entities to subscribe to change notifications.
I'm in favor of adding support for push though. We could implement it by add a subscription mechanism to the metric class. The metrics could also work as controls: when an entity changes the value of a metric, a notification is sent to a subscriber in the ChargePoint instance which will trigger an OCPP request to the charger. This way we could make slider always available even (when the charger is offline). We should just send the latest profile in the post_connect.
Longer term we could decouple the api from user interface by using MQTT to send the notifications. This would allow us to run the OCPP server separately from home assistant, for instance as an add-on.

If I am not mistaken, we currently don't use push! It would require the entities to subscribe to change notifications.
I'm in favor of adding support for push though. We could implement it by add a subscription mechanism to the metric class. The metrics could also work as controls: when an entity changes the value of a metric, a notification is sent to a subscriber in the ChargePoint instance which will trigger an OCPP request to the charger. This way we could make slider always available even (when the charger is offline). We should just send the latest profile in the post_connect.
Longer term we could decouple the api from user interface by using MQTT to send the notifications. This would allow us to run the OCPP server separately from home assistant, for instance as an add-on.

If I am not mistaken, we currently don't use push! It would require the entities to subscribe to change notifications.
I'm in favor of adding support for push though. We could implement it by add a subscription mechanism to the metric class. The metrics could also work as controls: when an entity changes the value of a metric, a notification is sent to a subscriber in the ChargePoint instance which will trigger an OCPP request to the charger. This way we could make slider always available even (when the charger is offline). We should just send the latest profile in the post_connect.
Longer term we could decouple the api from user interface by using MQTT to send the notifications. This would allow us to run the OCPP server separately from home assistant, for instance as an add-on.

Sorry my reference to push was just for the slider, as in when its value is changed we push it to the api/charger. Applying a push framework more generally to the metrics sounds interesting, particularly for controls.


[FEATURE REQUEST] Looping through a Data File like in the Postman Collection Runner

From what i've gathered Insomnia doesn't offer this solution like Postman does:
https://blog.postman.com/looping-through-a-data-file-in-the-postman-collection-runner/
or if it already exists, is there documentation to follow to use with Insomnia.

Wondering if this type of capability is on the roadmap?   I would be moving to Insomnia completely (the variable prompt capability is fantastic!) but for the lack of this feature.

Hi folks, any updates on this, it was ever implemented? Thanks.

This is a great feature request and I am eyeing it for later this year (Dec?). I have more questions around this:

Postman also has a "Monitor" capability to execute the runner once in a while, how needed is this feature?
For the runner - just to confirm - the request is to be able to run collection endpoints sequentially?

This is a great feature request and I am eyeing it for later this year (Dec?). I have more questions around this:

Postman also has a "Monitor" capability to execute the runner once in a while, how needed is this feature?

For the runner - just to confirm - the request is to be able to run collection endpoints sequentially?

Yes, ideally the ability to load in a csv file to run on endpoints sequentially. For example, POST request to:
www.test.com/api/v1/{deviceId}
With body:
{
"Configuration": {deviceConfig}
}
Where deviceId and deviceConfig are pulled from each row of CSV file

+1 to this request. I would find it very useful to use a CSV (or JSON) file as input to set variables for a request and run the request once for each row in the CSV or each item in an array within a JSON file.

2024 bump, this would be awesome!

Yes, this is coming soon, perhaps even by September/October.

Here is a preview of the new Collection Runner that is shipping on September which will also support the ability to load a CSV/JSON file:
https://github.com/user-attachments/assets/38a7fcff-2faf-425f-8ba4-3b7db703406b

@subnetmarco can you provide an example of how to call variables from the CSV file? The instructions only refer to variables contained in environments or globally. If you could post instructions or a video of you iterating through a CSV that would be great!

@ihexxa can help with your request @kemccoy

Hi @ihexxa. Do you have some examples regarding the above question about Collection Runner? I am looking to see how variables from a CSV sheet can be called from my Insomnia body to iterate through all rows in the sheet.

I am seconding this. The documents seem to be lacking in providing an example of 1. an example csv or json file, and 2. how to reference the variables from the uploaded data. @ihexxa any insight you have here would be great. I'd help update the docs as well once this information is provided. Thanks!

Hello @kemccoy @pwilliams-checkr sorry for unawaring of this thread.
You could try this:

Upload a csv file:

id,name
1,Tom
2,Mary

Add follow scripts to pre-request or after-response script, for nth iteration, they are able to access data from the nth row by the column names (id, name):

console.log(insomnia.iterationData.get('id'));
console.log(insomnia.iterationData.get('name'));

Run the runner, then you can see outputs in the Console Tab:

You could try to add more columns to the csv and do other operations by calling insomnia.iterationData.get('xxx').

Do we also have an example for a JSON file?

Hello @ihexxa,
This doesn't explain how you call the variable from the body its self. That is where I would want to call one or more variables from the CSV to go row by row. For example:
CSV input:
DEVICE_ID,NAME
1234,DEVICE1
5678,DEVICE2
I want to iterate through the entire CSV sheet to search for each "DEVICE_ID" but I need to call this variable from the body. Below is an example body that would be used from PM:
{
"$match": {
"devices": {{DEVICE_ID}}
}
}
How do you do this??

@kemccoy IIUC you could try to add a tag with the column name ({{ NAME }}) in the body as normal:

And when you run the request with the devices csv, you should be able to see device names rendered in the body (see text in purple in the right), and the request will be triggered for each row:

@pwilliams-checkr Here is one example:
[
    {"id": "66", "vm": "vm1" },
    {"id": 77, "vm": "vm2" }
]

Hello @ihexxa please see the screen shots below. I can see the values of the CSV sheet when I upload but not when I call the variable from the body. Is there something I am missing?

@kemccoy Hm this is expected, the upload file only works together with runner, not for one request.
Which means, if you run this request in the runner, you will see that the {{ DEVICE_ID }} tag is replaced by its value in the row.
But if you just send the request, it won't be replaced.

Closing this old thread 🧵  as the collection runner for UI and CLI have been delivered in the latest release.


Bad owner or permissions on ~/.ssh/config  even if [automount]options = "metadata"

Describe the solution you'd like

I want to sync ~/.ssh or some folder in windows and wsl

I found ssh would get error because of bad permissions

add
 [automount]
options = "metadata"

to  /etc/wsl.conf   and chmod solve this temporarily .

But after I alter ~/.ssh/config in by sublime in windows  , the permissions changed

get Bad owner or permissions again in wsl

Why it can't keep the fake permissions in wsl ?

Some editors (including maybe sublime) do not really overwrite for safety when you do an overwrite save.

OLD data
NEW data

Before save
textfile.txt
(none)

Save start
textfile.txt
textfile.txt.tmp

textfile.txt.bak
textfile.txt.tmp

textfile.txt.bak
textfile.txt

Save finished
(delete)
textfile.txt

However, this behavior sometimes behaves undesirably.

WSL metadata attached
No WSL metadata

Before save
textfile.txt
(none)

Save start
textfile.txt
textfile.txt.tmp

textfile.txt.bak
textfile.txt.tmp

textfile.txt.bak
textfile.txt

Save finished
(delete)
textfile.txt

If have a setting that stops such behavior, you may change that setting.

Same #3165 #3934 #3776 (others prob). For all practical purposes by-design.


Add PS5 Package Management resources

Work In Progress adding PS5 Package Management resources
-powershell_package
-powershell_package_provider
-powershell_package_source

Serverspec?  Really?  This is the powershell cookbook - write some Pester :)


Empty path is converted to "."

Currently new NPath("").ToString() returns ".". I think the result should be an empty string, because "an empty path, or relative to anything" and "path relative to current directory" have quite different semantic meanings. But I'm not 100% convinced myself. What do you think? This was introduced in 62deffd.

That is an interesting question.  I can see how it's a bit unexpected.
I didn't make the change so I can't speak to the reasoning behind why the behavior was changed.  One perspective I can see is that an NPath should always represent a path.  An empty string is not a path, it's simply an empty string.
Allowing a NPath to be an empty string would create a niche state that a NPath could be in.   I'm not sure what you would even do with a NPath who's ToString() value was an empty string.  It feels like that would just "force" error checking onto the user of the API because trying to use an empty string path is not going to work out well.


Website instructions

Website http://bitters.bourbon.io/ says " Import Bitters after Bourbon and Neat in your application.css.scss".
Github says " import Neat after Bitters in your application.css.scss"

fixed https://github.com/thoughtbot/bitters/pull/203

@whmii This issue is in regard to the website, not the readme: http://bitters.bourbon.io

Closed via https://github.com/thoughtbot/bitters/commit/3877e30bf315efe0a00c322d494578b3e8e957ea.


Add missing properties to subnet model

As per documentation - https://docs.synapsefi.com/docs/view-specific-subnet-details - and from
inspecting the raw response, GETing a subnet returns a status field as well as an account_class field, both of which are important to have and persist, especially the latter.
I am unable to run the test suite as it seems to depend on auth environment variables that I do not hav set.

@syntactical @sumitace just looking for a sanity check here. Unfortunately it's not possible to run tests for this repo, so I didn't bother writing any new ones :(

this was already merged into alice branch, I'm going to close this PR


[Help] Unable to run the wifi_esp_hosted demo on nRF52833_xxAA chip

I try to run the demo on the board microbit v2, it got below meesage, the  part TRACE rx: [00, 00, 00, 00, 00, 0 keep printing, can't stop
cargo run --release --bin wifi_esp_hosted
    Finished release [optimized + debuginfo] target(s) in 0.56s
     Running `probe-rs run --chip nRF52833_xxAA target/thumbv7em-none-eabi/release/wifi_esp_hosted`
      Erasing ✔ [00:00:03] [##################################] 120.00 KiB/120.00 KiB @ 37.28 KiB/s (eta 0s )
  Programming ✔ [00:00:05] [##################################] 120.00 KiB/120.00 KiB @ 22.18 KiB/s (eta 0s )    Finished in 8.663s
 WARN defmt_decoder::log::format: logger format contains timestamp but no timestamp implementation was provided; consider removing the timestamp (`{t}` or `{T}`) from the logger format or provide a `defmt::timestamp!` implementation
0.000000 INFO  Hello World!
└─ wifi_esp_hosted::____embassy_main_task::{async_fn#0} @ src/bin/wifi_esp_hosted.rs:47
0.000854 DEBUG wait for init event...
└─ embassy_net_esp_hosted::control::{impl#0}::init::{async_fn#0} @ /Users/shuanghuiyan/Workspace/my-projects/embassy/embassy-net-esp-hosted/src/fmt.rs:130
0.000946 DEBUG resetting...
└─ embassy_net_esp_hosted::{impl#1}::run::{async_fn#0} @ /Users/shuanghuiyan/Workspace/my-projects/embassy/embassy-net-esp-hosted/src/fmt.rs:130
1.176239 TRACE rx: [00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
└─ embassy_net_esp_hosted::{impl#1}::handle_rx @ /Users/shuanghuiyan/Workspace/my-projects/embassy/embassy-net-esp-hosted/src/fmt.rs:117
1.176849 TRACE rx: [00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00]
└─ embassy_net_esp_hosted::{impl#1}::handle_rx @ /Users/shuanghuiyan/Workspace/my-projects/embassy/embassy-net-esp-hosted/src/fmt.rs:117

Have you connected an ESP32 module to the microbit, and flashed it following the instructions in the esp-hosted repo?

Sorry, I didn't understand connected an ESP32 module to the microbit. I only have the micobiit board, it seems it can connect to wifi independ?
My board hardware list: https://tech.microbit.org/hardware/

The microbit doesn't have wifi, only bluetooth. The wifi_esp_hosted example needs an external ESP32 module to add wifi capabilities, for example this one. It won't work with just the microbit.


Show days for next month

Hi,
I want to show different number of days for next month. I have seen show-days-of-surrounding-months="true" but this isn't what I need. I want to show different number of days of next month. For example some times I want to show 3 days of next month, some times I need to show 10 days of next month and so on. Is there any hook or method available for this?

Hi,
today there is nothing to allow you to do it, and I don't have time to do it sorry, you can fork the project, do what you need and if you want you can share it with us with a PR :)


Mojo::UserAgent bug

This code dies in Linux and Windows:
use Mojo::UserAgent;
my $UA = Mojo::UserAgent->new();
my $url = 'http://www.eaglefonts.com/avril-lavigne-%28sk8er-punkd%40hotm-ttf-170160.htm';

my $res1 = $UA->get($url)->res;
my $res2 = $UA->get($url)->res; # dies here

Mojolicious version - 2.51

Unmatched ( in regex; marked by <-- HERE in m/^/avril-lavigne-( <-- HERE<EMAIL_ADDRESS>at /Users/marcus/perl5/perlbrew/perls/perl-5.14.1/lib/site_perl/5.14.1/Mojo/CookieJar.pm line 81.


"ImportError: DLL load failed: The specified procedure could not be found."

I am getting error "ImportError: DLL load failed: The specified procedure could not be found."-- referring to deform_conv_ext.cp37-win_amd64.pyd file from deform_layer. I am trying to run the repo on windows 10. I have followed the steps mentioned in readme. Could you please suggest how to run this on windows 10.

Hi @shriyakak ,
The mmdetection framework currently supports Linux and MacOS only. You can refer to  install.md
Thanks


Unhandled NoClassDefFoundError in SourceConfigUtils.java (and friends)

Describe the bug
I am running a custom LocalRunner under the control of Gradle.
There is a problem in SourceConfigUtils::validate()
When the jarClassLoader is used a ClassNotFoundException is caught.
The catch results in using the narClassLoader which would succeed.
But instead a  NoClassDefFoundError is produced for which there is no catch and consequently the narClassLoader is not used.
To Reproduce
It is not entirely clear to me why NoClassDefFoundError is sometimes the thrown exception.
The issue is that it is not an unreasonable exception to expect when a classloader is
unable to find a particular class.
Expected behavior
The nar file does not have its sub-dependancies in the top level but in the bundled-dependencies.
I expect it to not find the PushSource when read as a jar file and then process the file as a NAR.
The fact that the class is not found is as expected.
Operating Environment:

run a variant of LocalRunner in a gradle task

Additional context
I have done some noodling around and have found that the narClassLoader would have succeeded had it been used.
https://github.com/apache/pulsar/blob/413aa74ed68557284d6f4502456b3bef2dbd9618/pulsar-functions/utils/src/main/java/org/apache/pulsar/functions/utils/SourceConfigUtils.java#L282-L299
The following is a trivial (but repetitive) fix that has worked for  me.
            try {
                typeArg = getSourceType(sourceClassName, jarClassLoader);
                classLoader = jarClassLoader;
            }
            catch (ClassNotFoundException e) {
                // class not found in JAR try loading as a NAR and searching for the class
                if (narClassLoader != null) {
                    try {
                        typeArg = getSourceType(sourceClassName, narClassLoader);
                        classLoader = narClassLoader;
                    } catch (ClassNotFoundException e1) {
                        throw new IllegalArgumentException(
                                String.format("Source class %s must be in class path", sourceClassName), e1);
                    }
                } else {
                    throw new IllegalArgumentException(
                            String.format("Source class %s must be in class path", sourceClassName), e);
                }
           }
           catch (NoClassDefFoundError e) {
                // class not found in JAR try loading as a NAR and searching for the class
                if (narClassLoader != null) {
                    try {
                        typeArg = getSourceType(sourceClassName, narClassLoader);
                        classLoader = narClassLoader;
                    } catch (ClassNotFoundException e1) {
                        throw new IllegalArgumentException(
                                String.format("Source class %s must be in class path", sourceClassName), e1);
                    }
                } else {
                    throw new IllegalArgumentException(
                            String.format("Source class %s must be in class path", sourceClassName), e);
                }
            }

@phreed Thanks for your detailed issue reporting. Would you like to provide a PR for your fix?

The more I have dug into testing Pulsar io-connectors/functions the more issues I have found.
It appears that the ClassNotFoundException/NoClassDefFoundError is more common that I thought.
I will make a PR for it.

I am working on a PR. On which branch should I base my work? master? branch-2.4? branch-2.5?

Thanks @phreed based on master should be fine.
It would be more easy to checkout a new branch based on your master.
https://pulsar.apache.org/en/contributing


fix(radio-button): remove invalid aria-property

📥 Proposed changes
Fix linting error on RadioButtons. A more thorough update of aria-attributes should be done, f.ex. in #992
☑ Submission checklist

[x] I have read the CONTRIBUTING doc
[x] yarn build works locally with my changes
[x] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)

💬 Further comments
affects: @fremtind/jkl-radio-button-react

Fixed in #992


Populate publications page

We want to populate the publication sections with all relevant work done in the lab. Tod's google scholar page provides an overview of pretty much all that work. We can stick with publications since 2018 or 2019 since that's when the lab started up. There will be a relatively large number of publications here, so it would probably be ideal if this could be automated to some degree (like a script that could automatically parse a google scholar entry or DOI into a properly formatted markdown file that matches the template for the wowchemy publications page.

Maybe put down partial publication data for testing purpose and get all data with automation with #4


use uuid.v4 for id generation and fix web benchmark

Using the uuid package and the method v4 instead of the nodejs libraries Buffer and crypto to generate the id prefixes provides several benefits:

the library is browser compatible without the need for any additional polyfills
removes the need to configure bundlers to use polyfills
reduces the file size of the web benchmark by nearly 95,47%
faster in all benchmarks

Relates to: #46
Note: The Benchmark results in the docs are the ones before using uuid as id prefix generator

Benchmark Results
Environment

2.9 GHz 6-Core Intel Core i9 2018 MacBook Pro
macOS Catalina 10.15.7
Chrome Version 86.0.4240.111 (Offizieller Build) (x86_64)
Node 14.8.0

Nodejs benchmark
nodejs benchmark beforegit
Creating and destroying 50000 entities...
Create 50,000 entities with two simple components : 292.88ms
Changing the values of each component             : 5.94ms
Destroy 50,000 entities with two simple components: 299.73ms
Recreating components now that pool is established: 260.39ms
nodejs benchmark after
Creating and destroying 50000 entities...
Create 50,000 entities with two simple components : 189.27ms
Changing the values of each component             : 5.33ms
Destroy 50,000 entities with two simple components: 182.19ms
Recreating components now that pool is established: 157.21ms

Web Benchmark
browser benchmark before:
Creating and destroying 500000 entities...
Create 50,000 entities with two simple components : 2925.81ms
Changing the values of each component             : 13.87ms
Destroy 50,000 entities with two simple components: 2641.12ms
Recreating components now that pool is established: 2434.85ms
browser benchmark after:
Creating and destroying 500000 entities...
Create 50,000 entities with two simple components : 1493.25ms
Changing the values of each component             : 11.41ms
Destroy 50,000 entities with two simple components: 1242.57ms
Recreating components now that pool is established: 1082.49ms

Package Size
package size webbenchmark before: 861K
package size webbenchmark after: 39K

Looks like the package-lock.json wasn't updated in this pull request, causing the builds travis builds to fail.
Please correct this and I'll take a look.
Thanks a ton!

Ah, it looks like it's because the lock file is in conflict. So nevermind on that. I was able to test it.
Can you clean up the DOS newlines (^M) in your changes over the Overview.md file? I'll accept the changes and we'll call this 1.1.0 :)

Strange, the DOS newlines might be something that happened during C&P 🤔
Anyways, I fixed it and rebased my changes onto your last commit to the master branch.


Create a pipeline for microsoft/go releases

The basic requirements to do a release are:

Make a signed tag and push it to the repository.
Download the source archives from a target build to attach to the GitHub release.
Create a GitHub release on the signed tag.

There's more to do on the Docker side--sticking to microsoft/go here.
We can use add some basic validation:

Make sure the commit the release is based on is actually the upstream tag, and that it's the correct tag. (Don't release the wrong build, or release a build that is based on an upstream commit before or after the release tag, or a build of the wrong branch entirely.)
Make sure the tag doesn't overlap an existing tag.
Multi-person signoff.
Make sure the source archive's format matches what we expect. E.g. root go folder, no files outside that folder, certain directories exist inside the folder, the archive filename matches expectations, checksum and signature are accurate, ...
Run additional test jobs on the source. (Rolling build.) This could increase coverage if our rolling build schedule just happened to miss the real release commit.

This would be really nice to have:

Poll https://github.com/golang/go/blob/dev.boringcrypto/misc/boring/RELEASES for changes. Automatically create boring branch update PR when the target version number is detected in that file.

When someone kicks off the pipeline (due to a Go announcement), at that time the release branch commits are done, and we know what the new Go version is, but boring branches are (probably) not updated yet. Automating the polling process removes a human delay from the critical path.


generate index file for models to reduce imports

generate an index.js file so that we can import all the models that we need in one line
import { ModelA, ModelB, ModelC } from 'js/models'

@JohnnyHuangTW don't we already have a ModelProxyClass that is generated?  Can we re-utilize that for this, instead of creating a second index file?

@mikeho ModelProxyClass doesn't really work if you only want to use it for JSDoc


73-add-notes-tasks views

It's possible some manual intervention might be needed on heroku re the yarn update. We'll see.