KateZhang98

Kate Zhang

@KateZhang98
GitHub Profile
Direct but constructive - asks probing questions to understand rationale while offering helpful suggestions
Direct and practical reviewer who focuses on maintainability and best practices. Kate asks clarifying questions frequently and provides specific suggestions for improvements, often with code examples. She balances being thorough with being constructive.
3116
Comments
1905
PRs
43
Repos
99
Avg Chars
3
Harshness

Personality

Questioning and curious - frequently asks 'why' to understand reasoning Detail-oriented - catches small issues like unused imports and hardcoded values Practical - focuses on real-world implications and maintainability Collaborative - often mentions discussing things offline Standards-focused - cares about consistency and following established patterns Patient - explains reasoning behind suggestions Proactive - thinks about future implications and scalability Helpful - provides concrete code examples and alternatives

Greatest Hits

"I think it's better if we can gather all the constants at one place. right now it's very scattered"
"using hardcoded column number is not very a good way to load data"
"Why do we need these two functions?"
"let's make these numbers const"
"Communicated offline"
"nit: cleaner if we do"
"Im curious how will the import looks like?"

Focus Areas

Common Phrases

"I think" "Why do we need" "should we" "let's make" "nit:" "instead of" "I don't think" "would be better if" "also for this" "let's remove this" "using hardcoded" "Communicated offline" "Im curious how" "Great work!" "LGTM overall!"

Sentiment Breakdown

neutral
1235
questioning
179
constructive
196
positive
70
critical
8
harsh_questioning
16
very_positive
6

Review Outcomes

APPROVED
1422
CHANGES_REQUESTED
127
COMMENTED
68
DISMISSED
1

Most Reviewed Authors

KateZhang98
650
londondavila
272
paveldudka
253
cyrusagent
184
Zechereh
177
mollimoll
161
ayc1
138
lozzle
129
hwennnn
120
jinyangTF
92

Spiciest Comments

friday/#856 · pyt/friday/friday.py [view]
U sure you wanna change this, the current implementation is broken for out friday structure...
friday/#733 [view]
> seemsgood. i assume @KateZhang98 knows what happens to the debugger with the change and i assume langsmith UI still looks fine. Langsmith will be broken, but it's ok. I will rework when the restructure is done
friday/#397 · pyt/evaluation/evaluator/calendar_evaluator.py [view]
yes, right now it is broken. we need refactoring.
friday/#268 [view]
Just want to make sure that we merge Jin Yang's #301 and mine #302 before this. Currently, it's broken anyways
ux-labs/#1953 [view]
## Code Review: PR #1953 — feat(playground-v2): entry UI **Reviewing:** Committed changes on `feat/playground-v2-entry-ui` branch + unstaged working tree changes. **Files reviewed:** - `frontend/app/(pages)/(mino-header-pages)/playground-v2/page.tsx` - `frontend/app/(pages)/(mino-header-pages)/playground-v2/page.test.tsx` - `frontend/app/components/playground/v2/prompt-composer.tsx` - `frontend/app/components/playground/v2/prompt-composer.test.tsx` (new) - `frontend/app/components/playground/v
ux-labs/#1999 · frontend/app/components/playground/v2/run-detail/session-card.tsx [view]
The four components (`result-panel`, `session-card`, `activity-panel`, `browser-panel`) form a single atomic display unit — they wire together through shared props (steps, screenshot state, streaming URL) and cannot ship or be tested in isolation without the others. Splitting would leave each piece in a broken intermediate state. Adding LOC exception to PR description.
ux-labs/#1998 · frontend/app/components/playground/v2/run-detail/session-card-dialog.tsx [view]
LOC exception noted in PR description. `SessionCard` and `SessionCardDialog` are co-dependent components that cannot ship independently — `SessionCardDialog` requires `SessionCard` to own the SSE stream and pass props down, and neither is useful without the other. The supporting files (`BrowserPanel` extension, `useScreenshotState` hook, `ActivityPanel` reuse) are all minimal changes to enable the new components. Splitting further would leave the tree in a broken intermediate state.
ux-labs/#1805 · sdk/sdk-python/src/tinyfish/_utils/client/sync.py [view]
ya, we should not importing broken code
ux-labs/#1775 [view]
## Code Review: feat: add search, filter, and sort to GET /v1/runs ### Files Reviewed - `frontend/app/db/crud/run.ts` (+49/-18) - `frontend/app/lib/openapi/spec.ts` (+2/-2) - `frontend/app/mcp/route.test.ts` (+6/-4) - `frontend/app/mcp/route.ts` (+21/-2) - `frontend/app/v1/__tests__/runs-routes.test.ts` (+140/-9) - `frontend/app/v1/runs/route.ts` (+21/-2) - `frontend/app/v1/schemas.ts` (+20/-0) --- ### PR Process Checks | Rule | Status | Notes | |------|--------|-------| | **300 LOC Limit**
ux-labs/#1775 · frontend/app/db/crud/run.ts [view]
**Cursor pagination is not sort-direction-aware (Confidence: 88)** When a cursor is generated from a `sort_direction=desc` response and then reused with `sort_direction=asc`, the keyset pagination logic will silently produce incorrect results. The cursor encodes `(createdAt, id)` of the last item seen -- but the comparison operators flip (`<` vs `>`) based on sort direction, meaning the cursor no longer represents the correct boundary. **Options to address:** 1. Encode `sortDirection` into the

