Skip to content

Commit 4e43a07

Browse files
Merge branch 'main' into robertbrignull/fix-token-alerts
2 parents d347625 + 3508dc6 commit 4e43a07

37 files changed

+1535
-1385
lines changed

extensions/ql-vscode/package-lock.json

Lines changed: 348 additions & 353 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

extensions/ql-vscode/package.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1995,19 +1995,19 @@
19951995
"@github/markdownlint-github": "^0.6.0",
19961996
"@octokit/plugin-throttling": "^8.0.0",
19971997
"@playwright/test": "^1.40.1",
1998-
"@storybook/addon-a11y": "^8.0.2",
1999-
"@storybook/addon-actions": "^8.0.2",
2000-
"@storybook/addon-essentials": "^8.0.2",
2001-
"@storybook/addon-interactions": "^8.0.2",
2002-
"@storybook/addon-links": "^8.0.2",
1998+
"@storybook/addon-a11y": "^8.0.5",
1999+
"@storybook/addon-actions": "^8.0.5",
2000+
"@storybook/addon-essentials": "^8.0.5",
2001+
"@storybook/addon-interactions": "^8.0.5",
2002+
"@storybook/addon-links": "^8.0.5",
20032003
"@storybook/blocks": "^8.0.2",
20042004
"@storybook/components": "^8.0.2",
20052005
"@storybook/csf": "^0.1.3",
20062006
"@storybook/icons": "^1.2.9",
2007-
"@storybook/manager-api": "^8.0.2",
2008-
"@storybook/react": "^8.0.2",
2009-
"@storybook/react-vite": "^8.0.2",
2010-
"@storybook/theming": "^8.0.2",
2007+
"@storybook/manager-api": "^8.0.5",
2008+
"@storybook/react": "^8.0.5",
2009+
"@storybook/react-vite": "^8.0.5",
2010+
"@storybook/theming": "^8.0.5",
20112011
"@testing-library/dom": "^9.3.4",
20122012
"@testing-library/jest-dom": "^6.4.2",
20132013
"@testing-library/react": "^14.2.2",
@@ -2027,7 +2027,7 @@
20272027
"@types/react": "^18.0.28",
20282028
"@types/react-dom": "^18.2.18",
20292029
"@types/sarif": "^2.1.2",
2030-
"@types/semver": "^7.2.0",
2030+
"@types/semver": "^7.5.8",
20312031
"@types/stream-json": "^1.7.1",
20322032
"@types/styled-components": "^5.1.11",
20332033
"@types/tar-stream": "^3.1.3",
@@ -2065,13 +2065,13 @@
20652065
"jest": "^29.0.3",
20662066
"jest-environment-jsdom": "^29.0.3",
20672067
"jest-runner-vscode": "^3.0.1",
2068-
"lint-staged": "^15.0.2",
2068+
"lint-staged": "^15.2.2",
20692069
"markdownlint-cli2": "^0.12.1",
20702070
"markdownlint-cli2-formatter-pretty": "^0.0.5",
20712071
"npm-run-all": "^4.1.5",
20722072
"patch-package": "^8.0.0",
20732073
"prettier": "^3.2.5",
2074-
"storybook": "^8.0.2",
2074+
"storybook": "^8.0.5",
20752075
"tar-stream": "^3.1.7",
20762076
"through2": "^4.0.2",
20772077
"ts-jest": "^29.0.1",

extensions/ql-vscode/src/common/interface-types.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,11 @@ interface OpenModelAlertsViewMessage {
605605
t: "openModelAlertsView";
606606
}
607607

608+
interface RevealInModelAlertsViewMessage {
609+
t: "revealInModelAlertsView";
610+
modeledMethod: ModeledMethod;
611+
}
612+
608613
interface ModelDependencyMessage {
609614
t: "modelDependency";
610615
}
@@ -677,7 +682,8 @@ export type FromModelEditorMessage =
677682
| SetMultipleModeledMethodsMessage
678683
| StartModelEvaluationMessage
679684
| StopModelEvaluationMessage
680-
| OpenModelAlertsViewMessage;
685+
| OpenModelAlertsViewMessage
686+
| RevealInModelAlertsViewMessage;
681687

