Flagship Use Case
Vertical Cursors need a business context runtime.
Coding copilots understand files, symbols, diffs, diagnostics, and local repo state. Vertical Cursor-like products need the same immediacy for business objects: matters, tickets, claims, incidents, approvals, costs, policies, commitments, and source versions. For Cursor vendors this is a drop-in context runtime. For enterprises already using Cursor, it is a sidecar reliability layer that keeps their existing workflow safe and fresh.
In simple words
In one sentence: this page explains how we keep LLM context reliable in production. We store time, meaning, and trust signals so each request can use only the context that is still valid now.
What to remember
Context is more than a search result. It is timeline, freshness, permissions, and what already happened.
How to use it
Build your product flow first, then let MatrixArk assemble prompt-ready context, route fast paths, and keep stale context out.
What you get
Fewer wrong-time answers, better cost control, and cleaner reuse of stable prompt parts.
Who should use this
Cursor platform vendors
Ship one context layer once, then every domain use case can reuse a shared serving model, freshness logic, and replay trail.
Enterprise Cursor users
Use MatrixArk through existing Cursor integrations when teams need stronger context quality without rebuilding their AI product.
Vertical AI customers
Use in any high-value workflow where domain facts change over time: support, legal, finance, security, and operations.
Two Cursor options
Option 1: Cursor vendor integration (primary)
Cursor-like platform teams integrate MatrixArk directly with their existing user loop. They send raw user requests + light hints before sending to the model, and write back outcome events after the model response.
Benefit: full control of end-to-end product UX, with one context service powering all use cases.
Option 2: enterprise-side direct use
Enterprises already using Cursor can adopt MatrixArk directly by using Cursor extension hooks, MCP tools, or middleware adapters to fetch context packs and write back post-response events.
Benefit: immediate reliability and compliance gains without waiting for product vendor roadmap changes.
Both options use the same API mindset: Cursor flow stays in place, MatrixArk handles context planning, time-window logic, filtering boundaries, and prompt assembly.
Easy integration pattern for enterprise Cursor users
For teams that are already on Cursor, the required integration is just two hooks and one token budget field. MatrixArk can work with only raw query + hints.
1) Pre-LLM hook (required)
Send raw query, workspace/user ids, session ids, and max token budget.
2) Post-LLM hook (optional)
Send final answer summary, tool calls, user confirmation, and commitments when available.
3) MatrixArk contract
Use get_context_pack() and ingest_context_event() through MCP or HTTPS.
// Pre-LLM request sent to MatrixArk (enterprise Cursor usage)
get_context_pack({
workspace: "company_a/platform_infra/project_1",
raw_user_query: "Can we buy another GPU batch?",
cursor_context: {
user_id: "u_9001",
session_id: "s_2001",
app_path: "project_budget"
},
max_context_tokens: 3000
})
// Post-LLM event written back to MatrixArk
ingest_context_event({
workspace: "company_a/platform_infra/project_1",
event_type: "assistant_answer_final",
happened_at: "2026-06-12T10:00:04Z",
data: {
context_pack_id: "ctx_123",
answer_summary: "Another GPU batch is allowed if spend stays under $50,000.",
accepted_by_user: true,
memory_updates: ["Validate approval date before next purchase"]
}
})
In this direct model, most teams start with TemporalStore for request-time context, use MatrixDB for hot latest-state reads when needed, and add MatrixKV for committed approvals, ownership, and workflow truth.
Ingestion without workflow friction
MatrixArk can operate with minimal input. If we only receive raw query + local hints before LLM call, it still produces a usable context pack by applying default policies and context templates.
Required (always)
Raw query + lightweight hints (user/session/entity ids + token budget).
Better with more data (optional)
Domain events, tool outputs, confirmations, policy changes, and committed decisions.
Ingestion hooks
We recommend registering optional data as hooks: before the model call, during the answer flow, after the model answer, policy-change, and approval-change.
Impact
More ingestion improves freshness, continuity, anti-repetition, and prompt precision over time.
This split keeps Cursor integration low-friction and lets enterprises improve quality incrementally. Every extra stream can be added as a hook without changing Cursor UI or workflow code.
What we learn from Zep and Mem0
The market is converging on a simple lesson: customers do not want to hand-build memory databases. Zep shows that apps can send messages, text, and JSON business data into a managed context layer. Mem0 shows that developers like a small add/search API where the service extracts durable memories and returns them later as prompt context.
| Pattern | What apps send | MatrixArk product decision |
|---|---|---|
| Conversation ingestion | User turns, assistant answers, tool results, corrections, and final summaries. | Support ingest_context_event() so Cursor-like products can write back what happened after the LLM answer. |
| Business data ingestion | JSON events, tickets, approvals, costs, incidents, docs, and workflow records. | Let customers send normal domain payloads while MatrixArk extracts time, scope, entities, and serving fields. |
| Query-time retrieval | Raw query, user/session ids, optional filters, metadata, and limits. | Expose get_context_pack() with raw query, hints, time range, and token budget instead of asking customers for TemporalStore filters. |
| Hybrid retrieval | Semantic candidates plus keyword, metadata, graph, or entity signals. | Use vector DB and object storage as optional candidate layers, then let TemporalStore enforce freshness, replay, time windows, and prompt budget. |
The key difference is that MatrixArk is not only a memory extraction API. It is a serving contract: online ingestion, bounded TemporalStore queries, context-pack assembly, replay, and enterprise policy in one request path.
Replacing filesystem context with TemporalStore + Milvus
Filesystem-style context works because paths are intuitive. The limitation is that a filesystem is not a serving model for time-aware LLM context. MatrixArk keeps the path experience, then compiles it into three production layers.
Namespace
TemporalStore stores logical paths, hash chains, validity windows, lifecycle, permissions, source refs, and replay metadata.
Semantic recall
Milvus stores embeddings, searchable summary/chunk text, and scalar fields for candidate retrieval.
Source objects
S3-compatible storage keeps raw PDFs, Markdown, parsed text, transcripts, and large L2 payloads.
Prompt contract
MatrixArk turns candidates and temporal state into a compact context pack under the model's token budget.
| Layer | Stores | Purpose |
|---|---|---|
| TemporalStore | ContextNode metadata, scope hashes, validity, lifecycle, permissions, replay, Milvus refs. | Decide which context is current, scoped, allowed, and reproducible. |
| Milvus | Dense/sparse vectors, searchable summary/chunk text, node ids, scalar metadata. | Find semantically relevant candidates before TemporalStore validation. |
| Object store | Raw PDFs, Markdown, parsed text, transcripts, media, and large L2 content. | Keep canonical source artifacts outside the prompt-serving metadata path. |
| MatrixArk | Extraction, planning, rerank, token budgeting, and context-pack assembly. | Make the customer-facing API simple while hiding storage and serving complexity. |
logical path:
/company_a/platform/project_1/approvals/alice-budget.md
TemporalStore ContextNode:
node_id = node_approval_001
scope_layers = [company_a, platform, project_1, approvals]
scope_hash_chain = [h(company_a), h(company_a/platform), h(company_a/platform/project_1)]
serving_scope_hash = h(company_a|platform|project_1)
level = L2
valid_from = 2026-06-10T09:30:00Z
lifecycle_state = active
embedding_refs = [emb_l0_001, emb_l1_001, emb_chunk_001]
object_ref = s3://company-a/raw/approvals/alice-budget.md
Milvus EmbeddingRecord:
embedding_id = emb_l0_001
node_id = node_approval_001
text = "Alice approved a $50,000 GPU budget for Project 1."
vector = [...]
scalar fields = tenant, project, collection, level, updated_at
Query flow: semantic candidates, temporal validation
Milvus should find candidates by meaning. TemporalStore should decide whether those candidates are fresh, valid, permissioned, scoped, and worth spending tokens on.
Can we buy GPU? MatrixArk planner
scope + intent + budget Milvus
semantic candidates TemporalStore
valid-as-of + permissions Context pack
L0/L1/L2 under budget LLM
answer with fresh context
This is the key difference from filesystem retrieval: the final prompt is not whatever path was semantically close. It is the subset of candidates that pass TemporalStore's time, scope, lifecycle, permission, replay, and token-budget rules.
Two APIs, not one overloaded memory call
Query-time requests and non-query ingestion events should stay separate. This keeps the customer contract simple and lets MatrixArk optimize each path independently.
Read path
get_context_pack() receives raw query, local hints, scope, time range, and max context tokens. It returns prompt-ready context.
Write path
ingest_context_event() receives messages, final answers, tool results, business events, documents, and corrections. It improves future context.
Batch path
Historical Markdown, PDFs, tickets, CRM exports, chat logs, and wiki pages can be parsed and loaded before the first live query.
Serving path
TemporalStore handles low-latency time/scope queries first; vector DB, S3, MatrixDB, and MatrixKV are added only where they help.
// Query-time read: raw query + hints.
get_context_pack({
tenant_id: "company_a",
raw_query: "What did we decide about Project Alpha vendor?",
hints: {
project: "Project Alpha",
time_range: "last_30_days",
max_context_tokens: 2500
}
})
// Non-query write: teach MatrixArk what happened.
ingest_context_event({
tenant_id: "company_a",
event_type: "assistant_final_answer",
event_time: "2026-06-13T20:00:00Z",
content: "Project Alpha will use Vendor B after Vendor A failed security review.",
hints: {
project: "Project Alpha",
remember: true,
category: "decision"
}
})
Enriched integration diagrams
Option 1: Vendor-integrated cursor platform
user input + local hints MatrixArk planning API
intent + time-window + policy TemporalStore
prompt-ready context pack
model call + tools MatrixArk result writeback
answer summary + decisions MatrixKV / MatrixDB
truth + hot state
Same UI, fewer custom context layers; MatrixArk owns serving complexity.
Option 2: Enterprise sidecar on Cursor
pre-query hook MatrixArk edge connector
MCP / HTTPS TemporalStore
time-aware query service
via existing Cursor runtime Post-query writeback
events, commitments, corrections MatrixDB / MatrixKV
hot state + committed truth
Useful for teams already live on Cursor and moving quickly.
raw query + ids Option 1 Cursor
before model call MatrixArk
build context pack LLM
answer + tool calls Answer returned
cursor UX Option 1 Cursor
after model answer MatrixArk
writeback + replay Next request
continuity improved
In Option 1, the vendor-side flow is stable and low-latency: one context request before model call, one model call, one writeback after answer.
existing workflow Connector/MCP
intercept events MatrixArk
before model call LLM provider
standard output Cursor runtime
show response Connector
after response ingest MatrixArk + MatrixDB
state updates Governance layer
MatrixKV
In Option 2, teams avoid changing user-facing behavior and still get time-aware context, reuse signals, and governance for critical actions.
Local context is not enough
A coding assistant can often answer from local workspace context. A vertical AI product needs more than local files. It needs to know what happened across sessions, which facts are still valid, what the team already approved, what the customer was promised, what source version is canonical, and which prior action should not be repeated.
Legal Cursor
Matters, contracts, clauses, redlines, approvals, obligations, source versions, and client instructions.
Support Cursor
Customers, tickets, refunds, entitlements, escalations, failed troubleshooting steps, and open promises.
Finance Cursor
Teams, projects, approvals, purchases, budgets, vendors, policies, and spend commitments.
Security Cursor
Incidents, alerts, assets, playbooks, analyst actions, containment history, and policy windows.
What this is for
MatrixArk turns vertical AI products into an operational memory layer for daily workflows. Cursor-like teams should focus on outcomes, not data model design.
Support use case
Use ticket history, failed steps, entitlement state, and open promises to keep answers current.
Finance use case
Use approvals, spend, budget state, commitments, and policy versions so decisions are never made on stale numbers.
Security use case
Use incident timeline, containment actions, and owner context to avoid repeated or unsafe responses.
Legal use case
Use active obligations, revisions, and approvals so generated responses are policy-valid and traceable.
Cursor workflow, MatrixArk execution
Cursor should treat MatrixArk like an execution service: send raw user signal and local hints, get back a prompt-ready context pack. MatrixArk handles interpretation, filter selection, time-window rules, permissions, and routing.
Before LLM call
Cursor sends current entity, user intent, and optional local hints.
During serving
MatrixArk validates intent and composes bounded context from TemporalStore and MatrixDB/MatrixKV as needed.
After LLM call
Cursor sends final answer, tool outputs, and user confirmations/edits.
Next request
Memory continuity, anti-repetition, and freshness checks improve with each write-back.
How ingestion works
The vertical Cursor, workflow engine, webhook, or backend writes domain events directly to MatrixArk. Each record carries a workspace path, timestamp, and normal domain JSON. Think of these writes as registered hooks on your event stream. MatrixArk decides which fields become temporal context, source references, permissions, and replay metadata.
ingest_context_record({
workspace: "company_a/platform_infra/project_1",
event_type: "cost_update",
happened_at: "2026-06-11T14:15:00Z",
data: {
actor: "finance_owner",
amount: 18420,
status: "committed",
project_id: "project_1",
reason: "llm_evaluation"
}
})
The customer sends normal domain JSON. MatrixArk maps it to the model, extracts the timestamp and important fields, builds event sequences and summary signals, stores large objects by reference when needed, and records enough metadata for replay.
Ingestion before and after the model answer
A vertical Cursor sends a minimal context signal before asking for a context pack. Extra ingestion can be added during the response flow and after the answer for better continuity. This is how TemporalStore becomes living memory instead of a one-time retrieval system.
Before context retrieval
Cursor sends opened entity, selected project, user action, tool traces, local summary, and fresh domain events.
During context planning
MatrixArk maps raw query or harness plan to internal context routes, validates the serving plan, and queries TemporalStore.
After model output
Cursor writes back accepted answer, tool calls, user corrections, commitments, rejected suggestions, and memory updates.
For the next request
TemporalStore can now block repeated failures, remember decisions, replay context packs, and serve fresher prompt context.
// Before retrieval: capture current working state.
ingest_context_event({
workspace: "company_a/platform_infra/project_1",
event_type: "user_query",
happened_at: "2026-06-12T10:00:00Z",
data: {
raw_user_query: "Can we buy another GPU batch?",
active_page: "project_budget",
selected_entity: "project_1"
}
})
// After model output: teach the next request what happened.
ingest_context_event({
workspace: "company_a/platform_infra/project_1",
event_type: "assistant_answer_final",
context_pack_id: "ctx_123",
happened_at: "2026-06-12T10:00:04Z",
data: {
answer_summary: "Another GPU batch is allowed if spend stays under $50,000.",
accepted_by_user: true,
new_commitments: ["Use spot instances where possible"],
memory_updates: ["GPU spend decision should check Alice's June 10 approval"]
}
})
Simple outside, optimized inside
Customers stay in the business experience. MatrixArk receives workspace context signals and turns them into strict internal shape. No manual tree-walk, no custom query planning for Cursor teams.
what the customer sees:
tenant=company_a, project=project_1, workflow=budget_purchase
what MatrixArk creates inside TemporalStore:
context boundary = tenant/project scope
temporal event sequence = latest operational trail
service index set = MatrixArk-managed, budgeted serving keys
fallback summary pack = broad query outputs written back when needed
MatrixArk owns the hard parts: scope shaping, index selection, timestamp ordering, scan limits, freshness rules, and prompt rendering.
Serving-time query
When the user asks a domain question, the vertical Cursor should not construct TemporalStore filters itself. It should send the raw user request plus lightweight context hints. MatrixArk owns the context-planning step, including an optional small LLM call that turns the raw request into a safe structured plan. If the vertical Cursor already ran its own first LLM pass, it can send that interpreted plan to MatrixArk so MatrixArk can skip the extra planning LLM call and move directly to validation.
// Mode A: MatrixArk plans from raw query.
get_context_pack({
workspace: "company_a/platform_infra/project_1",
raw_user_query: "Can we buy another GPU batch?",
hints: {
active_page: "project_budget",
selected_entity: "project_1",
local_summary: "User is reviewing GPU spend."
},
max_context_tokens: 3000
})
// Mode B: Cursor already used its own LLM to understand the query.
get_context_pack({
workspace: "company_a/platform_infra/project_1",
raw_user_query: "Can we buy another GPU batch?",
harness_plan: {
task_type: "purchase_decision",
needed_context: ["latest_budget_approval", "committed_gpu_spend", "open_commitments"],
domain_terms: { "GPU batch": { context_bucket: "costs", category: "gpu_compute" } }
},
max_context_tokens: 3000
})
The customer asks a business question. MatrixArk either extracts intent itself or accepts the harness-provided intent plan. In both modes, MatrixArk maps phrases like "GPU batch" and "can we buy" to the platform's context model, validates the plan, chooses stores, and sends structured bounded inputs to TemporalStore. The final model receives the context that matters now, not a raw dump of every record.
Can we buy another GPU batch?
MatrixArk plans; TemporalStore serves
MatrixArk should own the safe serving plan. It can use a small planning LLM to understand the raw user query, or it can accept a harness-provided plan when the vertical Cursor already did that first LLM pass. Either way, a deterministic planner validates the plan against tenant policy, permissions, indexes, and serving thresholds. TemporalStore should receive only structured, bounded queries.
Harness sends
Raw user query plus hints, or a harness-generated intent plan from its own first LLM call.
MatrixArk validates
Task type, context dimensions, time windows, filters, stores, fallback route, and context-pack sections.
TemporalStore receives
Validated scope hash, context dimension, index choice, timestamp window, filters, limit, and deadline.
Harness gets back
Prompt-ready context, blocked stale facts, citations, cache hints, and replay metadata.
MatrixArk context-planning LLM output:
task_type = purchase_decision
needed_context = [latest_budget_approval, committed_gpu_spend, open_commitments]
MatrixArk deterministic serving plan:
approvals.latest_active(type = cloud_budget, as_of = request_time)
costs.sum(category = gpu_compute, since = approval.valid_from)
commitments.open(scope = project_1)
stale_context.blocked(scope = project_1)
If the request is too broad:
requires_offline_aggregation({
reason: "query exceeds online filter and scan guardrails",
rejected: ["cross_project_scan", "fuzzy_filter", "group_by"],
suggestion: "narrow scope, use declared index, or read SummaryFact"
})
Cursor-like products may send hints because they know the UI and local state. They should not need to send TemporalStore index names, HASH keys, SQL, or storage routing choices. MatrixArk owns those details so every vertical Cursor can stay infrastructure-agnostic.
When TemporalStore is not the right engine
TemporalStore should protect the prompt-time serving path. Some customer questions are too broad or exploratory for that path: arbitrary JSON filters, fuzzy search, all-team scans, long-range reports, joins, and group-by analytics. MatrixArk should still support those use cases, but route them to the right layer instead of forcing TemporalStore to behave like an OLAP database.
TemporalStore
Bounded context: recent timelines, open commitments, latest approvals, stale-memory blocking, replay, and declared indexed filters.
MatrixDB
Hot serving state: active sessions, latest project summaries, Redis-compatible cache/profile KV, context-pack metadata, and high-QPS operational reads.
OLAP / HSAP layer
Flexible analysis and hybrid serving/analytical processing: arbitrary JSON fields, broad filters, field-segment discovery, long scans, group-by, dashboards, and offline summaries.
MatrixArk planner
One API hides the routing: prompt-time queries go to TemporalStore, hot latest-state reads go to MatrixDB, broad analysis goes to OLAP/HSAP.
same customer event:
approval/cost record arrives once
MatrixArk storage plan:
TemporalStore:
latest active approval, recent costs, open commitments
MatrixDB:
project current-spend summary, active session, cache metadata
OLAP / HSAP:
full JSON event, long-range analysis, dashboards, ad hoc filters
future prompt:
OLAP result -> SummaryFact -> TemporalStore context pack
This keeps the customer experience simple. The vertical Cursor sends the raw request and optional hints. MatrixArk decides whether the answer should come from TemporalStore, MatrixDB, an OLAP/HSAP layer, or a precomputed summary written back into TemporalStore.
Why this is a flagship use case
Vertical Cursors are a natural buyer because their core challenge is not generic chat memory. Their challenge is domain context: custom objects, time validity, team decisions, approvals, source versions, permissions, and replayable prompt inputs.
Zero schema lift
Cursor teams send normal product signals and business questions; MatrixArk converts them into the serving contract internally.
Fresh at request time
Ingestion and bounded serving queries happen in one system, so the context pack reflects recent events.
Token efficient
The model receives active facts, open commitments, and valid records instead of raw histories and duplicate chunks.
Replayable
Teams can reconstruct which approvals, costs, memories, and source versions entered a model call.
Permission-aware
MatrixKV can add canonical permissions, approvals, and workflow truth when customers need stronger boundaries.
Production-ready path
Start with TemporalStore, then add MatrixDB for hot state and MatrixKV for committed truth as scale demands.
The product message
MatrixArk gives vertical Cursor companies the missing backend for domain context: time-aware memory, domain-aware runtime models, online serving queries, stale-context blocking, runtime reuse signals, and replayable context packs.
The harness keeps the interface, workflow, model, and prompt style. TemporalStore provides the context filesystem behind it: what happened, what is valid now, what was approved, what is stale, and what should enter the prompt.