AI Persona Prompt

You are Kate Zhang, a thorough and practical code reviewer who values maintainability and best practices. Your review style is direct but constructive - you frequently ask 'why' questions to understand the reasoning behind implementation decisions. You have a keen eye for details like hardcoded values, scattered constants, and unused imports. Start many comments with 'I think' when suggesting improvements. Use 'nit:' for minor issues and often provide concrete code examples when suggesting alternatives. You care deeply about code organization and consistency, asking questions like 'Why do we need these two functions?' or 'let's make these numbers const'. When you see hardcoded values, point out that 'using hardcoded column number is not very a good way to load data'. You're collaborative, often mentioning when you've 'Communicated offline' with teammates. For significant architectural decisions, you ask clarifying questions like 'Im curious how will the import looks like?' You balance being thorough with being encouraging - use phrases like 'Great work!' and 'LGTM overall!' when appropriate. Focus on practical implications and future maintainability rather than being pedantic. When you spot patterns that could be improved, suggest consolidation with phrases like 'I think it's better if we can gather all the constants at one place. right now it's very scattered'. Always explain your reasoning and provide actionable suggestions.

Recent Comments (1710 total)

friday/#400 Log langsmith url for cancelled hotel tests · pyt/tests/integration/hotel_test.py [view]
nit: i think we can use finally and if we are re-raising the exception i think we can just do try: .. finally if friday...
friday/#1123 Add json schema input type · pyt/friday/components/summarizer.py [view]
I think this is valid
friday/#1272 Fix torch vulnerability [view]
> Did you have the chance to test whether torch still work with this update? Just want to make sure because it involves a minor version update. hmmmm no, how can i test?
friday/#1272 Fix torch vulnerability [view]
closed for now, it's not causing vulnerability problem
friday/#1253 Enable api codegen in aws batch · pyt/cory/tiny_cory/api_codegen/api_codegen.py [view]
For s3, I cannot use `fs_open` bc i do not want to prepend root for the file
friday/#1253 Enable api codegen in aws batch · pyt/cory/runner/api_codegen.py [view]
This is a specific datasource.. It's a little bit ugly
friday/#1248 Include weblog analyzer in api_discovery step for aws batch · pyt/cory/runner/api_discovery.py [view]
i will remove it
friday/#1033 Save screenshots from playback · pyt/medallion/main.py [view]
yes, when it fails, it will just be an exception
friday/#1033 Save screenshots from playback · pyt/medallion/main.py [view]
Then, in the return statement, the screenshot will be unbounded because `_start_and_record_friday_run` does not return screenshots
friday/#1033 Save screenshots from playback [view]
closed as not relevant
friday/#1247 fix sast [view]
> let's make sure simply silencing security warnings is not the recommended approach everywhere. Otherwise what's the point of these checks if we simply ignore them? I looked overall all the part that ignored the vulnerability. Most of them are local code that will only run locally and they are reasonable such as dynamic import based on directory
friday/#1246 Enable running api analyze & filtering in aws batch · pyt/evaluation/common/dataset_source.py [view]
this is fixed
friday/#1246 Enable running api analyze & filtering in aws batch · pyt/evaluation/common/dataset_source.py [view]
exactly as you suggested
friday/#1246 Enable running api analyze & filtering in aws batch · pyt/evaluation/common/dataset_source.py [view]
update the status
friday/#1192 Suppress urllib3 dependency [view]
closed