Global Dashboard

The Global Dashboard implementation is retained as a cross-project widget canvas, but its main-window tab is disabled for the current MVP.

Status: Dormant. The dashboard is not created at startup and cannot be opened through the main window. Project Navigator is the pinned workspace, and Tasks opens as a normal project tab.

How It Opens

The tab does not open in the current build. Older saved Global Dashboard tabs are ignored during restore. The sections below describe the retained implementation for reference; they are not currently reachable user workflows.

Because it opens on its own, it is usually the first thing visible after the main window appears.

Layout

The dashboard is a vertical stack inside a scrolling area.

Title bar — A fixed header.

Toolbar — Widget and dashboard actions, described below.

Task stat strip — Counts across all projects, docked below the toolbar. It reloads whenever a task widget finishes loading. With no tasks it reads "No tasks — type in the input above to create one."

Context card containers — Two labeled drop areas, Input Sources and Output Destination.

Navigator column and canvas — A split area with the folder tree on the left, a draggable splitter, and the widget canvas filling the rest. The navigator column is the same folder tree used elsewhere, embedded as a collapsible sidebar with document open and selection wired up.

The canvas reflows whenever the window width changes, so widgets rearrange as you resize.

The Default Layout

On first run the dashboard adds exactly one widget: a task widget at global scope. That layout is then saved.

On later runs the saved dashboard is loaded instead, so any changes you make persist.

This single task widget is why the dashboard reads as a task screen. Nothing else is seeded.

Widgets

There is one implemented widget type — a universal container that changes behavior based on its data source. It provides seven tabs: Context, Tool, List, Kanban, Timeline, Table, and Text, binding the relevant ones for whichever source it holds. Its task views are the same ones documented in Task Board.

Widget scope

Widgets carry a scope that controls which data they see:

  • Global — Data from all projects. The default on the Global Dashboard.
  • SubGlobal — Cross-project data on secondary dashboards.
  • Project — The current project only.

A task widget at global scope shows tasks from every project and displays project context on each row. A project-scoped widget hides that column.

Adding a widget

+ Add Widget opens a "Select Data Source" dialog offering three sources:

  • Tasks — the task data
  • Tool Workspace — the agent source, which binds the widget to the Tool tab
  • SK Memory — the search index, which opens on the Table tab

Toolbar

The base toolbar carries + Add Widget, an add-tool button, Refresh, and Clear, with a widget count alongside them.

Once the main window is fully initialized, five more actions appear:

+ New Global Dashboard — Opens an additional dashboard tab. Unlike the main one, secondary dashboards are restored when you reopen the app.

Tasks — Opens the project Tasks dashboard for the active project.

New Project — Project creation.

Open Project — Opens an existing project.

Create Tool — Launches the tool creator.

Context Cards

The Input Sources and Output Destination containers accept dragged content and turn it into context cards. A card can represent a document, folder, workspace, or tag, carrying its path and display label.

When a card is added or removed, the dashboard pushes the current input and output sets to every widget on the canvas. Widgets show them in the Context tab, and when a widget runs an agent tool, the input cards become the tool's context sources and the output cards its destinations.

If no output card exists and a project is open, the dashboard seeds one pointing at that project's _captured folder.

This is how the dashboard feeds tool execution. It only does something when a widget is bound to the agent source and actually runs a tool — the cards have no effect on task widgets.

Project Tasks Dashboard

A separate dashboard is scoped to the active project. Its pinned tab is titled Tasks. ThinkForge keeps exactly one Tasks tab per project; using the Global Dashboard's Tasks button activates that tab when it already exists.

Tasks has the same shape as the Global Dashboard — toolbar, task stat strip, canvas — but its stat strip loads statistics for its own project, and it accepts drops of documents, folders, workspaces, and tags directly.

Storage

Dashboard state lives alongside task data in the ThinkForge database directory:

Documents\Think Forge\Databases\Widgets.db

Because this is application-level storage rather than project-local, dashboard layouts are not part of a project folder and do not travel when a project is copied.

Current Limitations

The dashboard does very little beyond tasks today:

  • Only one widget type is implemented.
  • The default layout is a single task widget, so an untouched dashboard is a task list with a stat strip above it.
  • The three data sources in the add-widget dialog are Tasks, Tool Workspace, and SK Memory. There is no document, activity, calendar, or metrics widget.
  • Context cards affect only tool execution from a widget. They do nothing for the default task widget.
  • The dashboard is a valid tool deployment target, but placing a tool there is only useful once a Tool Workspace widget is on the canvas. See Tools / Deploying Tools.
  • The main Global Dashboard and secondary-dashboard entry points are disabled for the current MVP.