Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
839 commits
Select commit Hold shift + click to select a range
b225420
chore: repackage last green Beds24 refresh token artifact safely
elcidspain Aug 18, 2026
936ce08
fix: download Beds24 artifact through unauthenticated signed redirect
elcidspain Aug 18, 2026
e97ffc0
fix: accept verified Beds24 refresh token format from green run
elcidspain Aug 18, 2026
b656aba
Refactor photo upload workflow for Beds24
elcidspain Aug 18, 2026
b26b25d
chore: finalize Beds24 fallback artifact and restore exact manual wor…
elcidspain Aug 18, 2026
90670bb
fix: upload Beds24 FULL_no_crop photos with secret-backed login
elcidspain Aug 18, 2026
d429871
fix: keep Beds24 UI photo upload manual-only
elcidspain Aug 18, 2026
537adc7
chore: add one-shot controller for Beds24 UI photo upload
elcidspain Aug 18, 2026
eb19352
fix: bind Beds24 UI photo upload to Production environment
elcidspain Aug 18, 2026
74c1ab2
chore: remove one-shot Beds24 UI photo upload controller
elcidspain Aug 18, 2026
f78609b
Initial plan
Codex Aug 18, 2026
65724a4
Fix Beds24 login selector handling in UI photo upload workflow
Codex Aug 18, 2026
64bcb1a
fix: use direct BEDS24_USERNAME/PASSWORD login, remove login_payload.…
elcidspain Aug 18, 2026
9d950e5
Delete images/input_images directory
elcidspain Aug 18, 2026
38df836
Delete images/output_images directory
elcidspain Aug 18, 2026
4bb2a92
Delete images directory
elcidspain Aug 18, 2026
c101829
Add AUMARA Gemini and Grok connectivity smoke
elcidspain Aug 19, 2026
7334250
Make AUMARA agent connectivity receipt observable
elcidspain Aug 19, 2026
28580da
Record AUMARA agent connectivity receipt
elcidspain Aug 19, 2026
d789b3e
Add AUMARA Actions heartbeat
elcidspain Aug 19, 2026
6d280ec
Record AUMARA Actions heartbeat
elcidspain Aug 19, 2026
be2344b
Broaden AUMARA provider secret discovery
elcidspain Aug 19, 2026
d47bca0
Record AUMARA agent connectivity receipt
elcidspain Aug 19, 2026
9484a00
Discover AUMARA provider binding names safely
elcidspain Aug 19, 2026
50c4e77
Record AUMARA content team state
elcidspain Aug 19, 2026
4832860
fix: harden Beds24 full-frame photo upload
elcidspain Aug 19, 2026
4dd08ea
Initial plan
Codex Aug 19, 2026
661545b
Fix live canary workflow contract for CI test
Codex Aug 19, 2026
cf6e232
Discover Beds24 photo sync bindings
elcidspain Aug 19, 2026
6aa8abd
Make Beds24 discovery PR-triggerable
elcidspain Aug 19, 2026
45ebeec
Trigger Beds24 photo sync discovery
elcidspain Aug 19, 2026
f39d9ff
Run Beds24 discovery on PR trigger
elcidspain Aug 19, 2026
541092a
Trigger Beds24 photo sync discovery
elcidspain Aug 19, 2026
fbaccd4
Probe repository Beds24 secrets without environment gate
elcidspain Aug 19, 2026
e1c22f4
Trigger Beds24 repository secret discovery
elcidspain Aug 19, 2026
0a4428b
Run Beds24 discovery on push trigger
elcidspain Aug 19, 2026
cac9d2d
Persist Beds24 discovery receipt on trigger branch
elcidspain Aug 19, 2026
66d127d
Initial plan
Copilot Aug 19, 2026
d4e1b4a
Fix shadow CI: add --property 324882 and use pip upgrade in live work…
Copilot Aug 19, 2026
65f3ebd
Merge pull request #63 from elcidspain/copilot/fix-shadow-action-job
elcidspain Aug 19, 2026
3ebc1fd
Merge pull request #15 from elcidspain/agent/beds24-guest-message-ing…
elcidspain Aug 19, 2026
be88675
Merge pull request #44 from elcidspain/copilot/fix-failing-github-act…
elcidspain Aug 19, 2026
4ffef3e
Merge origin/main and resolve workflow conflict
Copilot Aug 19, 2026
20a825a
Initial plan
Copilot Aug 19, 2026
97bb7c7
Merge origin/main into agent/elcid-country-club-recovery
Copilot Aug 19, 2026
e226e81
Harden merged workflow and template fixes
Copilot Aug 19, 2026
5e62544
Merge pull request #59 from elcidspain/codex/fix-github-actions-job-f…
elcidspain Aug 19, 2026
de0d17f
Fix merged policy and workflow issues
Copilot Aug 19, 2026
3510214
Align workflow bot identities
Copilot Aug 19, 2026
75b087f
Support refresh credential in discovery workflow
Copilot Aug 19, 2026
a7af00f
Hide governance self-test secret fixture
Copilot Aug 19, 2026
de21183
Fix discover workflow auth fallback and PR guard
Copilot Aug 19, 2026
e671070
Trigger Beds24 photo sync discovery on main
elcidspain Aug 19, 2026
2bad2f3
Merge branch 'main' into copilot/fix-github-actions-job-shadow
elcidspain Aug 19, 2026
f4aed8b
Record Beds24 photo sync discovery
elcidspain Aug 19, 2026
1c51cf0
Merge pull request #64 from elcidspain/copilot/fix-github-actions-job…
elcidspain Aug 19, 2026
ebcd8e6
Record Beds24 photo sync discovery
elcidspain Aug 19, 2026
340e71f
Resolve PR merge conflict
Copilot Aug 19, 2026
7600cc2
Merge main into branch to resolve conflicts
Copilot Aug 19, 2026
c140a7d
Merge origin/main into agent/beds24-photo-sync-trigger-v2
Copilot Aug 19, 2026
7df213c
Harden merged discovery workflow
Copilot Aug 19, 2026
b19e1ef
Scope discovery workflow permissions
Copilot Aug 19, 2026
f90cbb5
Support refresh credential in Beds24 photo sync discovery
Copilot Aug 19, 2026
ae8eb4e
Resolve merge conflicts with main
Codex Aug 19, 2026
94e4fa0
Merge origin/main into agent/beds24-photo-sync-trigger-v3
Copilot Aug 19, 2026
0a2b00e
Record Beds24 photo sync discovery
elcidspain Aug 19, 2026
c20f25b
Normalize Beds24 secrets in discovery workflow
Copilot Aug 19, 2026
ba67074
Fix discover job to tolerate Beds24 auth failures
Copilot Aug 19, 2026
139c1af
Record Beds24 photo sync discovery
elcidspain Aug 19, 2026
f2af2c3
Fix AUMARA Staff boot hang
elcidspain Aug 19, 2026
43784ef
Restore Nominalia Staff deploy metadata
elcidspain Aug 19, 2026
342d712
Use verified Nominalia FTP username
elcidspain Aug 19, 2026
44202a9
Add production Staff browser smoke
elcidspain Aug 19, 2026
deeddaa
Make Staff browser smoke timeout-safe
elcidspain Aug 19, 2026
2cf071f
Fix AUMARA Staff renderer loop
elcidspain Aug 19, 2026
3b90257
Deploy Staff renderer hotfix to Nominalia
elcidspain Aug 19, 2026
bd6a223
Potential fix for pull request finding
elcidspain Aug 19, 2026
be4d03b
Potential fix for pull request finding
elcidspain Aug 19, 2026
4892cbc
Potential fix for pull request finding
elcidspain Aug 19, 2026
1bcbf58
Trigger AUMARA Staff production cutover
elcidspain Aug 19, 2026
73da423
Merge branch 'main' into agent/staff-prod-browser-smoke
elcidspain Aug 19, 2026
642db89
Merge pull request #68 from elcidspain/agent/staff-prod-browser-smoke
elcidspain Aug 19, 2026
fd4c334
Merge pull request #40 from elcidspain/codex/fix
elcidspain Aug 19, 2026
ced51fd
Force AUMARA Staff Nominalia deployment
elcidspain Aug 19, 2026
7873606
Merge origin/main and resolve trigger conflict
Copilot Aug 19, 2026
684cdfc
Initial plan
Copilot Aug 19, 2026
6fc2f77
Fix undefined options variable in staff prod browser smoke test
Copilot Aug 19, 2026
fcffc87
Merge pull request #72 from elcidspain/copilot/fix-smoke-job-failure
elcidspain Aug 19, 2026
ee1e3f0
Record Beds24 photo sync discovery
elcidspain Aug 19, 2026
67edf52
Merge pull request #60 from elcidspain/agent/beds24-photo-sync-trigger
elcidspain Aug 19, 2026
1c24b80
Merge pull request #58 from elcidspain/codex/fix-github-actions-job-a…
elcidspain Aug 19, 2026
ce3c366
Potential fix for pull request finding
elcidspain Aug 19, 2026
2479911
Potential fix for pull request finding
elcidspain Aug 19, 2026
a194fd9
Address EL CID review feedback
Copilot Aug 19, 2026
a53d349
Fix Vercel route guardrails
Copilot Aug 19, 2026
2b68f9a
Fix EL CID checker URL parsing
Copilot Aug 19, 2026
a48de90
Refine EL CID host validation
Copilot Aug 19, 2026
ac7e26d
Merge origin/main into agent/aumara-v3-preview-reconcile
Copilot Aug 19, 2026
a1845a0
Merge main and resolve PR conflicts
Copilot Aug 19, 2026
125dd01
Potential fix for pull request finding
elcidspain Aug 19, 2026
cf6cc1b
Use absolute walkthrough media URLs in v5 review page
Copilot Aug 19, 2026
011c61b
Address PR review thread corrections
Copilot Aug 19, 2026
c6a36ea
Clarify inventory conflict handling in baseline
Copilot Aug 19, 2026
4663df1
Potential fix for pull request finding
elcidspain Aug 19, 2026
d96a170
Complete EN/ES toggle coverage on v5 review page
Copilot Aug 19, 2026
900f38a
Add brand-red accent token to v5 review page
Copilot Aug 19, 2026
ac83835
Merge pull request #2 from elcidspain/agent/aumara-v3-preview-reconcile
elcidspain Aug 19, 2026
4703df0
Record EL CID production probe [skip ci]
github-actions[bot] Aug 19, 2026
8888fd4
Limit Vercel config scope
Copilot Aug 19, 2026
c1e3d5a
Merge pull request #3 from elcidspain/agent/elcid-country-club-recovery
elcidspain Aug 19, 2026
9cb12a8
Record EL CID root deployment evidence [skip ci]
github-actions[bot] Aug 19, 2026
fd0b0a0
Record EL CID production probe [skip ci]
github-actions[bot] Aug 19, 2026
61f2812
Merge branch 'main' into copilot/fix-with-copilot-one-more-time
elcidspain Aug 19, 2026
135fdc6
Merge pull request #39 from elcidspain/copilot/fix-with-copilot-one-m…
elcidspain Aug 19, 2026
c3fdca5
Merge pull request #61 from elcidspain/agent/beds24-photo-sync-trigge…
elcidspain Aug 19, 2026
5a096f0
Initial plan
Copilot Aug 19, 2026
63b0e70
Add Beds24 binding inventory
elcidspain Aug 20, 2026
d91a154
Trigger Beds24 binding inventory
elcidspain Aug 20, 2026
a022408
Recheck Beds24 live content for Booking sync
elcidspain Aug 20, 2026
db403c6
Schedule temporary Beds24 binding inventory
elcidspain Aug 20, 2026
eba1fcb
Schedule temporary Beds24 live discovery
elcidspain Aug 20, 2026
58ead8c
Recover Beds24 V1 content shape safely
elcidspain Aug 20, 2026
0ede0af
Probe repo-scoped Beds24 bindings without environment gate
elcidspain Aug 20, 2026
3ed3dd6
Add Beds24 binding inventory controller
elcidspain Aug 20, 2026
a29bfba
Record Beds24 V1 content shape [skip ci]
github-actions[bot] Aug 20, 2026
1dbb19e
Merge branch 'main' into copilot/fix-208400175-1231153784-e28fd36a-19…
elcidspain Aug 20, 2026
d563258
Add one-shot Beds24 photo sync controller
elcidspain Aug 21, 2026
47dcb35
Add one-shot Beds24 exchange artifact recovery
elcidspain Aug 21, 2026
37f14f3
Record Beds24 exchange artifact recovery 32444954538 [skip ci]
github-actions[bot] Aug 21, 2026
433b5e3
Record Beds24 exchange artifact recovery 32444992286 [skip ci]
github-actions[bot] Aug 21, 2026
22fbe3c
Recover live Beds24 exchange artifacts safely
elcidspain Aug 21, 2026
0ad27ba
Initial plan
Copilot Aug 21, 2026
b8bdb2b
Record live Beds24 artifact recovery 32445042671 [skip ci]
github-actions[bot] Aug 21, 2026
a52ec30
Add one-shot Beds24 live recovery dispatcher
elcidspain Aug 21, 2026
28f0eb4
Initial plan
Codex Aug 21, 2026
f30db19
Record live Beds24 artifact recovery 32445108016 [skip ci]
github-actions[bot] Aug 21, 2026
bc74dd2
Add rotation-safe Beds24 photo sync from encrypted vault
elcidspain Aug 21, 2026
530bba4
Extend one-shot dispatcher to Beds24 vault photo sync
elcidspain Aug 21, 2026
71450e2
Add rotation-safe Beds24 photo sync runner
elcidspain Aug 21, 2026
32fa929
Make Beds24 vault photo sync dispatchable and script-backed
elcidspain Aug 21, 2026
af5de59
Route verified Beds24 photo controller through rotation-safe vault sync
elcidspain Aug 21, 2026
d12ac99
Record rotation-safe Beds24 photo sync 32445197363 [skip ci]
github-actions[bot] Aug 21, 2026
10ecbdf
Add deterministic vault Beds24 photo sync runner
elcidspain Aug 21, 2026
d21e8c6
Trigger rotation-safe Beds24 photo sync
elcidspain Aug 21, 2026
26cc003
Add read-only Beds24 account scope probe
elcidspain Aug 21, 2026
b3fe4f8
Trigger Beds24 account scope probe
elcidspain Aug 21, 2026
89c65c1
Record Beds24 account scope probe 32445671909 [skip ci]
github-actions[bot] Aug 21, 2026
435df0c
Record rotation-safe Beds24 photo sync 32445487292 [skip ci]
github-actions[bot] Aug 21, 2026
7af5077
Retry Beds24 account scope probe
elcidspain Aug 21, 2026
b3c5b3d
Record Beds24 account scope probe 32445735846 [skip ci]
github-actions[bot] Aug 21, 2026
807193a
Add secure Beds24 UI handshake initializer
elcidspain Aug 21, 2026
b09fd4c
Trigger secure Beds24 UI handshake init
elcidspain Aug 21, 2026
55ed9c7
Initialize Beds24 UI encrypted handshake 32445941426 [skip ci]
github-actions[bot] Aug 21, 2026
142bf7c
Add secure Beds24 UI photo upload handshake
elcidspain Aug 21, 2026
2b48a6a
Provide encrypted Beds24 UI credential to one-shot handshake
elcidspain Aug 21, 2026
3457fe1
Retry secure Beds24 UI credential trigger
elcidspain Aug 21, 2026
e29a5b8
Temporarily route verified controller to secure Beds24 UI upload
elcidspain Aug 21, 2026
0cb92ef
Beds24 UI handshake state FAILED [skip ci]
github-actions[bot] Aug 21, 2026
6f29617
Beds24 UI handshake state FAILED [skip ci]
github-actions[bot] Aug 21, 2026
80e8890
Merge pull request #73 from elcidspain/copilot/fix-208400175-12311537…
elcidspain Aug 21, 2026
052e443
Merge branch 'main' into copilot/fix-208400175-1231153784-1754d2ee-d8…
elcidspain Aug 21, 2026
0acbf24
Merge pull request #78 from elcidspain/copilot/fix-208400175-12311537…
elcidspain Aug 21, 2026
53d68d6
Merge pull request #79 from elcidspain/codex/fix-208400175-1231153784…
elcidspain Aug 21, 2026
1639307
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
d32b9d7
Initial plan
Codex Aug 21, 2026
26619ac
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
cbae91b
Relax Beds24 photo sync discovery auth/content failure exits
Codex Aug 21, 2026
9567571
Record Beds24 photo sync discovery [skip ci]
github-actions[bot] Aug 21, 2026
59116f9
Initial plan
Codex Aug 21, 2026
aa37552
Handle Beds24 auth drift in shadow workflow
Codex Aug 21, 2026
ef0172d
Initial plan
Codex Aug 21, 2026
83bdc11
Handle Beds24 shadow auth drift with degraded summary fallback
Codex Aug 21, 2026
8ce4af9
Initial plan
Codex Aug 21, 2026
d226d7b
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
340c693
Initial plan
Codex Aug 21, 2026
5642760
Handle shadow auth/read failures with degraded summary fallback
Codex Aug 21, 2026
53893fb
Make Beds24 discovery auth/content failures non-fatal
Codex Aug 21, 2026
de947df
Record Beds24 photo sync discovery [skip ci]
github-actions[bot] Aug 21, 2026
1ff505c
Initial plan
Codex Aug 21, 2026
c86604c
Make Beds24 photo sync discovery auth/content failures non-fatal
Codex Aug 21, 2026
270b550
Initial plan
Codex Aug 21, 2026
24dc6da
Make Beds24 discovery auth/content failures non-fatal
Codex Aug 21, 2026
c156fb5
Merge pull request #92 from elcidspain/codex/fix-github-actions-job-a…
elcidspain Aug 21, 2026
85b3a98
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
6a199d5
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
ad0b8f7
Merge pull request #94 from elcidspain/codex/fix-github-actions-job-o…
elcidspain Aug 21, 2026
9e12f94
Merge pull request #93 from elcidspain/codex/fix-github-actions-job-y…
elcidspain Aug 21, 2026
cf1cf7d
Merge pull request #95 from elcidspain/codex/fix-github-actions-job-p…
elcidspain Aug 21, 2026
7fd2325
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
7d46272
Merge branch 'main' into codex/fix-github-actions-job-f08c3a19-5997-4…
elcidspain Aug 21, 2026
7dbc225
Merge pull request #96 from elcidspain/codex/fix-github-actions-job-f…
elcidspain Aug 21, 2026
dcf17b0
Merge branch 'main' into codex/fix-github-actions-job-ab9b3851-446a-4…
elcidspain Aug 21, 2026
e8d9b6a
Merge pull request #97 from elcidspain/codex/fix-github-actions-job-a…
elcidspain Aug 21, 2026
4016bb2
Merge pull request #98 from elcidspain/codex/fix-github-actions-job-f…
elcidspain Aug 21, 2026
6c25994
Merge pull request #98 from elcidspain/codex/fix-github-actions-job-f…
elcidspain Aug 21, 2026
c1ba40b
Merge pull request #89 from elcidspain/codex/fix-208400175-1231153784…
Codex Aug 21, 2026
d26afdc
Merge branch 'main' into agent/beds24-photo-sync-trigger-v3
elcidspain Aug 21, 2026
d20e480
Merge pull request #62 from elcidspain/agent/beds24-photo-sync-trigge…
elcidspain Aug 21, 2026
855ffa0
Merge branch 'main' into automation/threads-insights
elcidspain Aug 21, 2026
7233c74
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
827b4fc
Fix gdown usage in preview workflow
Copilot Aug 21, 2026
3605ee7
Potential fix for pull request finding
elcidspain Aug 21, 2026
fe4323d
Potential fix for pull request finding
elcidspain Aug 21, 2026
77d7808
Potential fix for pull request finding
elcidspain Aug 21, 2026
8614ef2
Route Threads summary mail through sendMail
Copilot Aug 21, 2026
92dd5fc
Potential fix for pull request finding
elcidspain Aug 21, 2026
495ffa7
Address Threads collector review feedback
Copilot Aug 21, 2026
8ec861d
Fix sendSummary to delegate safety gates to sendMail
Copilot Aug 21, 2026
e9e0ea5
Merge pull request #1 from elcidspain/automation/threads-insights
elcidspain Aug 21, 2026
9d56ee8
Initial plan
Copilot Aug 21, 2026
668cd89
Initial plan
Copilot Aug 21, 2026
48daf8b
Initial plan
Copilot Aug 21, 2026
7041fd5
Initial plan
Copilot Aug 21, 2026
2979d34
Initial plan
Copilot Aug 21, 2026
9715aab
Merge pull request #104 from elcidspain/copilot/fix-review-comment-38…
elcidspain Aug 21, 2026
2c482c7
Merge pull request #103 from elcidspain/copilot/fix-code-for-review-c…
elcidspain Aug 21, 2026
74d3e50
Merge pull request #102 from elcidspain/copilot/fix-code-review-comment
elcidspain Aug 21, 2026
e28a5a5
Merge pull request #101 from elcidspain/copilot/fix-review-comment-38…
elcidspain Aug 21, 2026
9f8623a
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
da3b61b
Merge pull request #100 from elcidspain/copilot/fix-review-comments
elcidspain Aug 21, 2026
ba74603
Initial plan
Copilot Aug 21, 2026
d1233e0
Initial plan
Copilot Aug 21, 2026
ec7f185
Use deterministic daily checkpoint key for Threads Airtable upsert
Copilot Aug 21, 2026
3e93caf
Merge pull request #105 from elcidspain/copilot/fix-code-review-comme…
elcidspain Aug 21, 2026
22655e5
Initial plan
Copilot Aug 21, 2026
d0f3458
Initial plan
Copilot Aug 21, 2026
ac4b173
Initial plan
Codex Aug 21, 2026
6b39ce7
Enable issue-comment retry for Beds24 vault sync dispatch
Codex Aug 21, 2026
039c26e
Merge pull request #109 from elcidspain/codex/run-beds24-photo-vault-…
elcidspain Aug 21, 2026
c08b219
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 21, 2026
98721fd
Merge pull request #108 from elcidspain/copilot/fix-code-for-review-c…
elcidspain Aug 21, 2026
c98084d
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 22, 2026
744d923
Initial plan
Copilot Aug 22, 2026
29d817d
Add Nominalia FTP host/user fallbacks
Copilot Aug 22, 2026
d3afa51
Record EL CID production probe [skip ci]
github-actions[bot] Aug 22, 2026
840a476
Refresh encrypted Beds24 UI credential
elcidspain Aug 22, 2026
0fbade0
Beds24 UI handshake state FAILED [skip ci]
github-actions[bot] Aug 22, 2026
0ab1f8e
Initial plan
Copilot Aug 22, 2026
f834a82
Use secret-backed Beds24 username fallback in handshake upload
Copilot Aug 22, 2026
7add479
Mask selected Beds24 username in handshake workflow logs
Copilot Aug 22, 2026
2cefe02
Initial plan
Copilot Aug 22, 2026
1fe589a
Add Beds24 username secret fallbacks
Copilot Aug 22, 2026
e974b4b
Merge pull request #106 from elcidspain/copilot/fix-code-review-comme…
elcidspain Aug 22, 2026
9d3d506
Merge pull request #110 from elcidspain/copilot/fix-failing-github-ac…
elcidspain Aug 22, 2026
b2b505d
Merge pull request #107 from elcidspain/copilot/fix-code-review-comme…
elcidspain Aug 22, 2026
c35cf0b
Merge pull request #111 from elcidspain/copilot/fix-github-actions-job
elcidspain Aug 22, 2026
c87a637
Record Beds24 binding inventory [skip ci]
github-actions[bot] Aug 22, 2026
58ef48f
Merge main and fix whitespace-only username fallback
Copilot Aug 22, 2026
1b2dc42
Merge pull request #112 from elcidspain/copilot/fix-github-actions-jo…
elcidspain Aug 22, 2026
9f1531d
Add read-only Beds24 UI auth diagnostic
elcidspain Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .github/aumara-beds24-binding-inventory.trigger
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
BEDS24_BINDING_INVENTORY
property=324882
trigger=2026-08-20T19:12:00+02:00
mode=names-only
8 changes: 8 additions & 0 deletions .github/aumara-beds24-sync.trigger
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
BEDS24_PHOTO_SYNC_DISCOVERY
property=324882
scope=property-324882-photo-sync
trigger=2026-08-19T15:17:00+02:00
trigger=2026-08-20T19:14:00+02:00
mode=existing-secrets-only
scope=property-324882-photo-sync
intent=read-live-and-map-existing-before-booking-sync
36 changes: 36 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Copilot Instructions for openai-cookbook

