@knowsuchagency/fulcrum 3.6.7 → 3.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -17,7 +17,7 @@ Fulcrum doesn't replace your tools—it gives you leverage over them. You config
17
17
  - **Claude Code Ecosystem** — Deep integration with Claude Code. Connect via messaging channels, manage tasks, deploy from one dashboard.
18
18
  - **Proactive AI Concierge** — Your assistant monitors messages, stores important observations as memories, creates daily plans, and sends morning/evening briefings automatically.
19
19
  - **Work From Anywhere** — Run Fulcrum on a remote server. Close your laptop, agents keep working.
20
- - **Project Management** — Tasks with dependencies, due dates, recurrence, labels, and attachments. Visual kanban boards.
20
+ - **Project Management** — Tasks with dependencies, due dates, time estimates, recurrence, labels, and attachments. Visual kanban boards.
21
21
  - **Production Deployment** — Docker Compose with automatic Traefik routing and Cloudflare DNS/tunnels.
22
22
  - **Agent Memory** — Persistent knowledge store with full-text search. Agents remember across sessions.
23
23
  - **MCP-First Architecture** — 60+ tools exposed via Model Context Protocol. Agents discover what they need.
@@ -246,7 +246,7 @@ Both plugins include an MCP server with 60+ tools:
246
246
 
247
247
  | Category | Description |
248
248
  |----------|-------------|
249
- | **Tasks** | Create, update, move tasks; manage links, labels, attachments, due dates, recurrence |
249
+ | **Tasks** | Create, update, move tasks; manage links, labels, attachments, due dates, time estimates, recurrence |
250
250
  | **Task Dependencies** | Define prerequisite tasks; visualize with dependency graph |
251
251
  | **Projects** | Manage projects with tags, notes, and file attachments |
252
252
  | **Repositories** | Add, configure, and link repositories to projects |
