
    ej3                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZdZdZ	dZ
dZdej                  j                  ej                  j                        j                  d      z   Z ej"                  ed	       ej                  j                  Zej                  j                  e      j'                         Zd
 ZddZd Zi Z ej                  e	dz         D ]B  Zej2                  j5                  e       ee      deej2                  j7                  e      <   D  e j8                  dez   dz   d      Ze j<                  e_        ejA                  d      D  cg c]
  }  e!|        c} Z"i deded ee      dej2                  j5                  e      dejA                  d      jG                         d    dejA                  d      jG                         d    dejA                  d      jG                         d    d e$ejA                  d            d  e$ejA                  d!            d" e$ejA                  d#            d$ejA                  d%      jG                         d    d& e%e"      d' ejL                   ejN                   e(e"      d(      jS                               jU                         d)d*D ci c]'  }|ejA                  d+|f      jG                         d    ) c}d,ejA                  d-      jG                         d    d.ejA                  d/      jG                         d    Z+g d0Z,i Z-i Z.e,D ]Y  Z/	 ejA                  d1e/z         jG                         d    e-e/<   ejA                  d2e/z   d3z         D  cg c]
  }  e$|        c} e.e/<   [ g Z3d5g d6fd7g d8fd9d:d;gffD ]c  \  Z/Z4	 ejA                  d<d=jk                  e4      z   d>z   e/z   d?z   e4d    z         D ](  Z6e3jo                  e/ge4D  cg c]  } e6|    	 c} z          * e  ejL                   ejN                  e3d@de2dAB      jS                               jU                         Z8ejA                  dCe