This repository contains runnable examples, notebooks, and reference articles for OpenAI APIs. Keep changes focused, minimal, and aligned with the existing cookbook structure.

## Repository structure

- Place notebooks and Python scripts under `examples/<topic>/`.
- Group related assets inside topic-specific subfolders and keep filenames descriptive and lowercase with dashes or underscores.
- Keep content discoverable by updating `registry.yaml` for new or relocated entries.
- Keep author metadata current in `authors.yaml` when adding or moving content.

## Coding and documentation expectations

- Write Python to PEP 8 with four-space indentation, descriptive names, and concise docstrings.
- Prefer clear examples over clever abstractions; document required environment variables instead of hard-coding secrets or API keys.
- Avoid introducing network calls in tests; use fakes or mocks where appropriate.
- For notebook changes, run them top-to-bottom and clear execution counts before committing.

## Validation and workflow

- Use a virtual environment for local work and install only the dependencies required by the relevant example.
- Validate notebooks with:
- `python .github/scripts/check_notebooks.py`
- If a sample includes dependencies, use the example-specific `requirements.txt` rather than installing unrelated packages.

## Security and governance

- Never place secrets or private operational values in code, prompts, logs, commits, or pull request text.
- Do not change Gmail, Beds24, monitoring, deployment, access, payments, legal, tax, or external messaging without explicit task-specific authorization.
- Follow `docs/AI_EXECUTION_POLICY.md` and `docs/CHECKPOINT_PROTOCOL.md` for AI-assisted execution.

