MCPcopy Create free account
hub / github.com/compozy/agh / RecordMemoryWriteRejected

Method RecordMemoryWriteRejected

internal/memory/decision.go:424–462  ·  view source on GitHub ↗

RecordMemoryWriteRejected emits an audit event for denied direct write attempts.

(ctx context.Context, event WriteRejectedEvent)

Source from the content-addressed store, hash-verified

422
423// RecordMemoryWriteRejected emits an audit event for denied direct write attempts.
424func (s *Store) RecordMemoryWriteRejected(ctx context.Context, event WriteRejectedEvent) error {
425 if ctx == nil {
426 return errors.New("memory: write rejection context is required")
427 }
428 if s == nil || s.catalog == nil {
429 return nil
430 }
431 metadata := map[string]string{
432 decisionMetadataReasonKey: strings.TrimSpace(event.Reason),
433 "tool_id": strings.TrimSpace(event.ToolID),
434 }
435 payload, err := json.Marshal(metadata)
436 if err != nil {
437 return fmt.Errorf("memory: encode write rejection event metadata: %w", err)
438 }
439 return s.catalog.withCatalogWriteTx(ctx, "memory write rejection event insert", func(tx *storepkg.WriteTx) error {
440 if _, err := tx.ExecContext(
441 ctx,
442 `INSERT INTO memory_events (
443 op, scope, agent_name, agent_tier, workspace_id, session_id,
444 actor_kind, decision_id, target_id, metadata, ts_ms
445 ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
446 memoryEventWriteRejected,
447 nullStringForEmpty(event.Scope.Normalize()),
448 nullStringForEmpty(event.AgentName),
449 nullStringForEmpty(string(event.AgentTier.Normalize())),
450 nullStringForEmpty(event.WorkspaceID),
451 nullStringForEmpty(event.SessionID),
452 nullStringForEmpty(event.ActorKind),
453 nil,
454 nullStringForEmpty(event.TargetID),
455 string(payload),
456 timeToUnixMillis(time.Now().UTC()),
457 ); err != nil {
458 return fmt.Errorf("memory: insert write rejection event: %w", err)
459 }
460 return nil
461 })
462}
463
464func (d storedDecision) record() DecisionRecord {
465 return DecisionRecord{

Callers 1

Calls 6

nullStringForEmptyFunction · 0.85
timeToUnixMillisFunction · 0.85
withCatalogWriteTxMethod · 0.80
ExecContextMethod · 0.65
NormalizeMethod · 0.45
NowMethod · 0.45

Tested by

no test coverage detected