f      jG                         Z9e9r e$e9      ndZ:g Z;e:rOejA                  dDe
e:jy                  dE      e:jy                  dF      f      D ]  Z6e;jo                   e$e6              g Z=dGD ]I  Z>	 e:rDe:jy                  dE      r3e=ejA                  dHe>z   dIz   e:dE   f      D cg c]
  } e$|       c}z  Z=K eej2                  j                  e      dJZ@e@dK   r ej                  e      ZBe@j                  eBj                   ee      ej                  j                  eBj                  e      j'                         ej                  j                  eBj                  e      j'                         dL        edMdN      e@dO<    edP      ZH edQ      ZI ej                  dReH      ZKeKreKj                  dS      ndTZM edUeMz         ZNg ZO ej                  dV      D ]  \  ZQZRZSeRD cg c]	  }|dWvs| c}eRdd eSD ]  ZTeTj                  dX      sej2                  jk                  eQeT      Z	  eVedYdZ[      j                         ZXd\eXv rd]eXj                         v sd^eXv sd_eXj                         v rbeOjo                  e ee      eXj                         D cg c],  }d\|v sd]|j                         v s|j                         dd` . c}ddN da          edbd      Z] edceMz   ddz   d      Z^g Z_ ej                  dedf      D ]9  Z	  eVedYdZ[      D ](  Z` e2e
      e`v sdge`v se_jo                  ee`ddh di       * ;  ej                   eVe	djz               Zb edke+        edlee:e;e=dm        edne-e.ebdoedp        edqee8drdsD  ci c]  } | e-|    
 c} dtdudv        edwedxeIeHeMeNeOdy        edzed{e]e^e_d|       d}g d~g dg dg dg dddZc edec       e+d)   Zddjk                  g de de	 debd    de+d    de:re:jy                  d      nd de:re:jy                  d      nd de:re:jy                  d      nd d e%e;       de de@dK    deM de8 de+d    de+d    de+d    dedd    dedd    dedd    dedd    dedd    de+d,    de+d.    de+d$    de+d&    de+d'    d      Ze eVej2                  jk                  ed      ddY      j                  ee        eg ejN                  ee+e: e%e;      e@eM e%e]       e%e^       e%eO       e%e_      e8 eej2                  jk                  ed            dd@             y#  Y 	xY wc c} w c c}w c c} w # e0$ rZ1d4e-e/<    e2e1      e.e/<   Y dZ1[1dZ1[1ww xY wc c} w #  Y xY wc c}w #  Y exY wc c}w c c}w #  Y xY w#  Y xY wc c} w )    Nz+/opt/struktur/youtube-research/knowledge.dbz0/opt/struktur/reports/aa043-p42/20260828T100641Zi  zC/opt/obsidian-vault/Solutions/E-Mail-Architektur-Hermes-Obsidian.mdz#/opt/struktur/reports/aa043-p43-r1/z%Y%m%dT%H%M%SZT)exist_okc                     t        j                         }t        | d      5 t        fdd      D ]  }|j	                  |        	 d d d        |j                         S # 1 sw Y   |j                         S xY w)Nrbc                  &     j                  d      S )Ni   )read)fs   $/opt/struktur/AA-043-P43-R1-audit.py<lambda>zsha.<locals>.<lambda>   s    qvvg     r   )hashlibsha256openiterupdate	hexdigest)phbr   s      @r	   shar   
   s_    
>>
1Tl 9a&s+8aQXXa[89	9	s   &A!!A9<   c                     t        j                  | ddd|      j                  S # t        $ r}dt	        |      z   cY d }~S d }~ww xY w)NT)shelltextcapture_outputtimeoutzERROR )
subprocessrunstdout	Exceptionrepr)cmdr   es      r	   r   r      s:    ^^CdDQXY```/xQ///s   #% 	AAAAc                     t        t        j                  j                  t        |       dd      5 }t        j                  ||dd       d d d        y # 1 sw Y   y xY w)Nwutf8encodingF   )ensure_asciiindent)r   ospathjoinOUTjsondump)nameobjr   s      r	   r0   r0      s?    
277<<D!#v6i!TYYs1Z_gh=iiiis   AAz/*)sizer   zfile:z?mode=ro&immutable=1)urizpragma foreign_key_check
checked_atdb_path	db_sha256db_sizeknowledge_units_totalz$select count(*) from knowledge_unitsreal_kusz?select count(*) from knowledge_units where legacy_placeholder=0legacy_placeholderz?select count(*) from knowledge_units where legacy_placeholder=1reviewzGselect review_state,count(*) from knowledge_units group by review_stateevidencezKselect evidence_class,count(*) from knowledge_units group by evidence_classgoldzCselect gold_state,count(*) from knowledge_units group by gold_stateintegrity_checkzpragma integrity_checkforeign_key_checklegacy_fk_fingerprint)	sort_keysqueue_status)donequeued
processing
retry_waitfailed_permanentzBselect count(*) from graphiti_import_queue where graphiti_status=?queue_totalz*select count(*) from graphiti_import_queue	release_0zCselect count(*) from graphiti_import_queue where graphiti_release=0)knowledge_unitsknowledge_unit_provenanceknowledge_unit_review_auditvideossource_versionssource_processing_registrygraphiti_import_queuereconciliation_decisionsclaim_groupsclaim_group_memberscontradiction_linksevidence_historymerge_auditsupersession_auditzselect count(*) from zpragma table_info()MISSINGrK   )idknowledge_unit_identity	statementsource_identitysource_version_idcontent_version_hash
provenancesource_locatorevidence_classreview_state
gold_stater;   rL   )knowledge_unit_idr^   source_versionrb   representation_type
created_atrM   rf   verdictzselect ,z from z
 order by F)rk   :)r)   rB   default