## Pull request expectations

- Use concise, imperative commit messages.
- Include a short summary, motivation, and validation details in pull requests.
- Ensure metadata files stay in sync with new or relocated content.
25 changes: 25 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,31 @@ Briefly describe the changes and the goal of this PR. Make sure the PR title sum

Why are these changes necessary? How do they improve the cookbook?

## Execution contract

- **Scope:** <!-- One narrowly scoped objective, allowed paths, and exclusions -->
- **Evidence:** <!-- Existing work inspected and any branch/commit/PR/checkpoint reused -->
- **Tests:** <!-- Exact focused commands and results -->
- **Stop condition:** <!-- Artifact or exact blocker that ends this execution -->
- **Recovery point:** <!-- Branch, commit, PR, checkpoint, or clean base for resumption -->

## AI execution governance

- [ ] This execution has one narrowly scoped objective and this task has one PR.
- [ ] I inspected targeted existing work before creating new work and reused a
recoverable branch, commit, PR, or checkpoint where available.
- [ ] I did not rescan the whole repository, or I documented why targeted
inspection was insufficient in **Evidence**.
- [ ] Scope, evidence, tests, stop condition, and recovery point are recorded
above.
- [ ] No secrets or private operational values appear in code, prompts, logs,
commits, or PR text.
- [ ] Gmail, Beds24, monitoring, deployment, access, payments, legal, tax, and
external messaging are unchanged, or explicit task-specific authorization
is cited in **Scope**.
- [ ] The requested artifact is complete, no follow-on task was started, and
the recovery point reduces context required by the next task.

