GitScrum / Docs
Available for VS Code, Cursor, Windsurf, and any VS Code forkInstall from Marketplace

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 Timer

These 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 Tracking

Workspace 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:

GroupFeaturesPurpose
PlanSprints, User Stories, Team StandupPlanning and tracking work iterations
BuildBoardTask execution with Kanban and list views
KnowledgeWiki, Discussions, DocumentsDocumentation 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

  1. Click sidebar item β†’ panel opens (or focuses if already open)
  2. Panel loads data from the GitScrum API
  3. User interacts β†’ actions send messages to the extension
  4. Extension processes β†’ calls API, updates panel with results
  5. 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

StateDisplayBehavior
IdleπŸ• 00:00:00No timer running. Click to start.
Active`πŸ• 00:45:32PROJ-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:

ServicePanels it Serves
BoardServiceKanban Board
SprintServiceSprints
TaskDetailServiceTask Drawer (used in Board, Sprints, User Stories, Time Tracking)
TimeTrackingServiceStatus Bar Timer, Time Tracking Panel
WikiServiceWiki
DiscussionServiceDiscussions

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:

FeatureWhat You Can Do
Title & DescriptionEdit inline with Markdown support
WorkflowChange status, create new workflows
TypeAssign task type, create new types
AssigneesAssign and unassign team members
LabelsAttach labels, create new labels
DatesSet start date and due date
EffortSet effort estimation (Fibonacci scale: 1, 2, 3, 5, 8, 13)
ChecklistsCreate checklists, add items, toggle completion
CommentsRead and post comments
FlagsToggle draft, archived, and blocker states
Board AssignmentAssign 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:

RoleAccess Level
Agency OwnerFull access to all features, project settings, and team data
ManagerFull access to project features, reports, and team management
DeveloperTask management, time tracking, collaboration tools, and knowledge base
ClientView-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:

CommandAction
GitScrum: Sign InOpen authentication options
GitScrum: Sign OutClear credentials and sign out
GitScrum: Open BoardOpen the Kanban board panel
GitScrum: Open SprintsOpen the sprints panel
GitScrum: Open User StoriesOpen the user stories panel
GitScrum: Open WikiOpen the wiki panel
GitScrum: Open DiscussionsOpen the discussions panel
GitScrum: Open DocumentsOpen the documents panel
GitScrum: Open Team StandupOpen the standup panel
GitScrum: Start TimerStart time tracking
GitScrum: Stop TimerStop the active timer
GitScrum: Open Time TrackingOpen the time tracking panel
GitScrum: RefreshForce-refresh all data
GitScrum: Create ProjectCreate 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).