separatorsz.select * from graphiti_import_queue where id=?zcselect * from graphiti_import_queue where id<>? and (obsidian_path=? or content_hash=?) order by idobsidian_pathcontent_hash)canonical_obsidian_pathartifact_pathr^   z/select * from source_processing_registry where z=?)r,   existsrs   )r3   r   	mtime_utc	ctime_utczwgit -C /opt/obsidian-vault log --all --follow --format='%H %cI %s' -- 'Solutions/E-Mail-Architektur-Hermes-Obsidian.md'   git_historyz,systemctl cat obsidian-graphiti-import.timerzsystemctl show obsidian-graphiti-import.timer --property=ActiveState,UnitFileState,LastTriggerUSec,NextElapseUSecRealtime,Triggers --valuez\nUnit=([^\s]+)   z obsidian-graphiti-import.servicezsystemctl cat z/opt/struktur>   .gitlogsreports__pycache__node_modules)z.pyz.shz.servicez.timerr%   ignore)r'   errorsrQ   INSERTinsertqueue   )r,   r   matcheszfjournalctl --since "2026-08-28 10:05:00 UTC" --until "2026-08-28 10:15:00 UTC" -o short-iso --no-pagerzjournalctl -u z\ --since "2026-08-28 10:05:00 UTC" --until "2026-08-28 10:15:00 UTC" -o short-iso --no-pagerz/opt/struktur/**/*.jsonl)	recursivez%E-Mail-Architektur-Hermes-Obsidian.mdi  )filelinez/p42-baseline.jsonzp43-r1-live-baseline.jsonzp43-r1-queue-1281.json)r5   	queue_rowsame_path_or_hash_rowsregistry_matcheszp43-r1-db-diff.jsonzP42 artifact contains no complete per-table snapshot or KU core fingerprint; exact row-level historical diff cannot be reconstructed from it)current_tablescurrent_schemap42_artifact_baselinecomparison_limitp42_artifact_hasheszp43-r1-ku-core-fingerprint.jsonz?sha256(canonical JSON of selected KU/provenance/review columns))rK   rL   rM   z#not present in frozen P42 artifactsz%not reconstructable from P42 artifact)r5   ku_core_fingerprint	algorithmr   p42_core_fingerprint
comparisonzp43-r1-timer-audit.jsonzobsidian-graphiti-import.timer)r5   
timer_unit
timer_showtimer_unit_textserviceservice_unit_textwriter_insert_siteszp43-r1-journal-audit.jsonz)2026-08-28T10:05:00Z/2026-08-28T10:15:00Z)r5   windowall_journalservice_journalqueue_or_source_hitszP43 staging only)KU_CORE_FINGERPRINTLEGACY_FK_FINGERPRINTSCHEMA_FINGERPRINTGRAPHITI_QUEUE_STATE)zKU core changezKU schema changezlegacy FK fingerprint changezgraphiti_release != 0zP43 Graphiti POSTzP43 Neo4j writezunattributed P43 queue mutation)z6provenance links new row to authorized scanner/serviceznot caused by P43 processzgraphiti_release remains 0z'delta classified INDEPENDENT_AUTHORIZED)
P43_CAUSEDINDEPENDENT_AUTHORIZEDINDEPENDENT_UNAUTHORIZEDUNCLEAR)zP43_CAUSED=0zINDEPENDENT_UNAUTHORIZED=0z	UNCLEAR=0zgraphiti_release=0znot suitable alone for multi-hour read-only staging while independent queue writers may legitimately write; use component fingerprints plus attributed queue delta)scopebaseline_componentsstop_on%allow_independent_queue_delta_only_ifqueue_delta_classespass_conditiontotal_db_hash_gatez$p43-r1-protection-gate-proposal.json uN   # AA-043-P43-R1 – Ursache Queue-ID 1281 und Schutzbaseline

Prüfzeitpunkt: zG UTC

## A. Ausgangslage

P42-DB-Hash (historischer Teilstand, Bericht z): `z`. Aktueller Live-Hash: `uq   `.

## B. Queue-ID 1281

Queue-ID 1281 wurde vollständig read-only aus `graphiti_import_queue` gelesen. Status=`graphiti_statusznicht vorhandenz`, `graphiti_release`=`graphiti_releasez`, created_at=`ri   u.   `. Gleicher Pfad/Content-Hash ältere Zeilen: z.

## C. Source-Datei

`z` existiert=u   ; Details und Hash im Queue-Artefakt/Reportbund.

## D–F. Timer, Service, Journal

Timer=obsidian-graphiti-import.timer; Service=`u  `. Die Unit- und Journaltexte sind vollständig in den JSON-Artefakten erhalten. Eine eindeutige Korrelation Queue-ID 1281 ↔ Timer-/Service-Lauf ist nur dann JA, wenn das Journal die ID bzw. den exakten Pfad im Zeitfenster ausweist; siehe `p43-r1-journal-audit.json`.

## G–H. Writer und Requeue

Relevante Queue-Insert-Stellen wurden read-only inventarisiert. Eine Klassifikation als `LEGITIMATE_NEW_VERSION`, `LEGITIMATE_NEW_SOURCE`, `EXPECTED_REQUEUE`, `DUPLICATE_QUEUE_INSERT` oder `UNCLEAR` folgt ausschließlich aus den gespeicherten Pfad-/Hash-/Versions- und Journalbelegen; kein Eintrag wurde gelöscht.

## I. KU-Core und Diff

Aktueller KU_CORE_FINGERPRINT=`uN  `. Die eingefrorenen P42-Artefakte enthalten keinen vorherigen KU-Core-Fingerprint und keinen vollständigen Per-Table-Snapshot. Ein exakter historischer Row-Level-Diff ist daher aus den vorhandenen P42-Artefakten **nicht rekonstruierbar**. Das wird nicht durch den Gesamt-DB-Hash ersetzt.

## J–M. Baseline-Bewertung