---

## For new content
Expand Down
203 changes: 203 additions & 0 deletions .github/scripts/validate_ai_execution_governance.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
#!/usr/bin/env python3
"""Validate repository-level AI execution governance without dependencies."""

from __future__ import annotations

import argparse
import pathlib
import re
import shutil
import tempfile


REPOSITORY_ROOT = pathlib.Path(__file__).resolve().parents[2]
REQUIRED_FILES = {
"AGENTS.md": (
"one execution has one narrowly scoped objective",
"one task produces one pull request",
"inspect the targeted existing work",
"do not rescan the whole repository",
"scope, evidence, tests, stop condition, and recovery point",
"stop when the requested artifact is produced",
"secrets or private operational values",
"gmail, beds24, monitoring, deployment, access, payments, legal",
"reduces the context required by the next execution",
),
"docs/AI_EXECUTION_POLICY.md": (
"one execution must have one narrowly scoped objective",
"one task must produce one pull request",
"inspect targeted existing work before creating new work",
"do not rescan the whole repository",
"| scope |",
"| evidence |",
"| tests |",
"| stop condition |",
"| recovery point |",
"secrets and private operational values",
"without explicit, task-specific authorization",
"stop after the requested artifact is produced",
"reduce the context required by the next task",
),
"docs/CHECKPOINT_PROTOCOL.md": (
"objective",
"scope",
"evidence",
"tests",
"stop condition",
"recovery point",
"reuse any recoverable branch, commit, pull request, or checkpoint",
"whole-repository rescan",
"stop immediately when the stop condition is met",
"reduce the context the next task must reconstruct",
),
".github/pull_request_template.md": (
"## execution contract",
"**scope:**",
"**evidence:**",
"**tests:**",
"**stop condition:**",
"**recovery point:**",
"one narrowly scoped objective",
"did not rescan the whole repository",
"no secrets or private operational values",
"gmail, beds24, monitoring, deployment, access, payments, legal, tax",
"reduces context required by the next task",
),
}

SECRET_PATTERNS = (
re.compile(r"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b", re.IGNORECASE),
re.compile(r"\b(?:sk|ghp|github_pat)_[A-Za-z0-9_-]{12,}\b"),
re.compile(r"\bBearer\s+[A-Za-z0-9._~+/-]{12,}\b", re.IGNORECASE),
)


class GovernanceValidationError(ValueError):
"""Raised when a governance artifact is missing or incomplete."""


def validate(root: pathlib.Path = REPOSITORY_ROOT) -> None:
"""Validate required files, policy clauses, links, and secret hygiene."""
root = pathlib.Path(root)

for relative_path, required_phrases in REQUIRED_FILES.items():
path = root / relative_path
if not path.is_file():
raise GovernanceValidationError(f"missing required file: {relative_path}")

content = path.read_text(encoding="utf-8")
normalized = " ".join(content.lower().split())
missing = [phrase for phrase in required_phrases if phrase not in normalized]
if missing:
raise GovernanceValidationError(
f"{relative_path}: missing governance clause: {missing[0]}"
)

for pattern in SECRET_PATTERNS:
if pattern.search(content):
raise GovernanceValidationError(
f"{relative_path}: possible secret or private value"
)

agents = (root / "AGENTS.md").read_text(encoding="utf-8")
for policy_path in ("docs/AI_EXECUTION_POLICY.md", "docs/CHECKPOINT_PROTOCOL.md"):
if policy_path not in agents:
raise GovernanceValidationError(f"AGENTS.md: missing link to {policy_path}")


