Skip to content

feat: implement session list screen (#8)#31

Merged
vriesdemichael merged 1 commit intomainfrom
feat/session-list-screen
Feb 19, 2026
Merged

feat: implement session list screen (#8)#31
vriesdemichael merged 1 commit intomainfrom
feat/session-list-screen

Conversation

@vriesdemichael
Copy link
Copy Markdown
Owner

Fixes #8. Implements the Session List screen with fetching, creating sessions, and pull-to-refresh. Built following all project ADRs. Coverage 92.85%.

Copilot AI review requested due to automatic review settings February 19, 2026 22:51
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Sessions tab screen with connected/loading/error/empty/list states, create-session action, and pull-to-refresh.
  • Updated tab routing to replace the previous explore tab with sessions, 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.

Comment on lines +1 to +5
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";
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Comment thread GEMINI.md
Comment on lines +1 to +7
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
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment thread .antigravityrules
@@ -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
Copy link

Copilot AI Feb 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
@vriesdemichael vriesdemichael force-pushed the feat/session-list-screen branch from d502267 to ac8c3fc Compare February 19, 2026 22:57
@vriesdemichael vriesdemichael merged commit 781f499 into main Feb 19, 2026
1 check failed
@vriesdemichael vriesdemichael deleted the feat/session-list-screen branch February 19, 2026 22:58
vriesdemichael pushed a commit that referenced this pull request Feb 23, 2026
# 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))
@vriesdemichael
Copy link
Copy Markdown
Owner Author

🎉 This PR is included in version 1.0.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement session list screen

2 participants