Files
NextEdu/bugs/teacher_web_test_post_audit.json
SpecialX e4254f0f8e docs: update architecture map and add lesson-preparation usage fixes design
- Update architecture impact map (004) and data (005) with new modules

- Add lesson-preparation usage fixes design spec

- Add teacher web test post-audit report
2026-06-24 12:01:35 +08:00

406 lines
124 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[
{
"url": "/teacher/dashboard",
"category": "Dashboard",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/dashboard",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
],
"warnings": []
},
{
"url": "/teacher/textbooks",
"category": "Textbooks",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/textbooks",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <InnerLayoutRouter url=\"/teacher/t...\" tree={[...]} params={{}} cacheNode={{lazyData:null, ...}} segmentPath={[...]} ...>\n <SegmentViewNode type=\"page\" pagePath=\"(dashboard...\">\n <SegmentTrieNode>\n <TextbooksPage>\n <div className=\"space-y-6 p-8\">\n <div className=\"flex flex-...\">\n <div>\n <TextbookFormDialog>\n <Dialog open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <DialogTrigger asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-m...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_16atpesndubn6lb_\"\n- aria-controls=\"radix-_R_4pbn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n ...\n ...\n"
],
"warnings": []
},
{
"url": "/teacher/questions",
"category": "Questions",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/questions",
"errors": [],
"warnings": []
},
{
"url": "/teacher/exams",
"category": "Exams",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/exams/all",
"errors": [
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)"
],
"warnings": []
},
{
"url": "/teacher/exams/all",
"category": "Exams",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/exams/all",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (难度等级 {{level}}{{label}})\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamDataTable.useMemo[columns] (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2144:66)\n at cell (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:2003:43)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4645:24)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)",
"IntlError: INVALID_MESSAGE: MALFORMED_ARGUMENT (此操作不可撤销。将永久删除考试\"{{title}}\"及所有关联数据。)\n at getFallbackFromErrorAndNotify (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3651:23)\n at translateBaseFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3705:20)\n at translateFn (http://localhost:3000/_next/static/chunks/node_modules_51f95abb._.js:3709:24)\n at ExamActions (http://localhost:3000/_next/static/chunks/src_72b8a5e4._.js:1629:47)\n at Object.react_stack_bottom_frame (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:14816:24)\n at renderWithHooksAgain (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4700:24)\n at renderWithHooks (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:4651:28)\n at updateFunctionComponent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6106:21)\n at beginWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:6702:24)\n at runWithFiberInDEV (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:959:74)\n at performUnitOfWork (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9556:97)\n at workLoopConcurrentByScheduler (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9552:58)\n at renderRootConcurrent (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9535:71)\n at performWorkOnRoot (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:9062:150)\n at performWorkOnRootViaSchedulerTask (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-dom_1e674e59._.js:10224:9)\n at MessagePort.performWorkUntilDeadline (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_a0e4c7b4._.js:2647:64)"
],
"warnings": []
},
{
"url": "/teacher/exams/create",
"category": "Exams",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/exams/create",
"errors": [],
"warnings": []
},
{
"url": "/teacher/homework",
"category": "Homework",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/homework/assignments",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
],
"warnings": []
},
{
"url": "/teacher/homework/assignments",
"category": "Homework",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/homework/assignments",
"errors": [],
"warnings": []
},
{
"url": "/teacher/homework/assignments/create",
"category": "Homework",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/homework/assignments/create",
"errors": [],
"warnings": []
},
{
"url": "/teacher/homework/submissions",
"category": "Homework",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/homework/submissions",
"errors": [],
"warnings": []
},
{
"url": "/teacher/grades",
"category": "Grades",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/grades",
"errors": [],
"warnings": []
},
{
"url": "/teacher/grades/entry",
"category": "Grades",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/grades/entry",
"errors": [],
"warnings": []
},
{
"url": "/teacher/grades/stats",
"category": "Grades",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/grades/stats",
"errors": [
"%c%s%c background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px Server Error: MISSING_MESSAGE: Could not resolve `grades.classReport.caption` in messages for locale `zh-CN`.\n at ClassGradeReport (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__d43d5e3d._.js?102:604:51)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:106)\n at getOutlinedModel (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1434:28)\n at parseModelString (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1548:50)\n at Object.<anonymous> (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2475:51)\n at JSON.parse (<anonymous>)\n at initializeModelChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1053:30)\n at getOutlinedModel (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1372:17)\n at parseModelString (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1602:50)\n at Array.<anonymous> (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2475:51)\n at JSON.parse (<anonymous>)\n at initializeModelChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1053:30)\n at resolveConsoleEntry (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2008:96)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2409:17)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13)",
"%c%s%c E:\\Desktop\\CICD\\.next\\dev\\server\\chunks\\ssr\\node_modules_d30fabce._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px Server ",
"%c%s%c E:\\Desktop\\CICD\\.next\\dev\\server\\chunks\\ssr\\[root-of-the-server]__d43d5e3d._.js: Invalid source map. Only conformant source maps can be used to find the original code. Cause: Error: sourceMapURL could not be parsed background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px Server "
],
"warnings": []
},
{
"url": "/teacher/grades/analytics",
"category": "Grades",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/grades/analytics",
"errors": [],
"warnings": []
},
{
"url": "/teacher/classes",
"category": "Classes",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/classes/my",
"errors": [],
"warnings": []
},
{
"url": "/teacher/classes/my",
"category": "Classes",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/classes/my",
"errors": [],
"warnings": []
},
{
"url": "/teacher/classes/students",
"category": "Classes",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/classes/students",
"errors": [],
"warnings": [
"Error text: 20",
"Error text: 42",
"Error text: 42"
]
},
{
"url": "/teacher/classes/schedule",
"category": "Classes",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/classes/schedule",
"errors": [],
"warnings": []
},
{
"url": "/teacher/course-plans",
"category": "Course Plans",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/course-plans",
"errors": [],
"warnings": []
},
{
"url": "/teacher/lesson-plans",
"category": "Lesson Plans",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/lesson-plans",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <div className=\"space-y-4\">\n <LessonPlanFilters>\n <div className=\"grid grid-...\">\n <LessonPlanCard plan={{id:\"o20j6e...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a3qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_58f9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"p54vt8...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a5qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_58n9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"ps8rrh...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a7qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_58v9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"zpeysv...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1a9qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5979bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"gpqmy3...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1abqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_59f9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"b89r2i...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1adqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_59n9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"rp33u1...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1afqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_59v9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"w4a90p...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1ahqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5a79bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"dt0qjt...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1ajqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5af9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"wkama4...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1alqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5an9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"hnkmjz...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1anqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5av9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"k43bo4...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1apqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5b79bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"kiret3...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1arqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5bf9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"q8bl25...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1atqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5bn9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"jn8to5...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1avqatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5bv9bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n <LessonPlanCard plan={{id:\"wdqlzc...\", ...}} viewMode=\"teacher\">\n <div className=\"border bor...\">\n <LinkComponent>\n <div>\n <div>\n <div>\n <div className=\"flex gap-2...\">\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button variant=\"outline\" size=\"sm\" type=\"button\" aria-haspopup=\"dialog\" ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm...\"}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_1b1qatpesndubn6lb_\"\n- aria-controls=\"radix-_R_5c79bn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n+ 归档\n ...\n"
],
"warnings": []
},
{
"url": "/teacher/lesson-plans/new",
"category": "Lesson Plans",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/lesson-plans/new",
"errors": [],
"warnings": []
},
{
"url": "/teacher/attendance",
"category": "Attendance",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/attendance",
"errors": [],
"warnings": []
},
{
"url": "/teacher/attendance/sheet",
"category": "Attendance",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/attendance/sheet",
"errors": [],
"warnings": []
},
{
"url": "/teacher/attendance/stats",
"category": "Attendance",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/attendance/stats",
"errors": [],
"warnings": []
},
{
"url": "/teacher/schedule-changes",
"category": "Schedule Changes",
"status": "failed",
"http_status": 500,
"final_url": "http://localhost:3000/teacher/schedule-changes",
"errors": [
"HTTP 500 error",
"Failed to load resource: the server responded with a status of 500 (Internal Server Error)",
"%o\n\n%s PermissionDeniedError: 权限不足:需要 schedule:adjust 权限。请联系管理员授权或切换账号后重试。\n at requirePermission (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__20b59666._.js?49:3692:15)\n at TeacherScheduleChangesPage (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__dd4f396b._.js?50:127:17)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:148)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2390:29)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13) The above error occurred in the <TeacherScheduleChangesPage> component. It was handled by the <ErrorBoundaryHandler> error boundary."
],
"warnings": []
},
{
"url": "/teacher/diagnostic",
"category": "Diagnostic",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/diagnostic",
"errors": [
"%o\n\n%s Error: Failed query: select `id`, `student_id`, `generated_by`, `class_id`, `report_type`, `period`, `summary`, `strengths`, `weaknesses`, `recommendations`, `overall_score`, `report_status`, `created_at`, `updated_at` from `learning_diagnostic_reports` order by `learning_diagnostic_reports`.`created_at` desc limit ?\nparams: 100\n at <anonymous> (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__520e8e85._.js?69:11677:31)\n at TeacherDiagnosticPage (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__c5e083b6._.js?70:138:21)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:148)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2390:29)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13) The above error occurred in the <TeacherDiagnosticPage> component. It was handled by the <ErrorBoundaryHandler> error boundary."
],
"warnings": []
},
{
"url": "/teacher/elective",
"category": "Elective",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/elective",
"errors": [],
"warnings": []
},
{
"url": "/teacher/error-book",
"category": "Error Book",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/error-book",
"errors": [
"%o\n\n%s Error: Failed query: select `id`, `error_status`, `knowledge_point_ids` from `error_book_items` where `error_book_items`.`student_id` in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\nparams: user_s_g1c1_1,user_s_g1c1_2,user_s_g1c1_3,user_s_g1c1_4,user_s_g1c1_5,user_s_g1c1_6,user_s_g1c2_1,user_s_g1c2_2,user_s_g1c2_3,user_s_g1c2_4,user_s_g1c2_5,user_s_g1c2_6\n at getKnowledgePointWeakness (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__ff9d8e4f._.js?65:696:18)\n at TeacherErrorBookPage (about://React/Server/E:%5CDesktop%5CCICD%5C.next%5Cdev%5Cserver%5Cchunks%5Cssr%5C%5Broot-of-the-server%5D__ff9d8e4f._.js?66:1992:75)\n at resolveErrorDev (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:1882:148)\n at processFullStringRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2390:29)\n at processFullBinaryRow (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2349:9)\n at processBinaryChunk (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2459:98)\n at progress (http://localhost:3000/_next/static/chunks/node_modules_next_dist_compiled_react-server-dom-turbopack_9212ccad._.js:2628:13) The above error occurred in the <TeacherErrorBookPage> component. It was handled by the <ErrorBoundaryHandler> error boundary."
],
"warnings": []
},
{
"url": "/teacher/textbooks/em3l39kx0inu9rsq6onnpe7r",
"category": "Textbooks Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/textbooks/em3l39kx0inu9rsq6onnpe7r",
"errors": [],
"warnings": []
},
{
"url": "/teacher/textbooks/loncxhs6kk4l33d826wv1m9y",
"category": "Textbooks Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/textbooks/loncxhs6kk4l33d826wv1m9y",
"errors": [],
"warnings": []
},
{
"url": "/teacher/textbooks/b9kusgl3cxhtjcf1tcpvokhk",
"category": "Textbooks Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/textbooks/b9kusgl3cxhtjcf1tcpvokhk",
"errors": [],
"warnings": []
},
{
"url": "/teacher/classes/my/class_G1C1",
"category": "Classes Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/classes/my/class_G1C1",
"errors": [],
"warnings": [
"Error text: 20",
"Error text: 42",
"Error text: 42"
]
},
{
"url": "/teacher/course-plans/cp_g1c1_chinese",
"category": "Course Plans Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/course-plans/cp_g1c1_chinese",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
],
"warnings": []
},
{
"url": "/teacher/lesson-plans/new",
"category": "Lesson Plans Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/lesson-plans/new",
"errors": [],
"warnings": []
},
{
"url": "/teacher/lesson-plans/o20j6es4xbrc1qtbsi33l8wc/edit",
"category": "Lesson Plans Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/lesson-plans/o20j6es4xbrc1qtbsi33l8wc/edit",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n",
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <Suspense fallback={<div>}>\n <LessonPlanEditor planId=\"o20j6es4xb...\" initialTitle=\"第一课 秋天\" initialDoc={{edges:[...], ...}} ...>\n <div className=\"flex flex-...\">\n <div className=\"flex items...\">\n <input>\n <div>\n <span>\n <Button>\n <Button>\n <AlertDialog>\n <Dialog __scopeDialog={{Dialog:[...]}} modal={true}>\n <DialogProvider scope={{Dialog:[...]}} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <AlertDialogTrigger asChild={true}>\n <DialogTrigger __scopeDialog={{Dialog:[...]}} asChild={true} ref={null}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button size=\"sm\" disabled={false} type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <button\n data-slot=\"button\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n disabled={false}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_cpbn5ritpesndubn6lb_\"\n- aria-controls=\"radix-_R_1j5esnebn5ritnqbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n ...\n"
],
"warnings": []
},
{
"url": "/teacher/lesson-plans/p54vt85kt9hk1h6yz64s27cf/edit",
"category": "Lesson Plans Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/lesson-plans/p54vt85kt9hk1h6yz64s27cf/edit",
"errors": [
"PageError: Switched to client rendering because the server rendering errored:\n\nFailed to call `useTranslations` because the context from `NextIntlClientProvider` was not found.\n\nThis can happen because:\n1) You i"
],
"warnings": []
},
{
"url": "/teacher/homework/assignments/create",
"category": "Homework Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/homework/assignments/create",
"errors": [],
"warnings": []
},
{
"url": "/teacher/homework/assignments/hw_chinese_g1",
"category": "Homework Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/homework/assignments/hw_chinese_g1",
"errors": [
"A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. This won't be patched up. This can happen if a SSR-ed Client Component used:\n\n- A server/client branch `if (typeof window !== 'undefined')`.\n- Variable input such as `Date.now()` or `Math.random()` which changes each time it's called.\n- Date formatting in a user's locale which doesn't match the server.\n- External changing data without sending a snapshot of it along with the HTML.\n- Invalid HTML tag nesting.\n\nIt can also happen if the client has a browser extension installed which messes with the HTML before React loaded.\n\n%s%s https://react.dev/link/hydration-mismatch \n\n ...\n <SidebarProvider sidebar={<AppSidebar>}>\n <div className=\"flex h-scr...\">\n <aside>\n <div className=\"flex-1 fle...\">\n <a>\n ...\n <div className=\"flex items...\">\n <GlobalSearch>\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" size=\"icon\" className=\"relative t...\" aria-label=\"通知\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap round...\"}\n aria-label=\"通知\"\n type=\"button\"\n+ id=\"radix-_R_19ebn6lb_\"\n- id=\"radix-_R_55qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n ...\n <MenuAnchor asChild={true} __scopeMenu={{Menu:[...], ...}}>\n <PopperAnchor __scopePopper={{Menu:[...], ...}} asChild={true} ref={null}>\n <Primitive.div asChild={true} ref={function}>\n <Primitive.div.Slot ref={function}>\n <Primitive.div.SlotClone ref={function}>\n <Primitive.button type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Primitive.button.SlotClone type=\"button\" id=\"radix-_R_1...\" aria-haspopup=\"menu\" ...>\n <Button variant=\"ghost\" className=\"relative s...\" type=\"button\" id=\"radix-_R_1...\" ...>\n <button\n data-slot=\"dropdown-menu-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-...\"}\n type=\"button\"\n+ id=\"radix-_R_1pebn6lb_\"\n- id=\"radix-_R_75qbn6lb_\"\n aria-haspopup=\"menu\"\n aria-expanded={false}\n aria-controls={undefined}\n data-state=\"closed\"\n data-disabled={undefined}\n disabled={false}\n onPointerDown={function handleEvent}\n onKeyDown={function handleEvent}\n ref={function}\n >\n <main>\n <AiAssistantWidget>\n <Sheet open={false} onOpenChange={function bound dispatchSetState}>\n <Dialog data-slot=\"sheet\" open={false} onOpenChange={function bound dispatchSetState}>\n <DialogProvider scope={undefined} triggerRef={{current:null}} contentRef={{current:null}} ...>\n <SheetTrigger asChild={true}>\n <DialogTrigger data-slot=\"sheet-trigger\" asChild={true}>\n <Primitive.button type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.Slot type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Primitive.button.SlotClone type=\"button\" aria-haspopup=\"dialog\" aria-expanded={false} ...>\n <Button type=\"button\" size=\"icon\" className=\"fixed bott...\" aria-label=\"打开 AI 助手\" ...>\n <button\n data-slot=\"sheet-trigger\"\n className={\"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm f...\"}\n type=\"button\"\n aria-label=\"打开 AI 助手\"\n aria-haspopup=\"dialog\"\n aria-expanded={false}\n+ aria-controls=\"radix-_R_2ebn6lb_\"\n- aria-controls=\"radix-_R_9qbn6lb_\"\n data-state=\"closed\"\n onClick={function handleEvent}\n ref={function}\n >\n ...\n"
],
"warnings": [
"Error text: 0 / 3"
]
},
{
"url": "/teacher/exams/create",
"category": "Exams Detail",
"status": "passed",
"http_status": 200,
"final_url": "http://localhost:3000/teacher/exams/create",
"errors": [],
"warnings": []
}
]