Skip to content

Comments

[PROD RELEASE] - Feb 5 2026#69

Merged
jmgasper merged 13 commits intomasterfrom
develop
Feb 5, 2026
Merged

[PROD RELEASE] - Feb 5 2026#69
jmgasper merged 13 commits intomasterfrom
develop

Conversation

@kkartunov
Copy link
Contributor

No description provided.

@kkartunov kkartunov requested review from jmgasper and vas3a February 3, 2026 08:41

for (const batch of batches) {
const idParams = batch.map((id) => BigInt(id));
const rows = await memberClient.$queryRaw`
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ correctness]
Using BigInt for user IDs might cause issues if the IDs are not guaranteed to be numeric or if they exceed JavaScript's safe integer range. Consider validating the IDs before converting them to BigInt.

const getReadline = () => {
if (!rl) {
if (!process.stdin.isTTY) {
throw new Error("Interactive input required but stdin is not a TTY.");
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ design]
The script requires interactive input but does not handle non-TTY environments gracefully. Consider adding a non-interactive mode or a fallback mechanism for environments where TTY is not available.

}

main().catch((error) => {
console.error(error);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ correctness]
Using process.exit(1) will terminate the Node.js process immediately, which might prevent asynchronous operations from completing. Consider using process.exitCode = 1 instead to allow pending operations to finish.

@@ -0,0 +1 @@
export * from "./index" No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider adding a newline at the end of the file. While this is not a functional issue, it is a common convention that can prevent unnecessary diffs in version control systems when lines are added in the future.

/* !!! This is code generated by Prisma. Do not edit directly. !!!
/* eslint-disable */
// biome-ignore-all lint: generated file
module.exports = { ...require('.') } No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ maintainability]
The use of require('.') could potentially lead to issues if the index file exports a large number of modules or if there are circular dependencies. Consider explicitly requiring only the necessary modules to improve maintainability and reduce potential side effects.

@@ -0,0 +1 @@
export * from "./index" No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider adding a newline at the end of the file. While this is not a correctness issue, it is a convention that can help avoid unnecessary diffs in version control systems when lines are added to the file.

/* !!! This is code generated by Prisma. Do not edit directly. !!!
/* eslint-disable */
// biome-ignore-all lint: generated file
module.exports = { ...require('#main-entry-point') } No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[❗❗ security]
Using require with a dynamic path like '#main-entry-point' can be risky if the path is not well-controlled. Ensure that #main-entry-point is a safe and validated path to prevent potential security issues.

@@ -0,0 +1 @@
export * from "./default" No newline at end of file
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider adding a newline at the end of the file. While this is not a correctness issue, it is a common convention that can help avoid unnecessary diffs in version control systems when lines are appended.

);
const role = _.toLower(_.get(member, "role", ""));
return PROJECT_TASK_VIEW_ACCESS_ROLES.has(role);
} catch (err) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ correctness]
Consider adding a check to ensure that project is not null or undefined before accessing its properties. This will prevent potential runtime errors if projectHelper.getProject returns a null or undefined value.

return PROJECT_TASK_VIEW_ACCESS_ROLES.has(role);
} catch (err) {
const status = _.get(err, "httpStatus") || _.get(err, "response.status");
if (status === HttpStatus.FORBIDDEN || status === HttpStatus.NOT_FOUND) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 design]
The error handling logic here assumes that any error other than FORBIDDEN or NOT_FOUND should be logged and return false. Consider whether other types of errors should be handled differently, such as retrying the request or escalating the error.

const isCopilotResource = _.some(memberResources, (resource) => {
const roleId = _.toString(resource.roleId);
const roleName = _.toLower(_.get(resource, "roleName", ""));
return copilotRoleIds.includes(roleId) || roleName === "copilot";
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ correctness]
Ensure that the roleName property exists on resource before calling _.toLower to avoid potential runtime errors.

@jmgasper jmgasper changed the title [PROD RELEASE] - Jan 26 [PROD RELEASE] - Feb 5 2026 Feb 4, 2026
}
const dataToUpdate = _.omit(data, "constraints");
const shouldRefreshPhaseNames =
Object.prototype.hasOwnProperty.call(data, "isOpen") ||
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[💡 style]
Consider using _.has(data, 'isOpen') and _.has(data, 'name') for consistency with other lodash usage in the codebase.

select: { name: true },
});
const currentPhaseNames = _.uniq(
openPhases.map((phase) => phase.name).filter((name) => !_.isNil(name))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[⚠️ correctness]
The use of _.uniq and _.isNil is correct, but ensure that the name field is always expected to be a string. If there's a possibility of non-string values, consider additional validation or transformation.

@jmgasper jmgasper merged commit f1e5dad into master Feb 5, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants