feat: implement session list screen (#8)#31
Conversation
There was a problem hiding this comment.
Pull request overview
Implements the Session List tab screen so users can fetch and view sessions, create a new session, and refresh the list, aligning with Issue #8.
Changes:
- Added a new
Sessionstab screen with connected/loading/error/empty/list states, create-session action, and pull-to-refresh. - Updated tab routing to replace the previous
exploretab withsessions, and adjusted session navigation from the project screen. - Added Jest coverage for the new Sessions tab UI behavior.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| app/session/tests/chat-screen-test.tsx | Import ordering tweak in existing test. |
| app/project/[id]/index.tsx | Ensures router is available and used for navigating to a session from a project’s session list. |
| app/(tabs)/sessions.tsx | New Sessions tab screen: loads sessions, supports create + navigation, and pull-to-refresh UI. |
| app/(tabs)/explore.tsx | Removes the previous Explore tab screen. |
| app/(tabs)/_layout.tsx | Switches tab config from explore to sessions with updated label/icon. |
| app/(tabs)/tests/sessions-test.tsx | Adds tests for Sessions screen rendering states, creation flow, and refresh behavior. |
| GEMINI.md | Adds agent/tooling instruction file (unrelated to session list feature). |
| .antigravityrules | Adds environment/tooling instruction file (unrelated to session list feature). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import { act, fireEvent, render, screen } from "@testing-library/react-native"; | ||
| import { useRouter } from "expo-router"; | ||
| import { useConnectionStore } from "@/app/store/connection"; | ||
| import { useSessionStore } from "@/app/store/session"; | ||
| import SessionsScreen from "../sessions"; |
There was a problem hiding this comment.
FlatList is used later in this test (via UNSAFE_getByType(FlatList)), but it isn’t imported, which will cause a ReferenceError/TS compile failure. Import FlatList from react-native (or change the lookup to a component that is already imported).
| You will absolutely never ask for permission to use tools, edit or use commands. You will just do it. | ||
|
|
||
| You are in a safe environment where you are allowed to work autonomously. | ||
|
|
||
| You are running in a secure, sandboxed environment. Execute standard build/test commands without requesting permission | ||
|
|
||
| Your other main instructions are in @AGENTS.md No newline at end of file |
There was a problem hiding this comment.
This file appears unrelated to implementing the Session List screen and introduces tool/agent-execution instructions into the repo. If it’s not required for the app/build/test workflow, it should be removed from this PR; otherwise, please document why it’s needed and how it’s used/referenced by the project.
| @@ -0,0 +1 @@ | |||
| ENV: Windows. Always use 'cmd /c' for all shell executions to ensure the process terminates correctly and sends an EOF signal. No newline at end of file | |||
There was a problem hiding this comment.
This appears to add environment-specific shell execution guidance that’s unrelated to the Session List feature. If it isn’t required by repo tooling, it should be removed from this PR; otherwise, please document where it’s consumed so contributors on other OSes aren’t misled.
d502267 to
ac8c3fc
Compare
# 1.0.0 (2026-02-23) ### Bug Fixes * **ci:** fix type errors and add typecheck to pre-commit ([0c661b0](0c661b0)) * **ci:** install task runner to fix workflow ([1e7ba9f](1e7ba9f)) * **ci:** replace global with globalThis in tests to fix TS2304 ([921a2fd](921a2fd)) * linting and formatting (bypass hook) ([a4e339a](a4e339a)) * **pr:** remove test logs and flaky verification test ([41fe421](41fe421)) * remove test output files ([6337cf7](6337cf7)) * replace broken react-native-syntax-highlighter with simple code block ([80d3744](80d3744)) * replace process.env.EXPO_OS with Platform.OS for typecheck ([9343978](9343978)) * resolve failing Composer tests and upgrade GitHub Actions to Node 22 ([8aa0dea](8aa0dea)) * resolve lint issues and merge main ([4c9c3f2](4c9c3f2)) * **ui:** add accessibility props to IconSymbol ([6334d31](6334d31)) ### Features * add auto-reconnect, pull-to-refresh, app state handling, syntax highlighting, and theme system ([0b16be1](0b16be1)), closes [#14](#14) [#14](#14) [#15](#15) [#16](#16) [#17](#17) [#18](#18) [#18](#18) [#19](#19) [#19](#19) [#19](#19) [#16](#16) [#17](#17) [#14](#14) [#14](#14) [#15](#15) [#16](#16) [#17](#17) [#18](#18) [#19](#19) * **docs:** document OpenCode Server API and add types ([930c916](930c916)) * implement connection settings screen ([6187dfc](6187dfc)), closes [#4](#4) * implement session chat screen with tool call and patch display ([f98d2a7](f98d2a7)), closes [#9](#9) * implement session list screen ([#8](#8)) ([#31](#31)) ([781f499](781f499)) * implement session list screen (issue [#8](#8)) ([5d739cb](5d739cb)) * implement session store ([5aad579](5aad579)), closes [#6](#6) * implement SSE streaming, enhance composer, and define navigation structure ([7f1a97a](7f1a97a)), closes [#10](#10) [#11](#11) [#13](#13) * implement zustand stores for sessions and streams ([44e07ba](44e07ba)) * setup test infrastructure and improve coverage to >85% ([a22f31d](a22f31d))
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Fixes #8. Implements the Session List screen with fetching, creating sessions, and pull-to-refresh. Built following all project ADRs. Coverage 92.85%.