querysub 0.378.0 → 0.380.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorrules +2 -0
- package/package.json +1 -1
- package/src/diagnostics/MachineThreadInfo.tsx +33 -10
- package/src/diagnostics/logs/IndexedLogs/LogViewer3.tsx +5 -1
- package/src/diagnostics/logs/errorNotifications2/ErrorNotificationPage.tsx +432 -203
- package/src/diagnostics/logs/errorNotifications2/ErrorWarning.tsx +32 -0
- package/src/diagnostics/logs/errorNotifications2/errorNotifications.ts +414 -54
- package/src/diagnostics/logs/errorNotifications2/errorWatcher.ts +168 -0
- package/src/diagnostics/logs/errorNotifications2/openRouterHelper.ts +77 -0
- package/src/diagnostics/logs/lifeCycleAnalysis/lifeCycles.tsx +1 -30
- package/src/diagnostics/managementPages.tsx +6 -2
- package/src/user-implementation/SecurityPage.tsx +6 -0
- package/src/user-implementation/userData.ts +6 -1
- /package/src/library-components/{errorNotifications.tsx → uncaughtToast.tsx} +0 -0
package/.cursorrules
CHANGED
|
@@ -10,6 +10,8 @@ When running a command in the current project, don't "cd" to it. It's redundant,
|
|
|
10
10
|
|
|
11
11
|
Don't use redundant comments. If it's a single line and the function name says the same thing that the comment is going to say, you don't need the comment.
|
|
12
12
|
|
|
13
|
+
When you're inline passing a lambda as an argument, never specify the type. The type should always be inferred. Specifying the type is bad, and it's hard coding, and we don't like hard coding.
|
|
14
|
+
|
|
13
15
|
NEVER EVER pass state to qreact.Component as a template parameter. It should ALSO be declared like so (inside the class):
|
|
14
16
|
state = t.state({
|
|
15
17
|
num: t.number,
|
package/package.json
CHANGED
|
@@ -40,6 +40,7 @@ export class MachineThreadInfo extends qreact.Component<{
|
|
|
40
40
|
machineId: string;
|
|
41
41
|
threadId?: string;
|
|
42
42
|
onlyShowThread?: boolean;
|
|
43
|
+
noButtons?: boolean;
|
|
43
44
|
}> {
|
|
44
45
|
static renderInProgress = true;
|
|
45
46
|
|
|
@@ -93,7 +94,17 @@ export class MachineThreadInfo extends qreact.Component<{
|
|
|
93
94
|
<>
|
|
94
95
|
<div className={css.vbox(4)}>
|
|
95
96
|
<strong>Entry Point</strong>
|
|
96
|
-
<div>
|
|
97
|
+
<div>
|
|
98
|
+
{threadInfo.entrypoint && (
|
|
99
|
+
<a
|
|
100
|
+
href={`cursor://file/${threadInfo.entrypoint}`}
|
|
101
|
+
className={css.color("hsl(210, 100%, 80%)").textDecoration("none").textDecoration("underline", "hover")}
|
|
102
|
+
>
|
|
103
|
+
{threadInfo.entrypoint}
|
|
104
|
+
</a>
|
|
105
|
+
)}
|
|
106
|
+
{!threadInfo.entrypoint && threadInfo.entrypoint}
|
|
107
|
+
</div>
|
|
97
108
|
</div>
|
|
98
109
|
|
|
99
110
|
<div className={css.vbox(4)}>
|
|
@@ -112,9 +123,9 @@ export class MachineThreadInfo extends qreact.Component<{
|
|
|
112
123
|
</div>
|
|
113
124
|
|
|
114
125
|
<div className={css.hbox(12)}>
|
|
115
|
-
<Button onClick={() => this.handleAttach(threadInfo)}>
|
|
126
|
+
{threadInfo && <Button onClick={() => this.handleAttach(threadInfo)}>
|
|
116
127
|
Attach Debugger
|
|
117
|
-
</Button>
|
|
128
|
+
</Button>}
|
|
118
129
|
|
|
119
130
|
<Button onClick={this.handleRefresh}>
|
|
120
131
|
Refresh
|
|
@@ -145,8 +156,8 @@ export class MachineThreadInfo extends qreact.Component<{
|
|
|
145
156
|
|
|
146
157
|
return (
|
|
147
158
|
<div
|
|
148
|
-
className={css.button.hbox(4).pad2(4).hsla(0, 0, 100, 0.5)}
|
|
149
|
-
onClick={(e) => {
|
|
159
|
+
className={(this.props.noButtons && "" || css.button) + css.hbox(4).pad2(4).hsla(0, 0, 100, 0.5)}
|
|
160
|
+
onClick={this.props.noButtons ? undefined : (e) => {
|
|
150
161
|
e.stopPropagation();
|
|
151
162
|
this.showExpandedView(machineInfo, threadInfo);
|
|
152
163
|
}}
|
|
@@ -155,10 +166,22 @@ export class MachineThreadInfo extends qreact.Component<{
|
|
|
155
166
|
{machineInfo?.hostname || this.props.machineId}
|
|
156
167
|
</span>}
|
|
157
168
|
{!this.props.onlyShowThread && this.props.threadId && " | "}
|
|
158
|
-
{this.props.threadId &&
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
169
|
+
{this.props.threadId && (
|
|
170
|
+
threadInfo?.entrypoint ? (
|
|
171
|
+
<a
|
|
172
|
+
href={`cursor://file/${threadInfo.entrypoint}`}
|
|
173
|
+
title={this.props.threadId}
|
|
174
|
+
className={css.color("hsl(210, 100%, 80%)").textDecoration("none").textDecoration("underline", "hover")}
|
|
175
|
+
onClick={(e) => e.stopPropagation()}
|
|
176
|
+
>
|
|
177
|
+
{threadInfo.entrypoint}
|
|
178
|
+
</a>
|
|
179
|
+
) : (
|
|
180
|
+
<span title={this.props.threadId}>
|
|
181
|
+
{this.props.threadId}
|
|
182
|
+
</span>
|
|
183
|
+
)
|
|
184
|
+
)}
|
|
162
185
|
</div>
|
|
163
186
|
);
|
|
164
187
|
}
|
|
@@ -213,7 +236,7 @@ class MachineThreadInfoBase {
|
|
|
213
236
|
|
|
214
237
|
// This function is only intended to be called between nodes
|
|
215
238
|
public async getNodeInfo() {
|
|
216
|
-
const hostname = await errorToUndefinedSilent(runPromise("hostname"));
|
|
239
|
+
const hostname = await errorToUndefinedSilent(runPromise("hostname", { quiet: true }));
|
|
217
240
|
return {
|
|
218
241
|
hostname: hostname?.trim() || "",
|
|
219
242
|
entrypoint: process.argv[1] || "",
|
|
@@ -69,7 +69,11 @@ export class LogViewer3 extends qreact.Component {
|
|
|
69
69
|
private searchSequenceNumber = 0;
|
|
70
70
|
|
|
71
71
|
componentDidMount(): void {
|
|
72
|
-
|
|
72
|
+
if (searchTextURL.value) {
|
|
73
|
+
void this.search();
|
|
74
|
+
} else {
|
|
75
|
+
void this.loadPaths();
|
|
76
|
+
}
|
|
73
77
|
}
|
|
74
78
|
|
|
75
79
|
getPaths(): TimeFilePathWithSize[] {
|