682688
interface RevealInEditorMessage {
683689
t: "revealInModelEditor";
@@ -746,13 +752,20 @@ interface StopEvaluationRunMessage {
746752
t: "stopEvaluationRun";
747753
}
748754

755+
interface RevealModelMessage {
756+
t: "revealModel";
757+
modeledMethod: ModeledMethod;
758+
}
759+
749760
export type ToModelAlertsMessage =
750761
| SetModelAlertsViewStateMessage
751762
| SetVariantAnalysisMessage
752-
| SetRepoResultsMessage;
763+
| SetRepoResultsMessage
764+
| RevealModelMessage;
753765

754766
export type FromModelAlertsMessage =
755767
| CommonFromViewMessages
756768
| OpenModelPackMessage
757769
| OpenActionsLogsMessage
758-
| StopEvaluationRunMessage;
770+
| StopEvaluationRunMessage
771+
| RevealInEditorMessage;

extensions/ql-vscode/src/common/logging/tee-logger.ts

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
import { appendFile, ensureFile } from "fs-extra";
1+
import { ensureFile } from "fs-extra";
2+
import { open } from "node:fs/promises";
3+
import type { FileHandle } from "node:fs/promises";
24
import { isAbsolute } from "path";
35
import { getErrorMessage } from "../helpers-pure";
46
import type { Logger, LogOptions } from "./logger";
7+
import type { Disposable } from "../disposable-object";
58

69
/**
710
* An implementation of {@link Logger} that sends the output both to another {@link Logger}
@@ -10,9 +13,10 @@ import type { Logger, LogOptions } from "./logger";
1013
* The first time a message is written, an additional banner is written to the underlying logger
1114
* pointing the user to the "side log" file.
1215
*/
13-
export class TeeLogger implements Logger {
16+
export class TeeLogger implements Logger, Disposable {
1417
private emittedRedirectMessage = false;
1518
private error = false;
19+
private fileHandle: FileHandle | undefined = undefined;
1620

1721
public constructor(
1822
private readonly logger: Logger,
@@ -37,11 +41,15 @@ export class TeeLogger implements Logger {
3741

3842
if (!this.error) {
3943
try {
44+
if (!this.fileHandle) {
45+
await ensureFile(this.location);
46+
47+
this.fileHandle = await open(this.location, "a");
48+
}
49+
4050
const trailingNewline = options.trailingNewline ?? true;
41-
await ensureFile(this.location);
4251

43-
await appendFile(
44-
this.location,
52+
await this.fileHandle.appendFile(
4553
message + (trailingNewline ? "\n" : ""),
4654
{
4755
encoding: "utf8",
@@ -50,6 +58,14 @@ export class TeeLogger implements Logger {
5058
} catch (e) {
5159
// Write an error message to the primary log, and stop trying to write to the side log.
5260
this.error = true;
61+
try {
62+
await this.fileHandle?.close();
63+
} catch (e) {
64+
void this.logger.log(
65+
`Failed to close file handle: ${getErrorMessage(e)}`,
66+
);
67+
}
68+
this.fileHandle = undefined;
5369
const errorMessage = getErrorMessage(e);
5470
await this.logger.log(
5571
`Error writing to additional log file: ${errorMessage}`,
@@ -65,4 +81,15 @@ export class TeeLogger implements Logger {
6581
show(preserveFocus?: boolean): void {
6682
this.logger.show(preserveFocus);
6783
}
84+
85+
dispose(): void {
86+
try {
87+
void this.fileHandle?.close();
88+
} catch (e) {
89+
void this.logger.log(
90+
`Failed to close file handle: ${getErrorMessage(e)}`,
91+
);
92+
}
93+
this.fileHandle = undefined;
94+
}
6895
}

0 commit comments

Comments
 (0)