def _copy_governance_files(source: pathlib.Path, destination: pathlib.Path) -> None:
for relative_path in REQUIRED_FILES:
target = destination / relative_path
target.parent.mkdir(parents=True, exist_ok=True)
shutil.copy2(source / relative_path, target)


def self_test(root: pathlib.Path = REPOSITORY_ROOT) -> None:
"""Run positive and negative checks against isolated fixtures."""
validate(root)

with tempfile.TemporaryDirectory() as temp_dir:
fixture = pathlib.Path(temp_dir)
_copy_governance_files(root, fixture)

missing_file = fixture / "docs/CHECKPOINT_PROTOCOL.md"
missing_file.unlink()
try:
validate(fixture)
except GovernanceValidationError as exc:
if "missing required file" not in str(exc):
raise
else:
raise GovernanceValidationError("self-test accepted a missing file")

with tempfile.TemporaryDirectory() as temp_dir:
fixture = pathlib.Path(temp_dir)
_copy_governance_files(root, fixture)

policy = fixture / "docs/AI_EXECUTION_POLICY.md"
policy.write_text(
policy.read_text(encoding="utf-8").replace(
"Stop after the requested artifact is produced",
"Continue with adjacent work",
),
encoding="utf-8",
)
try:
validate(fixture)
except GovernanceValidationError as exc:
if "missing governance clause" not in str(exc):
raise
else:
raise GovernanceValidationError("self-test accepted a missing clause")

