text:
Add link to data restriction dashboard to top of analysis page

The link will only appear when a user is recognized as an administrator for that study.

This link is currently available in the Study details tab. @danicahelb can you comment on if that is sufficient, or would you prefer to have that button on the top of the page? If you don't have a strong preference, I'd like to leave it where it is. Thanks!

@dmfalke it looks good where it is. thanks.

authors: danicahelb dmfalke

repo: VEuPathDB/web-eda


text:
Access Request Enhancements

Works toward https://github.com/VEuPathDB/web-eda/issues/1150

I'm opening this PR for review. It should be noted that most of the additions of priorAuth in the PR are just from me adding it to anywhere that had the other terms too. So I don't know whether all of those additions are necessary or desired, but I don't know the purposes of all of those code sections or where they are used. However adding all of them did fix the bug I was encountering. It would be great if someone with more knowledge of this part of the code would investigate more closely!

A priorAuth value is basically a long-form string answer to the question, "Did you get approval from the study provider to download this data?" Does that answer your question, or were you asking something else?

A priorAuth value is basically a long-form string answer to the question, "Did you get approval from the study provider to download this data?" Does that answer your question, or were you asking something else?

Yes, that is helpful! If I understand this PR, that value is being added to a table(s) that end users see (the hooks are used in https://github.com/VEuPathDB/web-study-data-access/blob/main/src/study-access/components/StudyAccessController.tsx.
I haven't yet tested this PR, but it seems like we should get a screenshot of the result and ask the clinepi team if they want this addition, unless of course they asked for it. Does that sound reasonable to you?

source: gharchive/pull-request

authors: chowington dmfalke

repo: VEuPathDB/web-study-data-access

license_type: permissive

license_source: github-api


text:
TLS connection error

When trying to git clone (in Ubuntu):
error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
error: 5357 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

If you received this error while running the git clone command, the problem was not in ACHE but with either git, GitHub, or your internet connection. See e.g. the following link for some debugging directions: https://stackoverflow.com/questions/66366582/github-unexpected-disconnect-while-reading-sideband-packet

source: gharchive/issue

repo: VIDA-NYU/ache


text:
Print ready principles

Hi
in this PR I've added a pdf file with table from paper ready to print or post on Linkedin for exposure.
I've added emojis for quick memorization, and formatting for readability.

bold is like a most unique part of principle,
italic is a literal prompt fragment,
underscore is a part of prompt that needs adjusting.

here is the link to the dock if you want to change something in the future link
is it excessive and LinkedIn like? maybe. But this is what I'm going to stick to my wall anyway.

Thanks very much! @Shandelier

repo: VILA-Lab/ATLAS


text:
make _bufferEmpty more efficient

This PR improves the efficiency of _emptyBuffer function by just checking the first element of the array.

So a few more suggestions. The desired change here is only a few lines of code and one clear commit message. As of now, your changes still have linting issues (you have used your own linting instead of following the one in the repository). Plus, you have 4 commits, which is unnecessary, one is enough. This is how you can fix it:

On your branch, run git reset --soft HEAD~4. It will uncommit the last 4 commits without deleting your changes. You will get uncommitted changes.

Run npx eslint index.js to fix linting issues. Also, undo your changes in .eslintrc.js - they are unnecessary.

Now you can make a commit. Your commit message should look like this:

make _bufferEmpty more efficient

closes #2

(note: "closes #2" is in a new line)
Why add "closes"? As soon as I will merge your PR with "closes" in a commit message, GitHub will close an issue related to that. In addition, it is useful for a commit history.

Push your new changes using git push origin buffer-empty-fix -f. Note the -f option. It will overwrite your local commit history (with one clear commit) over your remote history (branch on GitHub). There is nothing bad in using -f on your side branches (like this one), but you need to be careful.

To check yourself go through the difference between main and your PR branch. You can easily see the difference here on a GitHub in the "Files changed" tab.
Hope it helps.

So a few more suggestions. The desired change here is only a few lines of code and one clear commit message. As of now, your changes still have linting issues (you have used your own linting instead of following the one in the repository). Plus, you have 4 commits, which is unnecessary, one is enough. This is how you can fix things so we can merge your PR:

On your branch, run git reset --soft HEAD~4. It will uncommit the last 4 commits without deleting your changes. You will get uncommitted changes.
Run npx eslint index.js to fix linting issues. Also, undo your changes in .eslintrc.js - they are unnecessary.
Now you can make a commit. Your commit message should look like this:

make _bufferEmpty more efficient

closes #2

(note: "closes #2" is in a new line)
Why add "closes"? As soon as I will merge your PR with "closes" in a commit message, GitHub will close an issue related to that. In addition, it is useful for a commit history.

Push your new changes using git push origin buffer-empty-fix -f. Note the -f option. It will overwrite local commit history (with one clear commit) over your remote history (branch on GitHub). There is nothing bad in using -f on your side branches (like this one), but you need to be careful not to lose some work.

To check yourself, go through the difference between main and your PR branch. You can easily see the difference here on a GitHub in the "Files changed" tab.
Hope it helps.

Yeah, thanks a lot for such detailed explanation. It really helped me.

authors: VMois iAmmarTahir

repo: VMois/remedian-js

license: MIT


text:
Google gemini API support

Could you please add Google gemini api support.

If they add any api similar to assistants with state management and backend execution in the future.

repo: VRSEN/agency-swarm


text:
🛑 b2b MarketingServices is down

In a1f51db, b2b MarketingServices (https://b2b-marketingservices.de/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: b2b MarketingServices is back up in 5603259 after 28 minutes.


text:
🛑 b2b MarketingServices is down

In f4bc13a, b2b MarketingServices (https://b2b-marketingservices.de/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: b2b MarketingServices is back up in 126337f after 8 minutes.


text:
🛑 b2b MarketingServices is down

In f5bbc08, b2b MarketingServices (https://b2b-marketingservices.de/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: b2b MarketingServices is back up in fe9397f after 8 minutes.


text:
Mention in the README that action checks only modified code

hi @ValentinVignal
Thanks for you amazing project.
The only thing that I was confused is that there is no mentions in the README.MD that this action only checks modified files in PR.
I spent quite some time to figure out this. 😄
Also to action to post comment in PR itself your GITHUB_TOKEN needs to have pull_request: write permission.

Thank you for the feedbacks @AndriyMatkivskiy . Sorry you lost time
Would you be interested in submitting a PR to update the documentation?
Otherwise, I'll do it 👍

authors: AndriyMatkivskiy ValentinVignal

repo: ValentinVignal/action-dart-analyze


text:
Zombies react to bullet impact

Is this possible with Godot?
Also what about ragdoll physics on death? What do I do to get that working?

Just looked into the ragdoll system https://docs.godotengine.org/en/stable/tutorials/physics/ragdoll_system.html
Didn't get good results. The zombie became 1000x bigger and started spassing out. I'm just going to forget about the ragdoll system.

repo: Valks-Games/zombies


text:
Add new field for tokens token_type

Add a new required varchar(20) token_type field to DB.
Migrations should fill 'CreatorToken' to existing entries.

tested and works


text:
UE4 program crashes when using the latest AMD Graphic Driver (Ver 21.4.1)

When set Ray Tracer to AMD Radeon Rays or set Convolution Type to AMD TrueAudio Next, the packaged UE4 program crashes on startup.

Crash.zip
It's OK when using old AMD Graphic Driver (Ver 21.3.1)

Hello @Papyrus-G, the minidump you attached is a EXCEPTION_ACCESS_VIOLATION_READ in amdocl64.dll, can you clarify why you think this is a steam-audio issue and not a video driver or upstream UE4 issue?

Sorry for causing trouble to you. I don't know much about dump file, I spend a while thinking who I should report this issue to.
Thanks for your Friendly response, I will test this on other platform and send an issue report to AMD if needed.

authors: Papyrus-G kisak-valve

repo: ValveSoftware/steam-audio


text:
dash

test

test

test

test

repo: VaraparlaNarasingarao/learning


text:
eax is incorrectly being marked as the constant 0

The two screenshots below show the assembly and IL for a function where eax is being treated as the constant 0x0, but it's clearly being modified.

Could you please provide a binary or verify that its bug still exists on the "dev" update channel?  The whole data flow system has been refactored and it is unlikely that this issue still exists.

Marking this as closed unless you can re-test and verify whether it's still live.

Yup, this was fixed in dev. Thanks!

authors: gsingh93 plafosse psifertex


text:
How can I run OmniGen on Colab?

I don't really know how to run this on colab. I put in this code
!git clone https://github.com/staoxiao/OmniGen.git %cd OmniGen !pip install -e . !pip install gradio spaces !python app.py --share
And this is the last output it gave me. After that, it stopped

Btw I ran this on colab on a phone (Samsung m34)
Also, is it possible to use omnigen online? If yes please tell me how

@staoxiao can you suggest alternative method to run online or a fix to run on colab?

can you suggest alternative method to run online or a fix to run on colab?

@R-iscool running online is not a problem. The problem is resources. The resources that OmniGen demands are not available for free. If you can pay then running online is not a problem.

For anyone attempting to run on colab free tier, you'll need to use this PR https://github.com/VectorSpaceLab/OmniGen/pull/151 instead of the main repo because of GPU resource constraints. The app.py also need to be patched to use the prequantized weight provided by the PR's author so that colab RAM will not run out when loading the model. If you're just trying it and are not doing anything serious with it, use the huggingface demo instead. You might only be able to generate one or two images per 2 hours due to ZeroGPU compute time limit set for each user, but for now it is not that worth it to do all the manual work and yield a 30 minutes per image speed on colab (yeah T4's aren't that new right now and the speed is definitely quite slow, even compared to consumer GPUs nowadays).

repo: VectorSpaceLab/OmniGen


text:
Feature: task time limits (and other related stuff)

The default task time limit is 30 seconds, just as the PHP default. Time limit can be disabled, but be careful with runaway processes.
We are talking about real time limit. Time spent on sleeping, waiting, etc will also be counted.

The next big question is this: how do we correctly and safely set up a real time limit on Unix? It seems not everyone may have timeout (it is the best solution), and sleep might be affected by process signals. What would be acceptable?

While we're at it, we are also adding tests to assert the task runner is really being run silently.


text:
✨ Automate branding, solidity version sanity, and upgrades

Few tasks are somewhat monotonous, and rather easy to miss when porting from solady to soledge:
I'm thinking I could automate this by adding following npm commands:

npm run rebrand: Migrate from solady to soledge comment blocks.
npm run powerup: Upgrade to latest solidity version.
Add a pre-commit hook to ensure all files are on the latest solidity version.

Solady shoud not have node dependencies.
The scripts can be written entirely in shell script, or vanilla JS without dependencies.

I'm also ok with doing it the manual way. There are not many files, and each one of them needs special care.

Agree with writing them in shell. Don't mean this to be part of build process, these could be helpful tool to be used by contributors so they can choose to automate if required.

authors: Vectorized raxhvl

repo: Vectorized/soledge


text:
Error

logs (1).txt
I've always fail to install gsi using dsu, at first it was fine i can install 5+ gsi without issue. But now it's keep fail and even I've install the same gsi that works before now it doesn't work anymore
Also I used only apk first but now using the magisk module also doesn't do anything
Edit : I'm sorry i think it's because my storage. I just removed something from 16gbs to 23gbs and now it's started to work again. But i have question how much storage i need because i only have 64gb model

Yes, you need a considerable amount of storage to install images, the error in your logs are because of lacking free storage, the storage you need may vary from:

Images you're trying to install (since the file itself weights something).
Allocation (images might be allocated in sdcard when supported).
Chosen file and installation method (since chosen file may be not "direct installable", thus, needing to be decompressed or compressed, which may take some storage).
How much userdata storage you set in application (default is 2G, but you can set a custom value)

Anyway, Android recommends at least reserving 10G of free space: https://source.android.com/docs/core/ota/dynamic-system-updates#hardware-requirements

authors: VegaBobo ilhmnnda

repo: VegaBobo/DSU-Sideloader


text:
Question meteor files with AWS adaptor

Hello,
Im using Meteor-files + AWS adaptor in my website for video playing(206 status). I came up couple questions:

While playing video from browser, browser will download buffer in advance. But our issue is video will always need to wait for buffer to be downloaded. My question is, is there any config i can change to define the buffer size from Meteor-files level? We dont think it is internet speed issue.
We use AWS as adaptor, while upload file to AWS, will it first upload to Meteor server first?
While playing(download) video from AWS, will the data goes to Meteor server first then goes to user's browser? Or will it directly go from AWS to user's browser?

Hello @haojia321 ,
Haven't heard from you for a while :)

It's in control for the browser. Browser uses Range header to control buffer, and chunk size. Using interceptDownload hook you may alter the size of the chunk, by changing "end position". For more see AWS:S3 integration docs, you're looking for if (http.request.headers.range) { /*...*/ } block. Note: not all browsers sends this header, and most of the browsers are willing to not set "end position", I recommend to start with logging Range header, to check how player (default or custom) manages this feature.
Yes, Browser -> Meteor server -> AWS:S3
If you follow AWS:S3 integration docs, then yes,  AWS:S3 -> Meteor server -> Browser

2 and 3 is made this way for security reasons, upload/download flow control and users permissions control.

Hello @dr-dimitru ,
Take play video from AWS for example. I know the file from meteor server to browser will be send as multiple chunks instead of one file.
My question is will the file send from AWS to meteor server in one file or chunks? Will this file be deleted automatically from meteor server(point to the code)? Where exactly is this file stored in meteor?
Our issue now is galaxy will crash when we play video. There is only one user and not a heavy traffic on our server when we faced the issue. From galaxy it says out of memory.

From AWS -> Meteor in chunks, see s3.getObject in current AWS integration guide
File pulled from AWS to Meteor is not saved anywhere and piped directly to Browser, maybe some bytes will remain for a moment in RAM due to difference in connection speed
Does Galaxy crash has a error? exception? what support told you?

P.S. Galaxy isn't a silver bullet, simple dedicated server or AWS EC2 will serve your needs with ease. Of course, you need to know Linux well...

Galaxy only says "Application exited with signal: killed (out of memory)" from log. Any thoughts why this happens?

import { Meteor } from 'meteor/meteor';
import { _ } from 'meteor/underscore';
import { Random } from 'meteor/random';
import { FilesCollection } from 'meteor/ostrio:files';
import stream from 'stream';
import S3 from 'aws-sdk/clients/s3'; // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html
// See fs-extra and graceful-fs NPM packages
// For better i/o performance
import fs from 'fs';
// Example: S3='{"s3":{"key": "xxx", "secret": "xxx", "bucket": "xxx", "region": "xxx""}}' meteor
if (process.env.S3) {
Meteor.settings.s3 = JSON.parse(process.env.S3).s3;
}
const s3Conf = Meteor.settings.s3 || {};
const bound = Meteor.bindEnvironment((callback) => {
return callback();
});
// Check settings existence in Meteor.settings
// This is the best practice for app security
if (Meteor.isServer && s3Conf && s3Conf.key && s3Conf.secret && s3Conf.bucket && s3Conf.region) {
// Create a new S3 object
const s3 = new S3({
secretAccessKey: s3Conf.secret,
accessKeyId: s3Conf.key,
region: s3Conf.region,
// sslEnabled: true, // optional
httpOptions: {
timeout: 6000,
agent: false
}
});
// Declare the Meteor file collection on the Server
OstrioVideo = new FilesCollection({
    debug: false, // Change to `true` for debugging
    storagePath: 'assets/app/uploads/uploadedFiles/videos',
    collectionName: 'OstrioVideo',
    // Disallow Client to execute remove, use the Meteor.method
    allowClientCode: false,
    chunkSize: 5 * 1024 * 1024,

    onBeforeUpload(file) {
        // Allow upload files under 10MB, and only in png/jpg/jpeg formats
        // Note: You should never trust to extension and mime-type here
        // as this data comes from client and can be easily substitute
        // to check file's "magic-numbers" use `mmmagic` or `file-type` package
        // real extension and mime-type can be checked on client (untrusted side)
        // and on server at `onAfterUpload` hook (trusted side)
        if (file.size <= 1024 * 1024 * 1024 && /mp4|mov/i.test(file.ext)) {
            return true;
        } else {
            return 'Please upload video, with size equal or less than 1GB';
        }
    },

    // Start moving files to AWS:S3
    // after fully received by the Meteor server
    onAfterUpload(fileRef) {
        // Run through each of the uploaded file
        _.each(fileRef.versions, (vRef, version) => {
            const ffprobe = require('ffprobe');
            const ffprobeStatic = require('ffprobe-static');
            ffprobe(vRef.path, {
                path: ffprobeStatic.path
            }, (err, info) => {
                if (err) {
                    console.error(err, info);
                }
                this.collection.update({
                    _id: fileRef._id
                }, {
                    $set: { 'meta.ffprobe': info }
                }, (updError) => {
                    if (updError) {
                        console.error(updError);
                    }
                    const filePath = 'videos/' + (Random.id()) + '-' + version + '.' + fileRef.extension;
                    s3.putObject({
                        // ServerSideEncryption: 'AES256', // Optional
                        StorageClass: 'STANDARD',
                        Bucket: s3Conf.bucket,
                        Key: filePath,
                        Body: fs.createReadStream(vRef.path),
                        ContentType: vRef.type,
                    }, (error, data) => {
                        bound(() => {
                            if (error) {
                                console.error(error);
                            } else {
                                const upd = { $set: {} };
                                upd['$set']['versions.' + version + '.meta.pipePath'] = filePath;
                                upd['$set']['meta.isUploaded'] = true;

                                // Update FilesCollection with link to the file at AWS
                                this.collection.update({
                                    _id: fileRef._id
                                }, upd, (updError) => {
                                    if (updError) {
                                        console.error(updError);
                                    } else {
                                        // Unlink original files from FS after successful upload to AWS:S3
                                        this.unlink(this.collection.findOne(fileRef._id), version);
                                    }
                                });
                            }
                        });
                    });
                });
            });

        });
    },

    // Intercept access to the file
    // And redirect request to AWS:S3
    interceptDownload(http, fileRef, version) {
        let path;

        if (fileRef && fileRef.versions && fileRef.versions[version] && fileRef.versions[version].meta && fileRef.versions[version].meta.pipePath) {
            path = fileRef.versions[version].meta.pipePath;
        }

        if (path) {
            // If file is successfully moved to AWS:S3
            // We will pipe request to AWS:S3
            // So, original link will stay always secure

            // To force ?play and ?download parameters
            // and to keep original file name, content-type,
            // content-disposition, chunked "streaming" and cache-control
            // we're using low-level .serve() method
            const opts = {
                Bucket: s3Conf.bucket,
                Key: path
            };

            if (http.request.headers.range) {
                const vRef = fileRef.versions[version];
                let range = _.clone(http.request.headers.range);
                const array = range.split(/bytes=([0-9]*)-([0-9]*)/);
                const start = parseInt(array[1]);
                let end = parseInt(array[2]);
                if (isNaN(end)) {
                    // Request data from AWS:S3 by small chunks
                    end = (start + this.chunkSize) - 1;
                    if (end >= vRef.size) {
                        end = vRef.size - 1;
                    }
                }
                opts.Range = `bytes=${start}-${end}`;
                http.request.headers.range = `bytes=${start}-${end}`;
            }

            const fileColl = this;
            s3.getObject(opts, function(error) {
                if (error) {
                    console.error(error);
                    if (!http.response.finished) {
                        http.response.end();
                    }
                } else {
                    if (http.request.headers.range && this.httpResponse.headers['content-range']) {
                        // Set proper range header in according to what is returned from AWS:S3
                        http.request.headers.range = this.httpResponse.headers['content-range'].split('/')[0].replace('bytes ', 'bytes=');
                    }

                    const dataStream = new stream.PassThrough();
                    fileColl.serve(http, fileRef, fileRef.versions[version], version, dataStream);
                    dataStream.end(this.data.Body);
                }
            });

            return true;
        }
        // While file is not yet uploaded to AWS:S3
        // It will be served file from FS
        return false;
    }
});

// Intercept FilesCollection's remove method to remove file from AWS:S3
const _origRemove = OstrioVideo.remove;
OstrioVideo.remove = function(search) {
    const cursor = this.collection.find(search);
    cursor.forEach((fileRef) => {
        _.each(fileRef.versions, (vRef) => {
            if (vRef && vRef.meta && vRef.meta.pipePath) {
                // Remove the object from AWS:S3 first, then we will call the original FilesCollection remove
                s3.deleteObject({
                    Bucket: s3Conf.bucket,
                    Key: vRef.meta.pipePath,
                }, (error) => {
                    bound(() => {
                        if (error) {
                            console.error(error);
                        }
                    });
                });
            }
        });
    });

    //remove original file from database
    _origRemove.call(this, search);
};

} else {
OstrioVideo = new FilesCollection({
collectionName: 'OstrioVideo',
allowClientCode: false,
chunkSize: 5 * 1024 * 1024,
onBeforeUpload(file) {
// Allow upload files under 10MB, and only in png/jpg/jpeg formats
// Note: You should never trust to extension and mime-type here
// as this data comes from client and can be easily substitute
// to check file's "magic-numbers" use mmmagic or file-type package
// real extension and mime-type can be checked on client (untrusted side)
// and on server at onAfterUpload hook (trusted side)
if (file.size <= 1024 * 1024 * 1024 && /mp4|mov/i.test(file.ext)) {
return true;
} else {
return 'Please upload video, with size equal or less than 1GB';
}
},
onAfterUpload(fileRef) {
_.each(fileRef.versions, (vRef, version) => {
const ffprobe = require('ffprobe');
const ffprobeStatic = require('ffprobe-static');
ffprobe(vRef.path, {
path: ffprobeStatic.path
}, (err, info) => {
if (err) {
console.error(err, info);
}
this.collection.update({
_id: fileRef._id
}, {
$set: {
'meta.ffprobe': info,
'meta.isUploaded': true
}
}, (updError) => {
if (updError) {
console.error(updError);
}
});
});
});
}
});
}

I have attached collection code here. Would you mind help me take a look if there is any potential code can cause this issue please?
import { Meteor } from 'meteor/meteor';
import { _ } from 'meteor/underscore';
import { Random } from 'meteor/random';
import { FilesCollection } from 'meteor/ostrio:files';
import stream from 'stream';
import S3 from 'aws-sdk/clients/s3'; // http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html
// See fs-extra and graceful-fs NPM packages
// For better i/o performance
import fs from 'fs';
// Example: S3='{"s3":{"key": "xxx", "secret": "xxx", "bucket": "xxx", "region": "xxx""}}' meteor
if (process.env.S3) {
Meteor.settings.s3 = JSON.parse(process.env.S3).s3;
}
const s3Conf = Meteor.settings.s3 || {};
const bound = Meteor.bindEnvironment((callback) => {
return callback();
});
// Check settings existence in Meteor.settings
// This is the best practice for app security
if (Meteor.isServer && s3Conf && s3Conf.key && s3Conf.secret && s3Conf.bucket && s3Conf.region) {
// Create a new S3 object
const s3 = new S3({
secretAccessKey: s3Conf.secret,
accessKeyId: s3Conf.key,
region: s3Conf.region,
// sslEnabled: true, // optional
httpOptions: {
timeout: 6000,
agent: false
}
});
// Declare the Meteor file collection on the Server
OstrioVideo = new FilesCollection({
    debug: false, // Change to `true` for debugging
    storagePath: 'assets/app/uploads/uploadedFiles/videos',
    collectionName: 'OstrioVideo',
    // Disallow Client to execute remove, use the Meteor.method
    allowClientCode: false,
    chunkSize: 5 * 1024 * 1024,

    onBeforeUpload(file) {
        // Allow upload files under 10MB, and only in png/jpg/jpeg formats
        // Note: You should never trust to extension and mime-type here
        // as this data comes from client and can be easily substitute
        // to check file's "magic-numbers" use `mmmagic` or `file-type` package
        // real extension and mime-type can be checked on client (untrusted side)
        // and on server at `onAfterUpload` hook (trusted side)
        if (file.size <= 1024 * 1024 * 1024 && /mp4|mov/i.test(file.ext)) {
            return true;
        } else {
            return 'Please upload video, with size equal or less than 1GB';
        }
    },

    // Start moving files to AWS:S3
    // after fully received by the Meteor server
    onAfterUpload(fileRef) {
        // Run through each of the uploaded file
        _.each(fileRef.versions, (vRef, version) => {
            const ffprobe = require('ffprobe');
            const ffprobeStatic = require('ffprobe-static');
            ffprobe(vRef.path, {
                path: ffprobeStatic.path
            }, (err, info) => {
                if (err) {
                    console.error(err, info);
                }
                this.collection.update({
                    _id: fileRef._id
                }, {
                    $set: { 'meta.ffprobe': info }
                }, (updError) => {
                    if (updError) {
                        console.error(updError);
                    }
                    const filePath = 'videos/' + (Random.id()) + '-' + version + '.' + fileRef.extension;
                    s3.putObject({
                        // ServerSideEncryption: 'AES256', // Optional
                        StorageClass: 'STANDARD',
                        Bucket: s3Conf.bucket,
                        Key: filePath,
                        Body: fs.createReadStream(vRef.path),
                        ContentType: vRef.type,
                    }, (error, data) => {
                        bound(() => {
                            if (error) {
                                console.error(error);
                            } else {
                                const upd = { $set: {} };
                                upd['$set']['versions.' + version + '.meta.pipePath'] = filePath;
                                upd['$set']['meta.isUploaded'] = true;

                                // Update FilesCollection with link to the file at AWS
                                this.collection.update({
                                    _id: fileRef._id
                                }, upd, (updError) => {
                                    if (updError) {
                                        console.error(updError);
                                    } else {
                                        // Unlink original files from FS after successful upload to AWS:S3
                                        this.unlink(this.collection.findOne(fileRef._id), version);
                                    }
                                });
                            }
                        });
                    });
                });
            });

        });
    },

    // Intercept access to the file
    // And redirect request to AWS:S3
    interceptDownload(http, fileRef, version) {
        let path;

        if (fileRef && fileRef.versions && fileRef.versions[version] && fileRef.versions[version].meta && fileRef.versions[version].meta.pipePath) {
            path = fileRef.versions[version].meta.pipePath;
        }

        if (path) {
            // If file is successfully moved to AWS:S3
            // We will pipe request to AWS:S3
            // So, original link will stay always secure

            // To force ?play and ?download parameters
            // and to keep original file name, content-type,
            // content-disposition, chunked "streaming" and cache-control
            // we're using low-level .serve() method
            const opts = {
                Bucket: s3Conf.bucket,
                Key: path
            };

            if (http.request.headers.range) {
                const vRef = fileRef.versions[version];
                let range = _.clone(http.request.headers.range);
                const array = range.split(/bytes=([0-9]*)-([0-9]*)/);
                const start = parseInt(array[1]);
                let end = parseInt(array[2]);
                if (isNaN(end)) {
                    // Request data from AWS:S3 by small chunks
                    end = (start + this.chunkSize) - 1;
                    if (end >= vRef.size) {
                        end = vRef.size - 1;
                    }
                }
                opts.Range = `bytes=${start}-${end}`;
                http.request.headers.range = `bytes=${start}-${end}`;
            }

            const fileColl = this;
            s3.getObject(opts, function(error) {
                if (error) {
                    console.error(error);
                    if (!http.response.finished) {
                        http.response.end();
                    }
                } else {
                    if (http.request.headers.range && this.httpResponse.headers['content-range']) {
                        // Set proper range header in according to what is returned from AWS:S3
                        http.request.headers.range = this.httpResponse.headers['content-range'].split('/')[0].replace('bytes ', 'bytes=');
                    }

                    const dataStream = new stream.PassThrough();
                    fileColl.serve(http, fileRef, fileRef.versions[version], version, dataStream);
                    dataStream.end(this.data.Body);
                }
            });

            return true;
        }
        // While file is not yet uploaded to AWS:S3
        // It will be served file from FS
        return false;
    }
});

// Intercept FilesCollection's remove method to remove file from AWS:S3
const _origRemove = OstrioVideo.remove;
OstrioVideo.remove = function(search) {
    const cursor = this.collection.find(search);
    cursor.forEach((fileRef) => {
        _.each(fileRef.versions, (vRef) => {
            if (vRef && vRef.meta && vRef.meta.pipePath) {
                // Remove the object from AWS:S3 first, then we will call the original FilesCollection remove
                s3.deleteObject({
                    Bucket: s3Conf.bucket,
                    Key: vRef.meta.pipePath,
                }, (error) => {
                    bound(() => {
                        if (error) {
                            console.error(error);
                        }
                    });
                });
            }
        });
    });

    //remove original file from database
    _origRemove.call(this, search);
};

} else {
OstrioVideo = new FilesCollection({
collectionName: 'OstrioVideo',
allowClientCode: false,
chunkSize: 5 * 1024 * 1024,
onBeforeUpload(file) {
// Allow upload files under 10MB, and only in png/jpg/jpeg formats
// Note: You should never trust to extension and mime-type here
// as this data comes from client and can be easily substitute
// to check file's "magic-numbers" use mmmagic or file-type package
// real extension and mime-type can be checked on client (untrusted side)
// and on server at onAfterUpload hook (trusted side)
if (file.size <= 1024 * 1024 * 1024 && /mp4|mov/i.test(file.ext)) {
return true;
} else {
return 'Please upload video, with size equal or less than 1GB';
}
},
onAfterUpload(fileRef) {
_.each(fileRef.versions, (vRef, version) => {
const ffprobe = require('ffprobe');
const ffprobeStatic = require('ffprobe-static');
ffprobe(vRef.path, {
path: ffprobeStatic.path
}, (err, info) => {
if (err) {
console.error(err, info);
}
this.collection.update({
_id: fileRef._id
}, {
$set: {
'meta.ffprobe': info,
'meta.isUploaded': true
}
}, (updError) => {
if (updError) {
console.error(updError);
}
});
});
});
}
});
}

ostrioVideo.js.zip

Any thoughts why this happens?

What size of the files you're trying to play?
What "network tab" in devtools says? What size of the chunks browser is requesting? My guess - player requesting whole file, you need custom player, which manages chunks in better way. Plus to avoid server crashes limit chunk size in if (http.request.headers.range) { /*...*/ } block as at AWS:S3 integration docs.

@haojia321 any news on this one?

Hi @dr-dimitru
Sorry for the delay. We are still stuck here.

The size of the file is 27mb and chunk size is 5mb. Video duration is 13 seconds.
We are using videojs player.

We are working on deploy meteor app to a cloud server with a docker now.
We are concerned about if it will scale to deploy to a cloud server. We know it will always hit our meteor server when user play video. So even we host our video in aws s3 and supports multiple region, it will always come to the meteor server which might be a bottleneck for us.

I recommend in your case to use GridFS to store files, as anyways you won't be able to utilize AWS:S3 CDN features
Are you sure your browser (and videojs) are requesting video by 5mb chunks? What if you doing seek (by moving playhead on timeline)? Network Tab screenshot may help with this one...

Below is a chunk form the network tab. It is 5mb in chuck and total 27mb.
Accept-Ranges:bytes
Cache-Control:public, max-age=31536000, s-maxage=31536000
Content-Disposition:inline; filename="2015-08-18%20372.MOV"; filename*=UTF-8''2015-08-18%20372.MOV; charset=UTF-8
Content-Length:5242880
Content-Range:bytes 18317312-23560191/27207738
Content-Type:video/quicktime
Date:Sun, 24 Dec 2017 02:27:35 GMT
Pragma:private
Trailer:Expires
Transfer-Encoding:chunked

@dr-dimitru is below issue will happen if I use third party storage like AWS S3?https://github.com/VeliovGroup/Meteor-Files/wiki/MeteorUp-(MUP)-Usage
This question came when we were discussing to using MUP.

We want to compress/encode the video before upload to aws. Is this the best place to write the code?
onAfterUpload(fileRef) {
_.each(fileRef.versions, (vRef, version) => {
//compress first here
//then s3.putObject()
});
}

Yes, onAfterUpload hook is the right place for post-processing of uploaded files.

repo: VeliovGroup/Meteor-Files

license_source: bigquery


text:
Use time range filter in a template query

Is it possible to use time range filter (i.e. $from, $to or $timeFilter) in template query?
In Grafana documentation I see "Set this only to On Time Range Change if your variable options query contains a time range filter or is dependent on dashboard time range."
But when I try to use time range filter ($from, $to or $timeFilter)  in template query it sends query to CH as is, without replacing $from, $to or $timeFilter

@MikhailKalashnikov, As I know this feature is not supported by Grafana
see - https://github.com/grafana/grafana/issues/1909
Anyway, I can't use $from, $to or $timeFilter at template variables while using other datasources. Correct me if I'm wrong

Yes. You are right.
It seems that it is not supported in Grafana

repo: Vertamedia/clickhouse-grafana

license: mit


text:
feat: http method routing

Intro
I know you do not accept feature request, but this is about adding a class that has already been written (not by me) that I believe would add a nice touch to the project.
Description
Today routes require to explicitly check for the HTTP method of the request.
I'd like to have an idiomatic way to automatically reject unsupported methods without adding a lot of boilerplate.
I've found this article that offers a nice implementation (the article is in Spanish but the code is easy to understand).
Would it make sense to integrate it? Or do you have another solution in mind?
And if there's already a better alternative I must have missed in the documentation ;)
Requirements

[ ] Automatically route requests based on their HTTP method
[ ] Reject requests with unsupported HTTP methods

you can use if else

For reference on ideas and discussions: https://github.com/VeryGoodOpenSource/dart_frog/issues/57


text:
How to get suggestions in v2?

Hi, I have some doubts about how I should show suggested replies to the user.
I noticed in Dialogflow that some specific platforms like Google, Facebook, Slack, Skype have suggestion chips or quick replies, also I see that it's possible to add a custom payload with custom JSON. So, if I'm making a chatbot in my Flutter app, here are my questions:

Should I use the responses from these platforms to get suggestions?
Should I set custom suggestions in payload and get them from it?
If I want to get suggestions from each platform or from payload, how can I access to them using dialogflow_v2?

@pablobarrera did you got the answer of this issue?

@pablobarrera did you get a solution to these?

I found a way, you can see it here:
https://stackoverflow.com/questions/58341273/how-to-create-a-chatbot-with-response-options-in-flutter/58679095#answer-58679095

In the Dialogflow console you could add a custom payload to your messages, like this:
{"suggestions": ["Reply 1", "Reply 2"]}

@pablobarrera yeah actually I tried this code but shows me in the console and I'm not able to know should I embed that in widgets. So is there any way to do that as they have shown on StackOverflow?

authors: TheBoy-WhoCode pablobarrera


text:
VMAlert should have remoteWriteSettings and remoteRead headers support

We use M3 as a persistent multi-tenant storage, where tenants are implemented by using some specific headers to filter metrics by labels or change metric labels before writing to the storage, for example for queries:
M3-Restrict-By-Tags-JSON: '{"match":[{"name":"remotewrite_source","type":"EQUAL","value":"zone1"}],"strip":["remotewrite_source"]}'
VMAgent supports remoteWriteSettings, so we can add additional labels before sending metrics to the remoteWrite storage. VMAlert does not, so for M3 it manages alert/rule states globally. We need to setup an additional proxy to add headers on read/write operations, which is not very flexible for multiple VMAlert instances.
If it's helpful, we can make changes by our team and submit them for review.

Unfortunately it didn't work. VMAlert sections for remoteRead/remoteWrite:
  remoteWrite:
    url: "http://m3coordinator.example.com/api/v1/prom/remote/write?extra_label=remotewrite_source=test"
    concurrency: 4
  remoteRead:
    url: "http://m3query.example.com?extra_label=remotewrite_source=test"

When querying ALERTS and ALERTS_FOR_STATE from m3query, remotewrite_source tags are missing from labels:
ALERTS{alertgroup="test-alerts", alertname="vmalert always-on test alert", alertstate="firing", job="<no value>", severity="test"}
ALERTS_FOR_STATE{alertgroup="test-alerts", alertname="vmalert always-on test alert", job="<no value>", severity="test"}

Found solution for remoteWrtie in the documentation: externalLabels, it works, but I'm not sure, that remoteRead uses those labels to limit alert requests.

Checked in the code, externalLabels is loaded at startup in the manager and used in rr/rw. Also, checked Alertmanager, multiple instances of VMAlert using different alerts from the remoteRead, filtering it by externalLabels.
The current issue is no longer relevant, thanks!

Was fixed at v0.27 release, feel free to re-open if issue wasn't solved.

repo: VictoriaMetrics/operator


text:
controllers/factory/vmalert: do not add notifier.* flags if notifier.blackhole is set by user

Previously, setting "notifier.blackhole" and not using any notifiers would lead to CrashLoopBackoff because vmalert would receive an empty "notifier.url" value.
Updates:

https://github.com/VictoriaMetrics/operator/issues/894
https://github.com/VictoriaMetrics/operator/pull/813

I think, it'd be great to set blackhole as a default value if there is no any notifiers configured.


text:
🛑 SCOP276 is down

In 443ae78, SCOP276 ($SCOP276) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SCOP276 is back up in f3cbd33.

repo: Vikingfr/upptime


text:
🛑 SCOP276 is down

In e091b94, SCOP276 ($SCOP276) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SCOP276 is back up in 5dc96e9.


text:
🛑 Rue de la coloc is down

In 4f34283, Rue de la coloc ($COLOC) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Rue de la coloc is back up in 6010b69.


text:
Aesthetic issue with various tasks.

I would take a crack at it, but null coding experience myself.
The tasks pile up and overlap each other in a disordered manner. Great solution otherwise.

what resolution do you use

My work laptop 1366x768

authors: Vilhelm-Ian rubenrookd


text:
Test Scoop Package manager for bin installs on windows

https://scoop.sh/

done and added to repo : https://github.com/VinceCabs/dotfiles/commit/ea742fc5f31b9a0dd183a9a8f6e88b46f00a381e

repo: VinceCabs/dotfiles


text:
Update npm package?

First off, thanks for writing this awesome tool. Would it be possible to update the npm package, perhaps with a minor version increment so that the Knex peer dependency of up to 0.12.3 is supported?
I see the change is in place here, but still getting:
objection@0.6.0 requires a peer of knex@>= 0.8.0 <= 0.12.1 but none was installed.
edit: as I write this, we're up to 0.12.5 with Knex.

0.12.3 is updated in master (but not yet published on npm). 0.12.4 had build issues and had to be patched 0.12.5 just a few hours post release.
Because knex still is on sub v1 versioning, this will be a pain for a while.
You can always just "monkey patch" objections package.json yourself if you need latest of the latest.

The peerdep is a bit of a PITA, but necessary because knex breaks from time to time and I don't want objection to break with it. We have couple of fixes planned for 0.6.1 so this will have to wait for  a while. Sorry about this.
With npm3 peerdep mismatches show up only as warnings right? Are you using npm2?

@koskimas is there any chance to see 0.6.1 in the nearest feature?

I'll release it today GMT+3.

Done

authors: Biktop fl0w koskimas strues


text:
Suggestions for scala and java deps are mangled

Given this maven_install:
 maven_install(
        name = "maven",
        artifacts = [
            "ai.x:diff_2.12:2.0.1",
            "ch.qos.logback:logback-classic:1.3.6",
            "co.fs2:fs2-core_2.12:3.9.4",
            "co.fs2:fs2-io_2.12:3.9.4",
            "com.alexdupre:bitcoincash-lib_2.12:0.9.20",
            "com.amazonaws:aws-java-sdk:1.11.771",
            "com.beachape:enumeratum_2.12:1.7.2",
            "com.beachape:enumeratum-circe_2.12:1.7.2",
            "com.beachape:enumeratum-doobie_2.12:1.7.2",
            "com.chuusai:shapeless_2.12:2.3.10",
            "com.eed3si9n:gigahorse-okhttp_2.12:0.5.0",
            "com.fasterxml.jackson.core:jackson-databind:2.14.2",
            "com.fasterxml.jackson.module:jackson-module-scala_2.12:2.14.2",
            "com.github.alexarchambault:scalacheck-shapeless_1.16_2.12:1.3.1",
            "com.github.ben-manes.caffeine:caffeine:3.1.1",
            "com.github.blemale:scaffeine_2.12:5.2.1",
            "com.github.cb372:cats-retry_2.12:3.1.0",
            "com.github.fd4s:fs2-kafka_2.12:3.1.0",
            "com.github.fs2-blobstore:core_2.12:0.9.12",
            "com.github.fs2-blobstore:gcs_2.12:0.9.12",
            "com.github.fs2-blobstore:s3_2.12:0.9.12",
            "com.github.ghostdogpr:caliban-client_2.12:2.0.2",
            "com.github.ghostdogpr:caliban-tools_2.12:2.0.2",
            "com.github.jasync-sql:jasync-common:2.1.23",
            "com.github.jasync-sql:jasync-postgresql:2.1.23",
            "com.github.multiformats:java-multibase:v1.1.1",
            "com.github.pureconfig:pureconfig_2.12:0.17.5",
            "com.github.scopt:scopt_2.12:3.7.0",
            "com.github.scredis:scredis_2.12:2.2.5",
            "com.google.api.grpc:proto-google-iam-v1:1.7.0",
            "com.google.cloud:google-cloud-bigquery:2.18.2",
            "com.google.cloud:google-cloud-pubsub:1.123.0",
            "com.google.cloud:google-cloud-storage:2.14.0",
            "com.google.guava:guava:33.0.0-jre",
            "com.jsuereth:scala-arm_2.12:2.0",
            "com.monovore:decline-effect_2.12:2.4.1",
            "com.olegpy:better-monadic-for_2.12:0.3.1",
            "com.sksamuel.avro4s:avro4s-core_2.12:4.1.1",
            "com.softwaremill.retry:retry_2.12:0.3.6",
            "com.softwaremill.sttp.client3:async-http-client-backend-cats_2.12:3.9.2",
            "com.typesafe.akka:akka-actor_2.12:2.8.5",
            "com.typesafe.akka:akka-slf4j_2.12:2.8.5",
            "com.typesafe.akka:akka-stream_2.12:2.8.5",
            "com.typesafe.akka:akka-http-spray-json_2.12:10.1.11",
            "com.typesafe.scala-logging:scala-logging_2.12:3.9.5",
            "com.yugabyte:java-driver-core:4.15.0-yb-1",
            "com.yugabyte:java-driver-query-builder:4.15.0-yb-1",
            "commons-codec:commons-codec:1.15",
            "commons-io:commons-io:2.6",
            "eu.timepit:fs2-cron-cron4s_2.12:0.9.0",
            "fr.acinq:bitcoin-lib_2.12:0.9.17",
            "io.7mind.izumi:logstage-core_2.12:1.2.5",
            "io.7mind.izumi:logstage-rendering-circe_2.12:1.2.5",
            "io.circe:circe-core_2.12:0.14.6",
            "io.circe:circe-generic_2.12:0.14.6",
            "io.circe:circe-literal_2.12:0.14.6",
            "io.circe:circe-parser_2.12:0.14.6",
            "io.circe:circe-generic-extras_2.12:0.14.3",
            "io.circe:circe-optics_2.12:0.14.1",
            "io.confluent:kafka-streams-avro-serde:7.5.3",
            "io.getunleash:unleash-client-java:6.0.1",
            "io.github.embeddedkafka:embedded-kafka-schema-registry_2.12:7.5.3",
            "io.grpc:grpc-alts:1.51.1",
            "io.grpc:grpc-api:1.51.1",
            "io.grpc:grpc-auth:1.51.1",
            "io.grpc:grpc-context:1.51.1",
            "io.grpc:grpc-googleapis:1.51.1",
            "io.grpc:grpc-grpclb:1.51.1",
            "io.grpc:grpc-netty:1.51.1",
            "io.grpc:grpc-netty-shaded:1.51.1",
            "io.grpc:grpc-protobuf:1.51.1",
            "io.grpc:grpc-protobuf-lite:1.51.1",
            "io.grpc:grpc-services:1.51.1",
            "io.grpc:grpc-stub:1.51.1",
            "io.grpc:grpc-xds:1.51.1",
            "io.higherkindness:droste-core_2.12:0.9.0",
            "io.netty:netty-buffer:4.1.72.Final",
            "io.netty:netty-codec:4.1.72.Final",
            "io.netty:netty-codec-http:4.1.72.Final",
            "io.netty:netty-codec-socks:4.1.72.Final",
            "io.netty:netty-common:4.1.72.Final",
            "io.netty:netty-handler:4.1.72.Final",
            "io.netty:netty-handler-proxy:4.1.72.Final",
            "io.netty:netty-transport:4.1.72.Final",
            "io.netty:netty-transport-classes-epoll:4.1.72.Final",
            "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.72.Final",
            "io.netty:netty-transport-native-unix-common:4.1.72.Final",
            "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.72.Final",
            "io.prometheus:simpleclient:0.16.0",
            "io.prometheus:simpleclient_hotspot:0.16.0",
            "io.prometheus:simpleclient_httpserver:0.16.0",
            "io.prometheus:simpleclient_pushgateway:0.16.0",
            "net.liftweb:lift-json_2.12:3.5.0",
            "org.apache.avro:avro:1.11.3",
            "org.apache.kafka:kafka-clients:7.5.3-ccs",
            "org.bouncycastle:bcprov-jdk18on:1.77",
            "org.http4s:http4s-circe_2.12:0.23.12",
            "org.http4s:http4s-dsl_2.12:0.23.12",
            "org.http4s:http4s-ember-client_2.12:0.23.12",
            "org.http4s:http4s-ember-server_2.12:0.23.12",
            "org.http4s:http4s-prometheus-metrics_2.12:0.23.12",
            "org.roaringbitmap:RoaringBitmap:1.0.1",
            "org.rocksdb:rocksdbjni:8.9.1",
            "org.scala-lang.modules:scala-collection-compat_2.12:2.11.0",
            "org.scala-lang.modules:scala-java8-compat_2.12:1.0.2",
            "org.scalacheck:scalacheck_2.12:1.17.0",
            "org.scalamacros:paradise_2.12.18:2.1.1",
            "org.scalamock:scalamock_2.12:5.2.0",
            "org.scalatest:scalatest_2.12:3.2.17",
            "org.scalatestplus:mockito-4-2_2.12:3.2.11.0",
            "org.scalatestplus:scalacheck-1-16_2.12:3.2.14.0",
            "org.scalikejdbc:scalikejdbc-async_2.12:0.14.0",
            "org.scalikejdbc:scalikejdbc-joda-time_2.12:3.5.0",
            "org.scodec:scodec-core_2.12:1.11.10",
            "org.tpolecat:doobie-core_2.12:1.0.0-RC2",
            "org.tpolecat:doobie-hikari_2.12:1.0.0-RC2",
            "org.tpolecat:doobie-postgres_2.12:1.0.0-RC2",
            "org.tpolecat:doobie-scalatest_2.12:1.0.0-RC2",
            "org.typelevel:cats-effect_2.12:3.5.3",
            "org.typelevel:cats-effect-testkit_2.12:3.5.3",
            "org.typelevel:cats-effect-testing-scalatest_2.12:1.5.0",
            "org.typelevel:fs2-grpc-codegen_2.12:2.7.11",
            "org.typelevel:fs2-grpc-runtime_2.12:2.7.11",
            "org.typelevel:kittens_2.12:3.2.0",
            "org.typelevel:log4cats-slf4j_2.12:2.6.0",
            "org.web3j:abi:5.0.0",
            "org.yaml:snakeyaml:2.2",
            "software.amazon.awssdk:sts:2.23.14",
            maven.artifact(
                group = "io.confluent",
                artifact = "kafka-avro-serializer",
                version = "7.5.3",
                exclusions = [
                    "javax.ws.rs:javax.ws.ris-api",
                ],
            ),
            # needs to be separate to have the exclusion, as it causes a circular dependency without it
            # see https://github.com/grpc/grpc-java/issues/10576#issuecomment-1741257443
            maven.artifact(
                artifact = "grpc-core",
                exclusions = [
                    "io.grpc:grpc-util",
                ],
                group = "io.grpc",
                version = "1.51.1",
            ),
            maven.artifact(
                group = "org.apache.kafka",
                artifact = "kafka_2.12",
                version = "7.5.3-ccs",
                exclusions = [
                    "com.sun.jdmk:jmxtools",
                    "com.sun.jmx:jmxri",
                    "javax.jms:jms",
                ],
            ),
            # Excludes the part that would need native libraries
            maven.artifact(
                group = "org.xerial.larray",
                artifact = "larray_2.12",
                version = "0.4.1",
                exclusions = [
                    "org.xerial.larray:larray-mmap",
                ],
            ),
        ],
        fail_if_repin_required = True,
        fail_on_missing_checksum = True,
        fetch_javadoc = True,
        fetch_sources = True,
        override_targets = {
            # same as bazel-deps "replacements"
            "io.netty:netty-transport-native-epoll": "@maven//:io_netty_netty_transport_native_epoll_linux_x86_64",
            "org.scala-lang:scala-compiler": "@io_bazel_rules_scala_scala_compiler",
            "org.scala-lang:scala-library": "@io_bazel_rules_scala_scala_library",
            "org.scala-lang:scala-reflect": "@io_bazel_rules_scala_scala_reflect",
            "org.scala-lang.modules:scala-parser-combinators": "@io_bazel_rules_scala_scala_parser_combinators//:io_bazel_rules_scala_scala_parser_combinators",
            "org.scala-lang.modules:scala-xml": "@io_bazel_rules_scala_scala_xml//:io_bazel_rules_scala_scala_xml",
        },
        repositories = [
            "https://oss.sonatype.org/content/repositories/public/",
            "https://repo1.maven.org/maven2",
            "https://packages.confluent.io/maven/",
            "https://jitpack.io",
        ],
        excluded_artifacts = [
            "org.slf4j:slf4j-log4j12",
        ],
        version_conflict_policy = "pinned",
    )

Running bazel-steward like this results in strange results. Every one of the branches it creates contain "fixes" like
             "io.github.embeddedkafka:embedded-kafka-schema-registry_2.12:7.5.3",
             "io.grpc:grpc-alts:1.51.1",
             "io.grpc:grpc-api:1.51.1",
-            "io.grpc:grpc-auth:1.51.1",
+           1.62.2rpc:grpc-auth:1.51.1",
             "io.grpc:grpc-context:1.51.1",
             "io.grpc:grpc-googleapis:1.51.1",
             "io.grpc:grpc-grpclb:1.51.1",

(and for a scala dep)
             "org.typelevel:cats-effect_2.12:3.5.3",
-            "org.typelevel:cats-effect-testkit_2.12:3.5.3",
+            3.5.4typelevel:cats-effect-testkit_2.12:3.5.3",
             "org.typelevel:cats-effect-testing-scalatest_2.12:1.5.0",

Have you ever seen anything like this? I don't even know where to start debugging this, the heuristics seem to be thrown off by something, I'm just not sure what. I can try to get a minimal reproducer going (because our real use case is a bit more complicated than what I'm sharing here), but figured I'd check to see if this is some kind of known gotcha.

Ok, I've got a reproducer - minimal repo here
On main, I had Bazel-steward create branches via coursier launch org.virtuslab:bazel-steward:1.3.0 --main org.virtuslab.bazelsteward.app.Main -- --no-remote
commit ff72ed3ef8072203a02b7981ad791791b8258ca4 (bazel-steward/ch.qos.logback/logback-classic/1.5.3)
Author: Brandon Gannicott <brandon.gannicott@gmail.com>
Date:   Wed Mar 27 17:22:10 2024 -0500

    Updated ch.qos.logback:logback-classic to 1.5.3

diff --git a/WORKSPACE b/WORKSPACE
index b1439c2..254210b 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -97,7 +97,7 @@ load("@rules_jvm_external//:defs.bzl", "maven_install")
 maven_install(
     name = "data_onchain_3rdparty",
     artifacts = [
-        "ch.qos.logback:logback-classic:1.4.14",
+        "ch.qos.logback:1.5.3k-classic:1.4.14",
         "com.typesafe.scala-logging:scala-logging_2.12:3.9.5",
         "org.slf4j:slf4j-api:2.0.7",
     ],

Hm, I'm getting better results with version 1.4.0 in my reproducer repo. Hard to imagine what could have changed in one minor version to fix what I'm seeing, but maybe...

Trouble is, the original example is using the latest code from master, which leaves me with an apparent issue on master, but a reproducer for the behavior only for v1.3.0

After digging into this a bit more, I'm no longer seeing the garbled suggestions, so I think there was something subtly wrong with my setup. Closing unless it happens again.

repo: VirtusLab/bazel-steward


text:
Implement 2nd Verifier - DTR Generator

Add a 2nd optional verifier field as some departments requires a second verifier.

Issue #5 implemented and solved. Closing issue.


text:
Feat/644 bug data sort by axis

[中文版模板 / Chinese template]
🤔 This is a ...

[x] New feature
[ ] Bug fix
[ ] TypeScript definition update
[ ] Bundle size optimization
[ ] Performance optimization
[ ] Enhancement feature
[ ] Refactoring
[ ] Update dependency
[ ] Code style optimization
[ ] Test Case
[ ] Branch merge
[ ] Release
[ ] Site / documentation update
[ ] Demo update
[ ] Workflow
[ ] Other (about what?)

🔗 Related issue link
close #644

🔗 Related PR link

🐞 Bugserver case id

💡 Background and solution

📝 Changelog

Language
Changelog

🇺🇸 English

🇨🇳 Chinese

☑ Self-Check before Merge
⚠ Please check all items below before requesting a reviewing. ⚠

[ ] Doc is updated/provided or not needed
[ ] Demo is updated/provided or not needed
[ ] TypeScript definition is updated/provided or not needed
[ ] Changelog is provided or not needed

🚀 Summary
copilot:summary
🔍 Walkthrough
copilot:walkthrough

我 merge 来的 dev/1.3.0 发现 bad case 蛮多的

rebase error , use pull 704 replace

repo: VisActor/VChart


text:
[Feature] add api  can get node path for listtable tree node

What problem does this feature solve?
add api
树形结构的时候，点击单元格返回的数据里有没有可以区分当前点击的是父节点还是子节点的字段
What does the proposed API look like?
1

https://visactor.io/vtable/api/Methods#getRecordIndexByCell

repo: VisActor/VTable


text:
Pagination in Vanilla JS

Is your feature request related to a problem?
No, It's not a problem. I am trying to include a new feature.
Describe your feature
Pagination is the process of separating print or digital content into discrete pages.
For print documents and some online content, pagination also refers to the automated process of adding consecutive numbers to identify the sequential order of pages.
Online articles are sometimes paginated to break up content. There is some justification to organizing long articles into multiple pages to aid the reader.
Therefore, I would like to add a simple project called "Pagination" using HTML, CSS and vanilla JS.

Would be delighted if you consider my submission for this issue @Vishal-raj-1  @urvashi-code1255 @991rajat.
Thank You :)

@shubhamjha25  Always get assigned first before making PR, It helps us to manage easily.

Thanks, I will keep this in mind for sure.


text:
Ada King codechef

Added a CodeChef problem Ada King
Files added

CodeChef/ Ada King/ problem.md
CodeChef/Ada King/ solution.cpp

relevant issue #49

repo: Vishruth-S/CompetitiveCode


text:
Feat/56 configuration for regex inputs

PR description
Describe your changes in detail here
The proper connection between backend regex (value|constraint) and the UI has been made. Additionally, in the run view when the start button is pressed a proper output what has been captured is noted down.
Definition Of Done (DoD)
This PR can be squashed / merged if

[x] a developer is assigned
[x] the PR is NOT estimated
[x] the PR is labeled
[x] the PR is assigned to the current sprint
[x] a meaningful title has been set according to https://www.conventionalcommits.org/
[x] the PR is described in detail
[x] the PR links to an issue
[ ] the PR has been reviewed

Add additional conditions here if necessary for this PR
fixes: #56

Why should be display nothing if nothing is matched, via the rating -1 the user knows that something is wrong with the regex

repo: VisualGameData/VIGAD


text:
When opening modal it scrolls page to top

When i  open a modal it scrolls to the top of the page and on close it scrolls back to the section where i opend the modal.
How can i fix that?

i fixed it
the problem was an other javascript library was making the trouble
i mexed bootstrap with semantic ui.

repo: VodkaBears/Remodal


text:
홈 화면 레이아웃 작성

Logo, Hello, Descript, CreateRoom, EnterRoom, MoreInfo 컴포넌트 작성.

재사용성을 고려하지 않은 컴포넌트네요. 다시 작성 부탁드립니다.

코드 또는 링크 입력 창에 포커스 됐을 때 확대되지 않게,
주소창 작아지게
크롬 자체의 네비게이션 바 숨기기


text:
Grafana 10.3.1 and Business 6.3.0 together cannot generate Map

I simply copy the code in
https://echarts.volkovlabs.io/d/X1mkMIFVz/geo-map?orgId=1&editPanel=11
in my grafana, but it does not work and having the following error:
TypeError: Cannot read properties of undefined (reading 'regions')
    at t.getInitialData (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:1711727)
    at t.init (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:765231)
    at t.eval (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:720009)
    at Array.forEach (<anonymous>)
    at Wr (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:545387)
    at t.eval (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:719646)
    at e.topologicalTravel (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:712963)
    at t._mergeOption (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:719142)
    at am (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:724316)
    at t._resetOption (http://localhost:3000/public/plugins/volkovlabs-echarts-panel/module.js?_cache=6.3.0:128:718407)

Besides, I tried to use
context.echarts.registerMap('myGeoJSON',{geoJSON:myGeoJSON});
return {
  series: [
    {
      type: 'map',
      map: 'world'
    }
  ]
}

where myGeoJSON is the raw string from https://geojson-maps.kyd.au/
I can see the preview of the map, but, it failed to save the panel and having the following message in log:
grafana[97109]: client.go:264: RoundTripper returned a response & error; ignoring response

@scs2007022 Thank you for your question
Please, take a look at the documentation related to JSOM maps
geojson
An example that suits you: dynamic-maps-loading
options:

code to copy:
const json = context.panel.data.series[0].fields[0].values[0];

/**
 * Map Name
 */
const mapName = "World";

/**
 * Register map
 */
context.echarts.registerMap(mapName, { geoJSON: json });

/**
 * Return settiings
 */
return {
  title: {
    text: mapName,
    left: "right",
  },
  geo: {
    map: mapName,
    roam: true,
  },
};

data source I use that is business-input
Data source configuration:
json from https://geojson-maps.kyd.au/

I run it on 10.3.1 and Business 6.3.0
The result is :

repo: VolkovLabs/business-charts


text:
Error when opening Neovim on newest update

Started happening after the newest update today. Troubleshooting steps I have tried:

Replacing the contents of my lsp.lua file with the example one from the Readme.md
Moving this example config to my init.lua
Reinstalling Zero-Lsp, both through deleting the files in .local/share and through editing my init.lua
Using git checkout to use my config from two weeks ago (where it was working fine)

It is important to mention that the LSP works fine after skipping the error message, even having all the customization within my config.
You can see my config here: https://github.com/niknik3610/nvim-setup
Im not sure if this is the right place to post this, I am sorry if it is not. I have never had an issue with Neovim that Google hasn't been able to fix, so any feedback would be appreciated.

The stacktrace indicates that something went wrong in lspconfig. The specific line it shows is trying to get the command to start the LSP server.
You can try to check which server is failing. Try with this.
local lsp = require('lsp-zero').preset({})

lsp.on_attach(function(client, bufnr)
	lsp.default_keymaps({buffer = bufnr})
end)

local installed = require('mason-lspconfig').get_installed_servers()

for _, name in ipairs(installed) do
  local server = require('lspconfig')[name]
  local ok = pcall(server.setup, {})
  if not ok then
    print('failed to setup' .. name)
  end
end

lsp.setup()

It was being caused by one of the servers I had installed (not sure which). I purged my LSP servers of everything that wasn't strictly necessary and it fixed the issue, so closing this issue.


text:
SMS sending freezes the execution if throttle occurs

Line 51 in src/SMS/Client.php calls PHP sleep function, which expects a timeout in seconds, whereas src/SMS/ExceptionErrorHandler.php throws a ThrottleException object with a timeout in milliseconds.
Thus, the script freezes for xxx seconds instead of milliseconds.

it's been a long time since this error is present, SOS

This looks like an error in the core, not in this package which is the core plus Guzzle.
Could you please open an issue at https://github.com/Vonage/vonage-php-sdk-core

authors: SecondeJK codewahoo lemattou

repo: Vonage/vonage-php-sdk


text:
Google Messages 2FA not receiving QR Code URL

Hi friends,
I am attempting to handle 2FA via the google messages handler - https://github.com/Voyz/ibeam/wiki/Two-Factor-Authentication#google-messages-handler
I have a docker-compose file and env.list  setup.
version: "2.1"
services:
  ibeam:
    image: voyz/ibeam
    container_name: ibeam
    env_file:
      - env.list
    ports:
      - 5000:5000
      - 5001:5001
    network_mode: bridge # Required due to clientportal.gw IP whitelist
    restart: 'no' # Prevents IBEAM_MAX_FAILED_AUTH from being exceeded

IBEAM_ACCOUNT=REDACTED
IBEAM_PASSWORD=REDACTED
IBEAM_TWO_FA_HANDLER=GOOGLE_MSG
IBEAM_TWO_FA_SELECT_TARGET=One Time Passcode

I run docker compose up

[+] Running 1/1
✔ Container ibeam  Recreated                                                                                0.1s
Attaching to ibeam
ibeam  | 2024-06-18 13:55:33,379|I| ############ Starting IBeam version 0.5.1 ############
ibeam  | 2024-06-18 13:55:33,380|I| Secrets source: env
ibeam  | 2024-06-18 13:55:33,381|I| Health server started at port=5001
ibeam  | 2024-06-18 13:55:33,381|I| Configuration:
ibeam  | {'UNDEFINED': <object object at 0x7d5792e602d0>, 'INPUTS_DIR': '/srv/inputs/', 'OUTPUTS_DIR': '/srv/outputs', 'GATEWAY_DIR': '/srv/clientportal.gw', 'CHROME_DRIVER_PATH': '/usr/bin/chromedriver', 'GATEWAY_STARTUP': 20, 'GATEWAY_PROCESS_MATCH': 'ibgroup.web.core.clientportal.gw.GatewayStart', 'MAINTENANCE_INTERVAL': 60, 'SPAWN_NEW_PROCESSES': False, 'LOG_LEVEL': 'INFO', 'LOG_TO_FILE': True, 'LOG_FORMAT': '%(asctime)s|%(levelname)-.1s| %(message)s', 'REQUEST_RETRIES': 2, 'REQUEST_TIMEOUT': 15, 'RESTART_FAILED_SESSIONS': True, 'RESTART_WAIT': 15, 'REAUTHENTICATE_WAIT': 15, 'HEALTH_SERVER_PORT': 5001, 'SECRETS_SOURCE': 'env', 'GCP_SECRETS_URL': None, 'GATEWAY_BASE_URL': 'https://localhost:5000', 'ROUTE_AUTH': '/sso/Login?forwardTo=22&RL=1&ip2loc=on', 'ROUTE_VALIDATE': '/v1/portal/sso/validate', 'ROUTE_REAUTHENTICATE': '/v1/portal/iserver/reauthenticate?force=true', 'ROUTE_AUTH_STATUS': '/v1/api/iserver/auth/status', 'ROUTE_TICKLE': '/v1/api/tickle', 'ROUTE_LOGOUT': '/v1/api/logout', 'USER_NAME_EL': None, 'PASSWORD_EL': 'NAME@@password', 'SUBMIT_EL': 'CSS_SELECTOR@@.btn.btn-lg.btn-primary', 'ERROR_EL': None, 'SUCCESS_EL_TEXT': 'TAG_NAME@@Client login succeeds', 'OAUTH_TIMEOUT': 15, 'PAGE_LOAD_TIMEOUT': 15, 'ERROR_SCREENSHOTS': False, 'MAX_FAILED_AUTH': 5, 'MIN_PRESUBMIT_BUFFER': 5, 'MAX_PRESUBMIT_BUFFER': 30, 'MAX_IMMEDIATE_ATTEMPTS': 10, 'IBKEY_PROMO_EL_CLASS': 'CLASS_NAME@@ibkey-promo-skip', 'AUTHENTICATION_STRATEGY': 'B', 'MAX_STATUS_CHECK_RETRIES': 15, 'MAX_REAUTHENTICATE_RETRIES': 3, 'UI_SCALING': 1.0, 'TWO_FA_EL_ID': 'ID@@twofactbase', 'TWO_FA_NOTIFICATION_EL': 'CLASS_NAME@@login-step-notification', 'TWO_FA_INPUT_EL_ID': 'ID@@chlginput', 'TWO_FA_HANDLER': 'GOOGLE_MSG', 'STRICT_TWO_FA_CODE': True, 'TWO_FA_SELECT_EL_ID': 'ID@@sf_select', 'TWO_FA_SELECT_TARGET': 'One Time Passcode', 'CUSTOM_TWO_FA_HANDLER': 'custom_two_fa_handler.CustomTwoFaHandler'}
ibeam  | 2024-06-18 13:55:33,381|I| Gateway not found, starting new one...
ibeam  | 2024-06-18 13:55:33,381|I| Note that the Gateway log below may display "Open https://localhost:[PORT] to login" - ignore this command.
ibeam  | 2024-06-18 13:55:33,381|I| Starting Gateway as Linux process with params: ['bash', 'bin/run.sh', 'root/conf.yaml']
ibeam  | running
ibeam  |  runtime path : root:dist/ibgroup.web.core.iblink.router.clientportal.gw.jar:build/lib/runtime/*
ibeam  |  config file  : root/conf.yaml
ibeam  | 2024-06-18 13:55:33,386|I| Gateway started with pids: [13]
ibeam  | 2024-06-18 13:55:33,387|I| Gateway running but not serving yet. Consider increasing IBEAM_GATEWAY_STARTUP timeout. Error: <urlopen error [Errno 111] Connection refused>
ibeam  | 2024-06-18 13:55:33,387|I| Gateway connection established
ibeam  | 2024-06-18 13:55:33,388|I| Gateway running but not serving yet. Consider increasing IBEAM_GATEWAY_STARTUP timeout. Error: <urlopen error [Errno 111] Connection refused>
ibeam  | 2024-06-18 13:55:33,388|I| NO SESSION Status(running=True, session=False, connected=False, authenticated=False, competing=False, collision=False, session_id=None, server_name=None, server_version=None, expires=None)
ibeam  | 2024-06-18 13:55:33,388|I| Authentication strategy: "B"
ibeam  | 2024-06-18 13:55:33,388|I| No active sessions, logging in...
ibeam  | 2024-06-18 13:55:33,388|I| Loading auth webpage at https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=on
ibeam  | WARNING: An illegal reflective access operation has occurred
ibeam  | WARNING: Illegal reflective access by io.netty.util.internal.ReflectionUtil (file:/srv/clientportal.gw/build/lib/runtime/netty-common-4.1.15.Final.jar) to constructor java.nio.DirectByteBuffer(long,int)
ibeam  | WARNING: Please consider reporting this to the maintainers of io.netty.util.internal.ReflectionUtil
ibeam  | WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
ibeam  | WARNING: All illegal access operations will be denied in a future release
ibeam  |  -> mount demo on /demo
ibeam  | Java Version: 11.0.20
ibeam  | ****************************************************
ibeam  | version: a27ed42161ad96c53e715ca5c5e3e3fa4cff5262 Mon, 24 Apr 2023 15:41:53 -0400
ibeam  | ****************************************************
ibeam  | This is the Client Portal Gateway
ibeam  | for any issues, please contact api@ibkr.com
ibeam  | and include a copy of your logs
ibeam  | ****************************************************
ibeam  | https://www.interactivebrokers.com/api/doc.html
ibeam  | ****************************************************
ibeam  | Open https://localhost:5000 to login
ibeam  | App demo is available after you login under: https://localhost:5000/demo#/
ibeam  | 2024-06-18 13:55:40,777|I| Gateway auth webpage loaded
ibeam  | 2024-06-18 13:55:40,777|I| Login attempt number 1
ibeam  | 2024-06-18 13:55:46,082|I| Submitting the form
ibeam  | 2024-06-18 13:56:01,698|E| Timeout reached when waiting for authentication. The website seems to not be loaded correctly. Consider increasing IBEAM_PAGE_LOAD_TIMEOUT.
ibeam  | Website URL: https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=on
ibeam  |
ibeam  | Exception:
ibeam  |   File "/srv/ibeam/ibeam_starter.py", line 167, in
ibeam  |     success, shutdown, status = client.start_and_authenticate()
ibeam  |   File "/srv/ibeam/src/gateway_client.py", line 53, in start_and_authenticate
ibeam  |     success, shutdown, status = self.strategy_handler.try_authenticating(request_retries=request_retries)
ibeam  |   File "/srv/ibeam/src/handlers/strategy_handler.py", line 85, in try_authenticating
ibeam  |     return self._authentication_strategy_B(status, request_retries)
ibeam  |   File "/srv/ibeam/src/handlers/strategy_handler.py", line 140, in _authentication_strategy_B
ibeam  |     return self._log_in(status)
ibeam  |   File "/srv/ibeam/src/handlers/strategy_handler.py", line 151, in _log_in
ibeam  |     success, shutdown = self.login_handler.login()
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 454, in login
ibeam  |     self.handle_timeout_exception(e, targets, driver, website_version, self.route_auth, self.base_url, self.outputs_dir)
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 435, in login
ibeam  |     self.attempt(targets, wait_and_identify_trigger, driver)
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 359, in attempt
ibeam  |     trigger, target = self.step_login(targets, wait_and_identify_trigger, driver, self.secrets_handler.account, self.secrets_handler.password, self.secrets_handler.key, self.presubmit_buffer)
ibeam  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 180, in step_login
ibeam  |     trigger, target = wait_and_identify_trigger(
ibeam  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 67, in _wait_and_identify_trigger
ibeam  |     trigger = WebDriverWait(driver, timeout).until(any_of(*expected_conditions))
ibeam  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ibeam  |   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py", line 95, in until
ibeam  |     raise TimeoutException(message, screen, stacktrace)
ibeam  |
ibeam  |   <class 'selenium.common.exceptions.TimeoutException'> Message:
ibeam  |
ibeam  | 2024-06-18 13:56:01,698|I| Cleaning up the resources. Display: <pyvirtualdisplay.display.Display object at 0x7d5790c55010> | Driver: <selenium.webdriver.chrome.webdriver.WebDriver (session="206636e1dec0444a415a09daac53c10d")>
ibeam  | 2024-06-18 13:56:01,732|I| Logging in failed
ibeam  | 2024-06-18 13:56:01,734|I| Starting maintenance with interval 60 seconds
ibeam  | 2024-06-18 13:57:01,735|I| Maintenance
ibeam  | 2024-06-18 13:57:01,810|I| Attempt number 2
ibeam  | 2024-06-18 13:57:02,094|I| Max request retries reached after 2 attempts. Consider increasing the retries by setting IBEAM_REQUEST_RETRIES environment variable
ibeam  | 2024-06-18 13:57:02,094|I| NO SESSION Status(running=True, session=False, connected=False, authenticated=False, competing=False, collision=False, session_id=None, server_name=None, server_version=None, expires=None)
ibeam  | 2024-06-18 13:57:02,094|I| Authentication strategy: "B"
ibeam  | 2024-06-18 13:57:02,094|I| No active sessions, logging in...
ibeam  | 2024-06-18 13:57:02,094|I| Loading auth webpage at https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=on
ibeam  | 2024-06-18 13:57:08,781|I| Gateway auth webpage loaded
ibeam  | 2024-06-18 13:57:08,782|I| Login attempt number 1
ibeam  | 2024-06-18 13:57:14,090|I| Submitting the form
ibeam  | 2024-06-18 13:57:29,640|I| Cleaning up the resources. Display: <pyvirtualdisplay.display.Display object at 0x7d5790bf0250> | Driver: <selenium.webdriver.chrome.webdriver.WebDriver (session="15b1a403ee88b0a9f27b278e66534add")>
ibeam  | 2024-06-18 13:57:29,640|E| Timeout reached when waiting for authentication. The website seems to not be loaded correctly. Consider increasing IBEAM_PAGE_LOAD_TIMEOUT.
ibeam  | Website URL: https://localhost:5000/sso/Login?forwardTo=22&RL=1&ip2loc=on
ibeam  |
ibeam  | Exception:
ibeam  |   File "/usr/local/lib/python3.11/threading.py", line 995, in _bootstrap
ibeam  |     self._bootstrap_inner()
ibeam  |   File "/usr/local/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
ibeam  |     self.run()
ibeam  |   File "/usr/local/lib/python3.11/threading.py", line 975, in run
ibeam  |     self._target(*self._args, **self._kwargs)
ibeam  |   File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 83, in _worker
ibeam  |     work_item.run()
ibeam  |   File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
ibeam  |     result = self.fn(*self.args, **self.kwargs)
ibeam  |   File "/opt/venv/lib/python3.11/site-packages/apscheduler/executors/base.py", line 125, in run_job
ibeam  |     retval = job.func(*job.args, **job.kwargs)
ibeam  |   File "/srv/ibeam/src/gateway_client.py", line 84, in _maintenance
ibeam  |     success, shutdown, status = self.start_and_authenticate(request_retries=self.request_retries)
ibeam  |   File "/srv/ibeam/src/gateway_client.py", line 53, in start_and_authenticate
ibeam  |     success, shutdown, status = self.strategy_handler.try_authenticating(request_retries=request_retries)
ibeam  |   File "/srv/ibeam/src/handlers/strategy_handler.py", line 85, in try_authenticating
ibeam  |     return self._authentication_strategy_B(status, request_retries)
ibeam  |   File "/srv/ibeam/src/handlers/strategy_handler.py", line 140, in _authentication_strategy_B
ibeam  |     return self._log_in(status)
ibeam  |   File "/srv/ibeam/src/handlers/strategy_handler.py", line 151, in _log_in
ibeam  |     success, shutdown = self.login_handler.login()
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 454, in login
ibeam  |     self.handle_timeout_exception(e, targets, driver, website_version, self.route_auth, self.base_url, self.outputs_dir)
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 435, in login
ibeam  |     self.attempt(targets, wait_and_identify_trigger, driver)
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 359, in attempt
ibeam  |     trigger, target = self.step_login(targets, wait_and_identify_trigger, driver, self.secrets_handler.account, self.secrets_handler.password, self.secrets_handler.key, self.presubmit_buffer)
ibeam  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 180, in step_login
ibeam  |     trigger, target = wait_and_identify_trigger(
ibeam  |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
ibeam  |   File "/srv/ibeam/src/handlers/login_handler.py", line 67, in _wait_and_identify_trigger
ibeam  |     trigger = WebDriverWait(driver, timeout).until(any_of(*expected_conditions))
ibeam  |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ibeam  |   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py", line 95, in until
ibeam  |     raise TimeoutException(message, screen, stacktrace)
ibeam  |
ibeam  |   <class 'selenium.common.exceptions.TimeoutException'> Message:
ibeam  |
ibeam  | 2024-06-18 13:57:29,672|I| Logging in failed
^CGracefully stopping... (press Ctrl+C again to force)
[+] Stopping 1/1
✔ Container ibeam  Stopped                                                                                10.2s
canceled

According to the wiki i am expecting to see the qr code url but i never get it. What is happening here?

Following on from this, i... for some reason decided to setup the IB Key Mobile Authenticator.
Once you set that up you cannot revert back to receiving SMS codes.
What are my options now... :facepalm

@kaykhan glad you've figured it out, yeah, once you go to IB Key you cannot go back 😢
Did you consider OAuth? Are you an institutional account? https://ibkrcampus.com/ibkr-api-page/cpapi-v1/#oauth-introduction

@kaykhan glad you've figured it out, yeah, once you go to IB Key you cannot go back 😢
Did you consider OAuth? Are you an institutional account? https://ibkrcampus.com/ibkr-api-page/cpapi-v1/#oauth-introduction

Ive not considered OAuth, im on an individual account.
So im guessing i need to create a brand new IBKR account if i want to continue on this journey? (creating a secondary user on the same account won't work? - how do they authenticate...)

And it looks like my original issue would have been resolved - https://github.com/Voyz/ibeam/issues/188 by using the 0.5.4-rc2 image. Damn why did i enable IB Key :(

Digging into this issue a little more and it looks like the link for google messages should now be:
https://messages.google.com/web/conversations. This should lead you to both the QR code authentication link and also sign in if successful. There are still other issues I am facing after the change but not sure if it is related to the above
The logs below. I added a little code for error output so it is mildly modified from the original outputs.
2024-06-19 18:02:26   File "/srv/ibeam/src/gateway_client.py", line 62, in start_and_authenticate
2024-06-19 18:02:26     success, shutdown, status = self.strategy_handler.try_authenticating(request_retries=request_retries)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 85, in try_authenticating
2024-06-19 18:02:26     return self._authentication_strategy_B(status, request_retries)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 140, in _authentication_strategy_B
2024-06-19 18:02:26     return self._log_in(status)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 151, in _log_in
2024-06-19 18:02:26     success, shutdown = self.login_handler.login()
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 446, in login
2024-06-19 18:02:26     self.attempt(targets, wait_and_identify_trigger, driver)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 380, in attempt
2024-06-19 18:02:26     trigger, target = self.step_two_fa(targets, wait_and_identify_trigger, driver, self.two_fa_handler, self.strict_two_fa_code)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 258, in step_two_fa
2024-06-19 18:02:26     two_fa_code = handle_two_fa(two_fa_handler, driver, strict_two_fa_code)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 81, in handle_two_fa
2024-06-19 18:02:26     two_fa_code = two_fa_handler.get_two_fa_code(driver)
2024-06-19 18:02:26   File "/srv/ibeam/src/two_fa_handlers/google_msg_handler.py", line 77, in get_two_fa_code
2024-06-19 18:02:26     WebDriverWait(driver_2fa, 120).until(sms_code_present)
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/support/wait.py", line 86, in until
2024-06-19 18:02:26     value = method(self._driver)
2024-06-19 18:02:26             ^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/support/expected_conditions.py", line 238, in _predicate
2024-06-19 18:02:26     element_text = driver.find_element(*locator).text
2024-06-19 18:02:26                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 738, in find_element
2024-06-19 18:02:26     return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
2024-06-19 18:02:26            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 344, in execute
2024-06-19 18:02:26     self.error_handler.check_response(response)
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
2024-06-19 18:02:26     raise exception_class(message, screen, stacktrace)
2024-06-19 18:02:26
2024-06-19 18:02:26   <class 'selenium.common.exceptions.WebDriverException'> Message: unknown error: session deleted because of page crash
2024-06-19 18:02:26 from unknown error: cannot determine loading status
2024-06-19 18:02:26 from tab crashed
2024-06-19 18:02:26   (Session info: headless chrome=116.0.5845.180)
2024-06-19 18:02:26 Stacktrace:
2024-06-19 18:02:26 #0 0xaaaad87cef80 <unknown>
2024-06-19 18:02:26 #1 0xaaaad8522134 <unknown>
2024-06-19 18:02:26 #2 0xaaaad850d2b0 <unknown>
2024-06-19 18:02:26 #3 0xaaaad850bff4 <unknown>
2024-06-19 18:02:26 #4 0xaaaad850c558 <unknown>
2024-06-19 18:02:26 #5 0xaaaad851a904 <unknown>
2024-06-19 18:02:26 #6 0xaaaad852b32c <unknown>
2024-06-19 18:02:26 #7 0xaaaad850cb10 <unknown>
2024-06-19 18:02:26 #8 0xaaaad852b054 <unknown>
2024-06-19 18:02:26 #9 0xaaaad8595530 <unknown>
2024-06-19 18:02:26 #10 0xaaaad854e9f0 <unknown>
2024-06-19 18:02:26 #11 0xaaaad854fc7c <unknown>
2024-06-19 18:02:26 #12 0xaaaad879b1d0 <unknown>
2024-06-19 18:02:26 #13 0xaaaad879e084 <unknown>
2024-06-19 18:02:26 #14 0xaaaad879dc20 <unknown>
2024-06-19 18:02:26 #15 0xaaaad87a49c8 <unknown>
2024-06-19 18:02:26 #16 0xaaaad879e78c <unknown>
2024-06-19 18:02:26 #17 0xaaaad877a014 <unknown>
2024-06-19 18:02:26 #18 0xaaaad87b7414 <unknown>
2024-06-19 18:02:26 #19 0xaaaad87b7620 <unknown>
2024-06-19 18:02:26 #20 0xaaaad87c57c8 <unknown>
2024-06-19 18:02:26 #21 0xffff824ae648 start_thread
2024-06-19 18:02:26 #22 0xffff81ccffdc <unknown>
2024-06-19 18:02:26
2024-06-19 18:02:26 2024-06-19 22:02:26,609|I| google_msg_handler expose error:   File "/srv/ibeam/ibeam_starter.py", line 174, in <module>
2024-06-19 18:02:26     success, shutdown, status = client.start_and_authenticate()
2024-06-19 18:02:26   File "/srv/ibeam/src/gateway_client.py", line 62, in start_and_authenticate
2024-06-19 18:02:26     success, shutdown, status = self.strategy_handler.try_authenticating(request_retries=request_retries)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 85, in try_authenticating
2024-06-19 18:02:26     return self._authentication_strategy_B(status, request_retries)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 140, in _authentication_strategy_B
2024-06-19 18:02:26     return self._log_in(status)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 151, in _log_in
2024-06-19 18:02:26     success, shutdown = self.login_handler.login()
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 446, in login
2024-06-19 18:02:26     self.attempt(targets, wait_and_identify_trigger, driver)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 380, in attempt
2024-06-19 18:02:26     trigger, target = self.step_two_fa(targets, wait_and_identify_trigger, driver, self.two_fa_handler, self.strict_two_fa_code)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 258, in step_two_fa
2024-06-19 18:02:26     two_fa_code = handle_two_fa(two_fa_handler, driver, strict_two_fa_code)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 81, in handle_two_fa
2024-06-19 18:02:26     two_fa_code = two_fa_handler.get_two_fa_code(driver)
2024-06-19 18:02:26   File "/srv/ibeam/src/two_fa_handlers/google_msg_handler.py", line 80, in get_two_fa_code
2024-06-19 18:02:26     sms_list_el = driver_2fa.find_elements(By.CSS_SELECTOR, _GOOG_MESSAGES_LIST_CLASS)
2024-06-19 18:02:26                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 768, in find_elements
2024-06-19 18:02:26     return self.execute(Command.FIND_ELEMENTS, {"using": by, "value": value})["value"] or []
2024-06-19 18:02:26            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 344, in execute
2024-06-19 18:02:26     self.error_handler.check_response(response)
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
2024-06-19 18:02:26     raise exception_class(message, screen, stacktrace)
2024-06-19 18:02:26
2024-06-19 18:02:26   <class 'selenium.common.exceptions.InvalidSessionIdException'> Message: invalid session id
2024-06-19 18:02:26 Stacktrace:
2024-06-19 18:02:26 #0 0xaaaad87cef80 <unknown>
2024-06-19 18:02:26 #1 0xaaaad8522134 <unknown>
2024-06-19 18:02:26 #2 0xaaaad854e2f4 <unknown>
2024-06-19 18:02:26 #3 0xaaaad857bd30 <unknown>
2024-06-19 18:02:26 #4 0xaaaad857b4bc <unknown>
2024-06-19 18:02:26 #5 0xaaaad84f3b08 <unknown>
2024-06-19 18:02:26 #6 0xaaaad879b1d0 <unknown>
2024-06-19 18:02:26 #7 0xaaaad879e084 <unknown>
2024-06-19 18:02:26 #8 0xaaaad879dc20 <unknown>
2024-06-19 18:02:26 #9 0xaaaad87a49c8 <unknown>
2024-06-19 18:02:26 #10 0xaaaad879e78c <unknown>
2024-06-19 18:02:26 #11 0xaaaad877a014 <unknown>
2024-06-19 18:02:26 #12 0xaaaad84f29e8 <unknown>
2024-06-19 18:02:26 #13 0xaaaad84f2254 <unknown>
2024-06-19 18:02:26 #14 0xffff81c1ee18 __libc_start_main
2024-06-19 18:02:26 #15 0xaaaad84f13f4 <unknown>
2024-06-19 18:02:26
2024-06-19 18:02:26 2024-06-19 22:02:26,609|I| Cleaning up the resources. Google MSG Driver: <selenium.webdriver.chrome.webdriver.WebDriver (session="6254dd8028ab6a560b831e61b0727b5c")>
2024-06-19 18:02:26 2024-06-19 22:02:26,615|E| Error encountered while acquiring 2FA code.
2024-06-19 18:02:26 Exception:
2024-06-19 18:02:26   File "/srv/ibeam/ibeam_starter.py", line 174, in <module>
2024-06-19 18:02:26     success, shutdown, status = client.start_and_authenticate()
2024-06-19 18:02:26   File "/srv/ibeam/src/gateway_client.py", line 62, in start_and_authenticate
2024-06-19 18:02:26     success, shutdown, status = self.strategy_handler.try_authenticating(request_retries=request_retries)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 85, in try_authenticating
2024-06-19 18:02:26     return self._authentication_strategy_B(status, request_retries)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 140, in _authentication_strategy_B
2024-06-19 18:02:26     return self._log_in(status)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/strategy_handler.py", line 151, in _log_in
2024-06-19 18:02:26     success, shutdown = self.login_handler.login()
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 446, in login
2024-06-19 18:02:26     self.attempt(targets, wait_and_identify_trigger, driver)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 380, in attempt
2024-06-19 18:02:26     trigger, target = self.step_two_fa(targets, wait_and_identify_trigger, driver, self.two_fa_handler, self.strict_two_fa_code)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 258, in step_two_fa
2024-06-19 18:02:26     two_fa_code = handle_two_fa(two_fa_handler, driver, strict_two_fa_code)
2024-06-19 18:02:26   File "/srv/ibeam/src/handlers/login_handler.py", line 81, in handle_two_fa
2024-06-19 18:02:26     two_fa_code = two_fa_handler.get_two_fa_code(driver)
2024-06-19 18:02:26                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/srv/ibeam/src/two_fa_handlers/google_msg_handler.py", line 80, in get_two_fa_code
2024-06-19 18:02:26     sms_list_el = driver_2fa.find_elements(By.CSS_SELECTOR, _GOOG_MESSAGES_LIST_CLASS)
2024-06-19 18:02:26                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 768, in find_elements
2024-06-19 18:02:26     return self.execute(Command.FIND_ELEMENTS, {"using": by, "value": value})["value"] or []
2024-06-19 18:02:26            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/webdriver.py", line 344, in execute
2024-06-19 18:02:26     self.error_handler.check_response(response)
2024-06-19 18:02:26   File "/opt/venv/lib/python3.11/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
2024-06-19 18:02:26     raise exception_class(message, screen, stacktrace)
2024-06-19 18:02:26
2024-06-19 18:02:26   <class 'selenium.common.exceptions.InvalidSessionIdException'> Message: invalid session id
2024-06-19 18:02:26 Stacktrace:
2024-06-19 18:02:26 #0 0xaaaad87cef80 <unknown>
2024-06-19 18:02:26 #1 0xaaaad8522134 <unknown>
2024-06-19 18:02:26 #2 0xaaaad854e2f4 <unknown>
2024-06-19 18:02:26 #3 0xaaaad857bd30 <unknown>
2024-06-19 18:02:26 #4 0xaaaad857b4bc <unknown>
2024-06-19 18:02:26 #5 0xaaaad84f3b08 <unknown>
2024-06-19 18:02:26 #6 0xaaaad879b1d0 <unknown>
2024-06-19 18:02:26 #7 0xaaaad879e084 <unknown>
2024-06-19 18:02:26 #8 0xaaaad879dc20 <unknown>
2024-06-19 18:02:26 #9 0xaaaad87a49c8 <unknown>
2024-06-19 18:02:26 #10 0xaaaad879e78c <unknown>
2024-06-19 18:02:26 #11 0xaaaad877a014 <unknown>
2024-06-19 18:02:26 #12 0xaaaad84f29e8 <unknown>
2024-06-19 18:02:26 #13 0xaaaad84f2254 <unknown>
2024-06-19 18:02:26 #14 0xffff81c1ee18 __libc_start_main
2024-06-19 18:02:26 #15 0xaaaad84f13f4 <unknown>
2024-06-19 18:02:26
2024-06-19 18:02:26 2024-06-19 22:02:26,616|W| No 2FA code returned. Aborting authentication.

That's indeed misfortunate @kaykhan :( Once enabled, you're stuck with it it seems. Opening a new account could potentially be a fix - however IBKR indicate they want to phase out SMS 2FA at some point.
OAuth indeed is only for institutional accounts for now - although IBKR say they want to make it available for all.

That's indeed misfortunate @kaykhan :( Once enabled, you're stuck with it it seems. Opening a new account could potentially be a fix - however IBKR indicate they want to phase out SMS 2FA at some point.
OAuth indeed is only for institutional accounts for now - although IBKR say they want to make it available for all.

thanks for confirming that. I will close this ticket.

authors: Voyz kaykhan perrycyl

repo: Voyz/ibeam


text:
vtrois.com打不开了，自定义函数怎么用呀？

问题描述
请仔细描述一下遇到的问题，截图可以直接 Ctrl + V 上传。
环境信息
将主题设置—>关于主题中「基础信息」的内容粘贴到这里。
复现步奏
请分步描述复现这个问题的步骤。

官网暂时还没有开放，wp的自定义函数你可以自己在function里面写

repo: Vtrois/Kratos


text:
Jt/extend collection fix

customFilters is a nested array, and _.merge doesn't deal with that properly. Use _.mergeWith instead

Hi, thanks for this PR, next time can you please just cleanup the commits a bit? You can run "git rebase -i HEAD~X" and stash them to have only one clean commit

authors: eric-burel josephto

repo: VulcanJS/Vulcan