How It Works
GitScrum Studio extends your code editor with project management panels that behave like native editor tabs. This guide explains the architecture, navigation model, and how data flows between the extension and GitScrum.
The Extension Structure
GitScrum Studio adds three integration points to your editor:
1. Activity Bar β GitScrum Icon β Sidebar Tree
2. Editor Area β Webview Panels (tabs)
3. Status Bar β Persistent TimerThese three elements work together. The sidebar is your navigation hub. Panels are your workspace. The timer tracks time independently of both.
The Sidebar Tree
Clicking the GitScrum icon in the Activity Bar opens a tree-view sidebar. It organizes your data in a clear hierarchy:
Workspace Name
ββ Project Name
ββ Plan
β ββ Sprints
β ββ User Stories
β ββ Team Standup
ββ Build
β ββ Board
ββ Knowledge
β ββ Wiki
β ββ Discussions
β ββ Documents
ββ Time TrackingWorkspace Level
The top-level nodes represent your GitScrum workspaces (organizations). Each workspace contains the projects you have access to based on your role.
Project Level
Expanding a workspace reveals its projects. Clicking a project sets it as active β this determines which data all panels display.
Feature Groups
Each project organizes its features into three logical groups:
| Group | Features | Purpose |
|---|---|---|
| Plan | Sprints, User Stories, Team Standup | Planning and tracking work iterations |
| Build | Board | Task execution with Kanban and list views |
| Knowledge | Wiki, Discussions, Documents | Documentation and team communication |
Time Tracking sits at the project root level since it spans all other features.
Webview Panels
Clicking any sidebar item opens a webview panel in the editor area. These panels:
- Render as editor tabs β move, split, pin, or close them like any file tab
- Display rich interfaces β Kanban boards, charts, forms, and tables
- Communicate bidirectionally β actions in the panel trigger API calls; data from the API updates the panel
- Refresh automatically β at the configured interval (default: 5 minutes)
Panel Lifecycle
- Click sidebar item β panel opens (or focuses if already open)
- Panel loads data from the GitScrum API
- User interacts β actions send messages to the extension
- Extension processes β calls API, updates panel with results
- Auto-refresh β periodic data reload in the background
Panel Reuse
Panels are keyed by workspace and project. Opening the Board for the same project twice focuses the existing panel instead of creating a duplicate. Opening the Board for a different project creates a new panel.
The Status Bar Timer
A clock icon sits in the status bar at the bottom of your editor. It is always visible, regardless of which panel or file is active.
Timer States
| State | Display | Behavior | |
|---|---|---|---|
| Idle | π 00:00:00 | No timer running. Click to start. | |
| Active | `π 00:45:32 | PROJ-123` | Timer running. Shows elapsed time and task code. Yellow background. |
Timer Persistence
The timer saves its state to the editor's global storage every 60 seconds. This means:
- Close the editor β timer continues when you reopen
- Restart your computer β timer resumes from last saved state
- Server sync β on startup, the extension checks the server for an active timer and synchronizes
QuickPick Menu
Clicking the status bar timer opens a QuickPick menu with context-dependent options:
When idle:
- βΆ Start Timer β opens a task picker
- π View Time Entries β opens the Time Tracking panel
- π Open Time Tracking Panel β opens analytics
When active:
- βΉ Stop Timer β logs the time entry with optional comment
- π Switch Task β stops current timer, starts a new one
- π Discard Timer β cancels without saving
- π View Time Entries
- π Open Time Tracking Panel
Data Flow
All data flows through the GitScrum REST API. The extension is a client β it reads and writes data through authenticated HTTP requests.
Editor Panel β Extension Backend β GitScrum API β Database
β β
βββ Response βββAuthentication
The extension stores your authentication token using the editor's SecretStorage API. Every API request includes this token. When the token expires or you sign out, the sidebar shows sign-in options.
API Communication
Each panel has a dedicated service class that handles its API calls:
| Service | Panels it Serves |
|---|---|
| BoardService | Kanban Board |
| SprintService | Sprints |
| TaskDetailService | Task Drawer (used in Board, Sprints, User Stories, Time Tracking) |
| TimeTrackingService | Status Bar Timer, Time Tracking Panel |
| WikiService | Wiki |
| DiscussionService | Discussions |
Auto-Refresh
Panels refresh automatically at a regular interval. Click the refresh button in any panel header for an immediate update.
The Task Drawer
The task drawer is a shared component that appears in multiple panels β Board, Sprints, User Stories, and Time Tracking. When you click a task in any of these panels, the drawer opens as a side panel with full editing capabilities:
| Feature | What You Can Do |
|---|---|
| Title & Description | Edit inline with Markdown support |
| Workflow | Change status, create new workflows |
| Type | Assign task type, create new types |
| Assignees | Assign and unassign team members |
| Labels | Attach labels, create new labels |
| Dates | Set start date and due date |
| Effort | Set effort estimation (Fibonacci scale: 1, 2, 3, 5, 8, 13) |
| Checklists | Create checklists, add items, toggle completion |
| Comments | Read and post comments |
| Flags | Toggle draft, archived, and blocker states |
| Board Assignment | Assign task to one or more boards |
The drawer provides a consistent editing experience regardless of which panel you opened the task from.
Role-Based Access
The extension respects your GitScrum workspace role. What you see and can do depends on your permissions:
| Role | Access Level |
|---|---|
| Agency Owner | Full access to all features, project settings, and team data |
| Manager | Full access to project features, reports, and team management |
| Developer | Task management, time tracking, collaboration tools, and knowledge base |
| Client | View-only access to assigned project data |
Some actions β like opening Project Settings from the sidebar β are only available to Agency Owners. If a feature appears disabled, verify your role in the GitScrum web application.
Command Palette
Every feature is accessible from the Command Palette (Ctrl+Shift+P / Cmd+Shift+P). Type GitScrum: to see all commands:
| Command | Action |
|---|---|
GitScrum: Sign In | Open authentication options |
GitScrum: Sign Out | Clear credentials and sign out |
GitScrum: Open Board | Open the Kanban board panel |
GitScrum: Open Sprints | Open the sprints panel |
GitScrum: Open User Stories | Open the user stories panel |
GitScrum: Open Wiki | Open the wiki panel |
GitScrum: Open Discussions | Open the discussions panel |
GitScrum: Open Documents | Open the documents panel |
GitScrum: Open Team Standup | Open the standup panel |
GitScrum: Start Timer | Start time tracking |
GitScrum: Stop Timer | Stop the active timer |
GitScrum: Open Time Tracking | Open the time tracking panel |
GitScrum: Refresh | Force-refresh all data |
GitScrum: Create Project | Create a new project |
You can bind custom keyboard shortcuts to any of these commands through the Keyboard Shortcuts editor (Ctrl+K Ctrl+S / Cmd+K Cmd+S).
Related Documentation
- Quickstart β Install and configure in 2 minutes
- Getting Started β Full setup with all authentication options
- Kanban Board β Deep dive into board features
- Time Tracking β Timer workflows and analytics