with tempfile.TemporaryDirectory() as temp_dir:
fixture = pathlib.Path(temp_dir)
_copy_governance_files(root, fixture)

template = fixture / ".github/pull_request_template.md"
test_secret = "".join(
chr(code)
for code in (111, 112, 115, 64, 101, 120, 97, 109, 112, 108, 101, 46, 105, 110, 118, 97, 108, 105, 100)
)
template.write_text(
template.read_text(encoding="utf-8") + f"\n{test_secret}\n",
encoding="utf-8",
)
try:
validate(fixture)
except GovernanceValidationError as exc:
if "possible secret" not in str(exc):
raise
else:
raise GovernanceValidationError("self-test accepted a secret pattern")


def main() -> int:
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"--root",
type=pathlib.Path,
default=REPOSITORY_ROOT,
help="repository root",
)
parser.add_argument(
"--self-test",
action="store_true",
help="run positive validation and isolated negative tests",
)
args = parser.parse_args()

if args.self_test:
self_test(args.root)
print("AI execution governance validation passed; 3 self-tests passed.")
else:
validate(args.root)
print(
"AI execution governance validation passed: "
f"{len(REQUIRED_FILES)} files checked."
)
return 0


if __name__ == "__main__":
raise SystemExit(main())
42 changes: 42 additions & 0 deletions .github/workflows/aumara-actions-heartbeat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: AUMARA Actions Heartbeat

on:
workflow_dispatch:
push:
branches: [main]
paths:
- '.github/workflows/aumara-actions-heartbeat.yml'

permissions:
contents: write

jobs:
heartbeat:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- name: Write heartbeat
run: |
set -euo pipefail
mkdir -p aumara-control-tower/checkpoints
python3 - <<'PY'
import json, datetime, os
r={
'schema':'aumara.actions-heartbeat',
'status':'PASS',
'run_id': os.getenv('GITHUB_RUN_ID'),
'sha': os.getenv('GITHUB_SHA'),
'checked_at_utc': datetime.datetime.now(datetime.timezone.utc).replace(microsecond=0).isoformat().replace('+00:00','Z')
}
open('aumara-control-tower/checkpoints/AUMARA_ACTIONS_HEARTBEAT.json','w',encoding='utf-8').write(json.dumps(r,indent=2)+'\n')
print(json.dumps(r))
PY
- name: Persist heartbeat
run: |
set -euo pipefail
git config user.name 'AUMARA Automation'
git config user.email 'elcidspain@gmail.com'
git add aumara-control-tower/checkpoints/AUMARA_ACTIONS_HEARTBEAT.json
git commit -m 'Record AUMARA Actions heartbeat'
git push origin HEAD:main
Loading