package/bin/fulcrum.js CHANGED
@@ -44590,7 +44590,8 @@ function registerCreateTask(server, client) {
44590
44590
  repositoryId: exports_external.optional(exports_external.string()).describe("Repository ID (alternative to repoPath)"),
44591
44591
  tags: exports_external.optional(exports_external.array(exports_external.string())).describe("Tags to add to the task"),
44592
44592
  dueDate: exports_external.optional(exports_external.string()).describe("Due date in YYYY-MM-DD format"),
44593
- timeEstimate: exports_external.optional(exports_external.number().int().min(1).max(8)).describe("Time estimate in hours (1-8)"),
44593
+ timeEstimate: exports_external.optional(exports_external.number().int().min(1)).describe("Time estimate in hours (minimum 1)"),
44594
+ priority: exports_external.optional(exports_external.enum(["high", "medium", "low"])).describe("Task priority level (default: medium)"),
44594
44595
  recurrenceRule: exports_external.optional(exports_external.enum(["daily", "weekly", "biweekly", "monthly", "quarterly", "yearly"])).describe("Recurrence frequency - creates a new TO_DO task when completed"),
44595
44596
  recurrenceEndDate: exports_external.optional(exports_external.string()).describe("Stop recurring after this date (YYYY-MM-DD). Omit for no end date.")
44596
44597
  }, async ({
@@ -44605,6 +44606,7 @@ function registerCreateTask(server, client) {
44605
44606
  tags,
44606
44607
  dueDate,
44607
44608
  timeEstimate,
44609
+ priority,
44608
44610
  recurrenceRule,
44609
44611
  recurrenceEndDate
44610
44612
  }) => {
@@ -44625,6 +44627,7 @@ function registerCreateTask(server, client) {
44625
44627
  tags,
44626
44628
  dueDate: dueDate ?? null,
44627
44629
  timeEstimate: timeEstimate ?? null,
44630
+ priority: priority ?? null,
44628
44631
  recurrenceRule: recurrenceRule ?? null,
44629
44632
  recurrenceEndDate: recurrenceEndDate ?? null
44630
44633
  });
@@ -44654,10 +44657,11 @@ function registerUpdateTask(server, client) {
44654
44657
  id: exports_external.string().describe("Task ID"),
44655
44658
  title: exports_external.optional(exports_external.string()).describe("New title"),
44656
44659
  description: exports_external.optional(exports_external.string()).describe("New description"),
44657
- timeEstimate: exports_external.optional(exports_external.nullable(exports_external.number().int().min(1).max(8))).describe("Time estimate in hours (1-8), or null to clear"),
44660
+ timeEstimate: exports_external.optional(exports_external.nullable(exports_external.number().int().min(1))).describe("Time estimate in hours (minimum 1), or null to clear"),
44661
+ priority: exports_external.optional(exports_external.nullable(exports_external.enum(["high", "medium", "low"]))).describe("Task priority (high/medium/low), or null to clear"),
44658
44662
  recurrenceRule: exports_external.optional(exports_external.nullable(exports_external.enum(["daily", "weekly", "biweekly", "monthly", "quarterly", "yearly"]))).describe("Recurrence frequency, or null to remove"),
44659
44663
  recurrenceEndDate: exports_external.optional(exports_external.nullable(exports_external.string())).describe("Stop recurring after this date (YYYY-MM-DD), or null to remove")
44660
- }, async ({ id, title, description, timeEstimate, recurrenceRule, recurrenceEndDate }) => {
44664
+ }, async ({ id, title, description, timeEstimate, priority, recurrenceRule, recurrenceEndDate }) => {
44661
44665
  try {
44662
44666
  const updates = {};
44663
44667
  if (title !== undefined)
@@ -44666,6 +44670,8 @@ function registerUpdateTask(server, client) {
44666
44670
  updates.description = description;
44667
44671
  if (timeEstimate !== undefined)
44668
44672
  updates.timeEstimate = timeEstimate;
44673
+ if (priority !== undefined)
44674
+ updates.priority = priority;
44669
44675
  if (recurrenceRule !== undefined)
44670
44676
  updates.recurrenceRule = recurrenceRule;
44671
44677
  if (recurrenceEndDate !== undefined)
@@ -46439,7 +46445,7 @@ async function runMcpServer(urlOverride, portOverride) {
46439
46445
  const client = new FulcrumClient(urlOverride, portOverride);
46440
46446
  const server = new McpServer({
46441
46447
  name: "fulcrum",
46442
- version: "3.6.7"
46448
+ version: "3.6.10"
46443
46449
  });
46444
46450
  registerTools(server, client);
46445
46451
  const transport = new StdioServerTransport;
@@ -48788,7 +48794,7 @@ var marketplace_default = `{
48788
48794
  "name": "fulcrum",
48789
48795
  "source": "./",
48790
48796
  "description": "Task orchestration for Claude Code",
48791
- "version": "3.6.7",
48797
+ "version": "3.6.10",
48792
48798
  "skills": [
48793
48799
  "./skills/fulcrum"
48794
48800
  ],
@@ -49992,7 +49998,7 @@ function compareVersions(v1, v2) {
49992
49998
  var package_default = {
49993
49999
  name: "@knowsuchagency/fulcrum",
49994
50000
  private: true,
49995
- version: "3.6.7",
50001
+ version: "3.6.10",
49996
50002
  description: "Harness Attention. Orchestrate Agents. Ship.",
49997
50003
  license: "PolyForm-Perimeter-1.0.0",
49998
50004
  type: "module",
@@ -50008,7 +50014,7 @@ var package_default = {
50008
50014
  "db:studio": "drizzle-kit studio"
50009
50015
  },
50010
50016
  dependencies: {
50011
- "@anthropic-ai/claude-agent-sdk": "0.2.38",
50017
+ "@anthropic-ai/claude-agent-sdk": "0.2.41",
50012
50018
  "@atlaskit/pragmatic-drag-and-drop": "^1.7.7",
50013
50019
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
50014
50020
  "@azurity/pure-nerd-font": "^3.0.5",