Transform meetings page into context page with tabs

Add structured organization context with 5 markdown sections (Product, Architecture, Team, Processes, Customers) editable inline. Meetings are now a tab within the context page. Moved all GraphQL queries from hooks/graph/MeetingGraph.ts into colocated components following new best practices. Updated database schema, backend services, GraphQL resolvers, and MCP API to support the new context fields and structure.

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2026-03-19 17:42:14 +01:00
parent c2a1843c67
commit a9ebeef0fa
25 changed files with 1156 additions and 380 deletions

View File

@@ -145,7 +145,11 @@ func TestOrganization_UpdateContext(t *testing.T) {
updateOrganizationContext(input: $input) {
context {
organizationId
summary
product
architecture
team
processes
customers
}
}
}
@@ -155,7 +159,11 @@ func TestOrganization_UpdateContext(t *testing.T) {
UpdateOrganizationContext struct {
Context struct {
OrganizationID string `json:"organizationId"`
Summary *string `json:"summary"`
Product *string `json:"product"`
Architecture *string `json:"architecture"`
Team *string `json:"team"`
Processes *string `json:"processes"`
Customers *string `json:"customers"`
} `json:"context"`
} `json:"updateOrganizationContext"`
}
@@ -163,14 +171,17 @@ func TestOrganization_UpdateContext(t *testing.T) {
err := owner.Execute(query, map[string]any{
"input": map[string]any{
"organizationId": owner.GetOrganizationID().String(),
"summary": "Our organization provides compliance solutions.",
"product": "Our product provides compliance solutions.",
"architecture": "Microservices architecture on AWS.",
},
}, &result)
require.NoError(t, err)
assert.Equal(t, owner.GetOrganizationID().String(), result.UpdateOrganizationContext.Context.OrganizationID)
require.NotNil(t, result.UpdateOrganizationContext.Context.Summary)
assert.Equal(t, "Our organization provides compliance solutions.", *result.UpdateOrganizationContext.Context.Summary)
require.NotNil(t, result.UpdateOrganizationContext.Context.Product)
assert.Equal(t, "Our product provides compliance solutions.", *result.UpdateOrganizationContext.Context.Product)
require.NotNil(t, result.UpdateOrganizationContext.Context.Architecture)
assert.Equal(t, "Microservices architecture on AWS.", *result.UpdateOrganizationContext.Context.Architecture)
}
func TestOrganization_Get(t *testing.T) {