Aktuell: KUs=z, echte KUs=z	, Legacy=z; Queue done=rD   z	, queued=rE   z, processing=rF   z, retry_wait=rG   z, failed_permanent=rH   z	, gesamt=z; `graphiti_release=0`=z; integrity=`z`; FK=z; Legacy-FK-Fingerprint=`u  `.

Der Gesamt-DB-Hash ist während unabhängiger Queue-Schreibvorgänge kein geeignetes alleinige Gate. Künftig müssen KU-Core, Legacy-FK, KU-Schema und attribuierter Queue-Delta getrennt geprüft werden.

## N. Korrigiertes P43-Gate

P43 stoppt bei KU-Core-/KU-Schema-/Legacy-FK-Änderung, `graphiti_release != 0`, P43-eigenen Graphiti-/Neo4j-Writes oder nicht attribuierter P43-Queue-Mutation. Eine autorisierte unabhängige `graphiti_release=0`-Queue-Zeile darf nach eindeutiger Herkunft als `INDEPENDENT_AUTHORIZED` akzeptiert werden.

## O. Freigabeentscheidung

**Empfehlung B: Aktivität plausibel, aber nicht vollständig attribuierbar. Weitere Untersuchung erforderlich.** Die konkrete Queue-Zeile und eine Bestandsänderung sind belegt. Ohne belastbare Journal-/Prozesskorrelation kann der reguläre Timerpfad nicht abschließend als Erzeuger von ID 1281 bestätigt werden.

## P. Schutzstatus

P43-R1 DB-Schreibvorgänge=0; KU-INSERT/UPDATE/DELETE=0; Merges=0; Evidence-/Review-/Gold-Änderungen=0; Backfill=0; Queue-Schreibvorgänge=0; Graphiti-POSTs=0; Neo4j-Writes=0; Services verändert=0; Timer verändert=0.

**Arbeitsauftrag AA-043-P43-R1 erledigt.**
zAA-043-P43-R1.mdr$   r&   )outbaseline
queue_1281	same_rowssourcer   journal_bytesservice_journal_byteswriter_sitesrequest_hitsr   report_sha256)r)   )r   )hsqlite3r/   r   r+   globr   datetimereDBP42QIDSRCnowtimezoneutcstrftimer.   makedirsUTC	isoformatr   r   r0   
p42_hashesr   r,   getsizebasenameconnectcRowrow_factoryexecutetuplefkfetchonedictlenr   dumpssortedencoder   r   relevanttablesschemastr   r"   strcorecolsr-   rappendku_coreqrqrowsamegetregcolisfilesource_infostatstr   st_sizefromtimestampst_mtimest_ctime
unit_timer
show_timersearchservice_matchgroupr   unit_servicehitswalkrootdirsfilesr   endswithr   r   r   upperlower
splitlinesstripjournaljournal_servicer   lnloadp42baseproposalqstatusreportwriteprint)xkr   dr  s   00000r	   <module>r     s   A A A A06I)(*;*;*?*?@Q@Q@U@U*V*_*_`p*qq C H$5$5$9$9#((*
0j 
	3t8	 A.0ggooa.@#a&&Qj!!!$% '//'"*33=W[[q}ii :;<E!H< 
u,s  
u9R  
uCG  
uIbggooVXFY  
uZqrsr{r{  }c  sd  sm  sm  so  pq  sr  
u  s}  ~  ~G  ~G  HI  ~J  ~S  ~S  ~U  VW  ~X  
u  Ym  no  nw  nw  xy  nz  nC  nC  nE  FG  nH  
u  IQ  RV  WX  W`  W`  aj  Wk  Rl  
u  mw  x|  }~  }F  }F  GT	  }U	  xV	  
u  W	]	  ^	b	  c	d	  c	l	  c	l	  m	r
  c	s
  ^	t
  
u  u
F  GH  GP  GP  Qi  Gj  Gs  Gs  Gu  vw  Gx  
u  yL  MP  QS  MT  
u  Ul  m{  mt  m{  m{  |F  |@  |F  |F  GM  NP  GQ  \`  |a  |h  |h  |j  mk  mu  mu  mw  
u  xF  vt  Gu  qr  HI  JK  JS  JS  TX  Z[  Y]  J^  Jg  Jg  Ji  jk  Jl  Hl  Gu  
u  vC  DE  DM  DM  Nz  D{  DD  DD  DF  GH  DI  
u  JU  VW  V_  V_  `e  Vf  Vo  Vo  Vq  rs  Vt  
u 
s	27	 ?A?II-a/099;A>&) yy)=a)?)CDE!d1gE'!*? !  #l  m  oJ  Kw  nx  zW  Yl  mv  Xw  yx  y FAd99Ysxx~-h6q8Ed1gMNuaPTP[P[]^\_os`tjkabcdae`t\tPuu 	ztzz$EDQT`ijqqst~~  	A99=sfENNPceW[\^W_koRV
))y{~  @D  @H  @H  IX  @Y  Z^  Zb  Zb  cq  Zr  {s  t  JQ  vz  vA  vA  BF  GH  BI  vJ  JH C	dhh'AII&WX[&[\`&`cghwcxbz{
|q47
||3 !45xBGGCL+$$RZZSV^VgVgVuVuvx  wB  wB  CF  WG  WQ  WQ  WS  `h  `q  `q  `  `  @B  @K  @K  LO  `P  `Z  `Z  `\  &]  ^  !Z  []  ^]=>
  \  ]
bii*:6Zg@S@STU@V  nP!')*rww/ ODe	]Q&\\!	]a
 QZZ12WW\\$q1	ax	0	5	5	7D$&H

,DTXHX\cgkgqgqgs\svz  wB  wB  KL  VY  Z[  V\  CG  CR  CR  CT  gP  }  Xo  su  Xu  yA  EG  EM  EM  EO  yO  hj  hp  hp  hr  sw  tw  hx  gP  QT  RT  gU  CV  wW 	tuwx$W,  .L  L  MO  P	-	= AF(3 xb	#h"n?2E|GZGZcdlnotptlu[vGwx 			$s//01   *D1IX[hl  GK  _b  Kc  -d  fj  k@  SY  kr  KR  ft  KU  AV  fW  Y]  ^  NQ  ho  |}	  e
r  O
s  `
a
  P
Q
  R
X
  Y
Z
  R
[
  P
[
  O
s  Kp  ~e  @f  Yg  im  nG  VY  gG  U_  r|  GN  co  FJ  HK  iL  NR  Sn  }@  Ju  DK  ^m  EQ  oR  NS  gy  Pk  vZ  C`  wC  Uc  y]"  ^^"  U]  `"d"  e"K#  L#T#  `"U#   *\8  *\8-}  *\8  B  ~C  *\8  CN  *\8  OR  NS  *\8  SW  *\8  X_  `k  Xl  Wm  *\8  mF  *\8  GO  P[  G\  F]  *\8  ]R  *\8  rv  SW  S[  S[  \m  Sn  |M  RN  *\8  Ne  *\8  FJ  fj  fn  fn  oA  fB  Pa  eb  *\8  bq  *\8  L	P	  rv  rz  rz  {G	  rH	  V	g	  qh	  *\8  h	V
  *\8  W
Z
  [
_
  W
`
  V
a
  *\8  a
}
  *\8  ~
A  }
B  *\8  BN  *\8  OZ  [c  Od  Ne  *\8  em  *\8  nu  mv  *\8  v^  *\8  _f  ^g  *\8  gy  *\8  zB  CZ  z[  y\  *\8  \h  *\8  iq  r|  i}  h~  *\8  ~G  *\8  HP  Qe  Hf  Gg  *\8  gt  *\8  u|  }C   uD   tE   *\8  E N   *\8  O V   W _   O `   N a   *\8  a n   *\8  o v   w C!  o D!  n E!  *\8  E!R!  *\8  S!Z!  [!g!  S!h!  R!i!  *\8  i!|!  *\8  }!D"  E"W"  }!X"  |!Y"  *\8  Y"b"  *\8  c"k"  l"y"  c"z"  b"{"  *\8  {"R#  *\8  S#[#  \#g#  S#h#  R#i#  *\8  i#v#  *\8  w##  @$Q$  w#R$  v#S$  *\8  S$Y$  *\8  Z$b$  c$v$  Z$w$  Y$x$  *\8  x$Q%  *\8  R%Z%  [%r%  R%s%  Q%t%  *\8  t%Y8  *\8& RWW\\#()#v > D DV L jdjjxTcRVialw~  PS  T[  P\  ux  yH  uI  Y\  ]a  Yb  ru  vB  rC  Za  ru  vx  v}  v}  vB  vB  CF  GY  vZ  r[  \  jo  p  qM  = Gu F>)q	AWQZ>
 au } 
^ gP4  O
ss   !A g8!h ,hAhh
h>Ah7h2h7(2ih?)i	i'i%A*ii+i iiii&8g=
hh/h**h/2h77h<?ii	iii#