Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
9e84cb3
test(ci): reproduce and repair Node 20 action runtime debt
seonghobae Sep 11, 2026
b69be3a
chore(ci): retire failed Node 24 repair writer
seonghobae Sep 11, 2026
218e9c5
test(ci): rerun Node 24 action repair after formatter RCA
seonghobae Sep 11, 2026
921c898
chore(ci): retire failed Node 24 repair writer v2
seonghobae Sep 11, 2026
5ecefef
test(ci): verify Node 24 repair without unrelated YAML formatting
seonghobae Sep 11, 2026
a0f4ab8
chore(ci): retire failed Node 24 repair writer v3
seonghobae Sep 11, 2026
968e5af
test(ci): repair Node 24 action migration indentation regression
seonghobae Sep 11, 2026
62374a8
chore(ci): retire failed Node 24 repair writer v4
seonghobae Sep 11, 2026
b8278de
test(ci): verify Node 24 repair with scoped env removal
seonghobae Sep 11, 2026
38b1b3a
chore(ci): retire failed Node 24 repair writer v5
seonghobae Sep 11, 2026
f302e2d
test(ci): verify Node 24 action repair with structure-safe contract
seonghobae Sep 11, 2026
711c991
fix(ci): adopt Node 24 GitHub Action runtimes
Sep 11, 2026
20c6c54
test(ci): expose floating action-ref bypass
seonghobae Sep 11, 2026
37bcb9d
ci: verify Node 24 action ref authority regression
seonghobae Sep 11, 2026
dee6654
fix(ci): reject unreviewed action refs
seonghobae Sep 11, 2026
75ba0ea
ci: retire Node 24 action ref verifier
seonghobae Sep 11, 2026
1a305be
test(ci): require explicit checkout initial branch authority
seonghobae Sep 11, 2026
6278bd2
test(ci): add checkout initial-branch verifier
seonghobae Sep 11, 2026
222a989
test(ci): build bounded checkout warning repair candidate
seonghobae Sep 11, 2026
48b103b
test(ci): isolate checkout repair formatting from inherited drift
seonghobae Sep 11, 2026
2a82ce0
test(ci): retain hidden workflow files in repair artifact
seonghobae Sep 11, 2026
dd6d988
test(ci): promote checkout repair through bounded writer
seonghobae Sep 11, 2026
d8724a3
fix(ci): set explicit checkout initial branch
Sep 11, 2026
7973277
test(ci): retire checkout initialization writer
seonghobae Sep 11, 2026
57cd9c0
test(ci): reject scalar checkout env impersonation
seonghobae Sep 13, 2026
1aed2a6
ci: verify checkout env authority contract
seonghobae Sep 13, 2026
696eacc
test(ci): require direct checkout env entries
seonghobae Sep 13, 2026
3d69614
ci: retire checkout env contract verifier
seonghobae Sep 13, 2026
a7b1914
test(ci): reject scalar checkout-step impersonation
seonghobae Sep 13, 2026
1c4d9d2
ci: verify checkout-step authority regression
seonghobae Sep 13, 2026
01dccae
test(ci): bind checkout authority to executable steps
seonghobae Sep 13, 2026
180a7c1
ci: retire checkout-step authority verifier
seonghobae Sep 13, 2026
c49d6e3
test(ci): cover nested scalar checkout-step impersonation
seonghobae Sep 13, 2026
0758509
ci: verify nested scalar checkout regression
seonghobae Sep 13, 2026
f3345c6
test(ci): reject checkout authority inside block scalars
seonghobae Sep 13, 2026
d7b8356
ci: retire nested scalar checkout verifier
seonghobae Sep 13, 2026
0b5466f
test(ci): reject checkout authority outside steps
seonghobae Sep 13, 2026
9507477
test(ci): cover checkout and scan ownership ambiguity
seonghobae Sep 13, 2026
f8cc667
fix(ci): bind checkout contracts to executable step authority
seonghobae Sep 13, 2026
e29b2f7
test(ci): reject post-step checkout env authority
seonghobae Sep 13, 2026
8f89865
fix(ci): bound checkout env authority to executable step
seonghobae Sep 13, 2026
ef9fc61
ci: verify checkout step-boundary RED to GREEN
seonghobae Sep 13, 2026
af69a3a
ci: retire checkout step-boundary verifier
seonghobae Sep 13, 2026
0a7fdba
test(ci): reject checkout env authority from sibling mappings
seonghobae Sep 13, 2026
5890183
ci: verify checkout env mapping authority
seonghobae Sep 13, 2026
f14c899
test(ci): bind checkout Git config to direct env mapping
seonghobae Sep 13, 2026
e3879ba
test(ci): run checkout verifier in owning package
seonghobae Sep 13, 2026
281a9e9
test(ci): prove checkout env RED and GREEN in owner package
seonghobae Sep 13, 2026
46744b3
test(ci): retire checkout env authority verifier
seonghobae Sep 13, 2026
5119ccd
test(ci): reject case-variant unreviewed action pins
seonghobae Sep 13, 2026
024d372
test(ci): reject quoted checkout authority bypass
seonghobae Sep 13, 2026
9862461
fix(ci): bind quoted checkout steps to branch authority
seonghobae Sep 13, 2026
3fac828
style(ci): restore contract file newline
seonghobae Sep 13, 2026
a7b34a1
test(ci): bound AppGuardrail scan to jobs mapping
seonghobae Sep 13, 2026
852ffa5
test(ci): cover direct sequence checkout authority
seonghobae Sep 13, 2026
dd62377
fix(ci): recognize direct sequence checkout steps
seonghobae Sep 13, 2026
c2d6470
fix(ci): recognize multi-space direct sequence checkouts
seonghobae Sep 13, 2026
50da3ea
test(ci): reject quoted uses mapping keys
seonghobae Sep 14, 2026
bcea58b
docs(test): document quoted uses authority boundary
seonghobae Sep 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions .github/workflows/ai-proposal-live-conformance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ concurrency:
cancel-in-progress: false

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
CONTEXTUAL_ORCHESTRATOR_COMMIT: 6841b71935e0b7cb98fb52bcb4709cc5100c8d87
PROVIDER_BASE_URL: https://integrate.api.nvidia.com/v1
PROVIDER_ALLOWED_HOST: integrate.api.nvidia.com
Expand Down Expand Up @@ -47,11 +46,15 @@ jobs:
steps:
- name: Checkout LifeOS
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down Expand Up @@ -142,6 +145,10 @@ jobs:
- name: Checkout pinned contextual-orchestrator
if: env.LIVE_ENABLED == 'true' && steps.models.outputs.configured == 'true'
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
repository: ContextualWisdomLab/contextual-orchestrator
ref: ${{ env.CONTEXTUAL_ORCHESTRATOR_COMMIT }}
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/appguardrail.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,13 @@ jobs:
security-events: write
env:
APPGUARDRAIL_COMMIT: 4e4f6c34e4e9640ba769020e9ab4a6ebee07bab1
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
steps:
- name: Checkout LifeOS exact contributor head
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}
Expand All @@ -45,6 +48,10 @@ jobs:

- name: Checkout pinned AppGuardrail
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
repository: ContextualWisdomLab/appguardrail
ref: 4e4f6c34e4e9640ba769020e9ab4a6ebee07bab1
Expand Down
38 changes: 29 additions & 9 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ jobs:
timeout-minutes: 10
steps:
- name: Checkout exact contributor head
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}
Expand Down Expand Up @@ -69,13 +73,17 @@ jobs:
--health-retries 5
steps:
- name: Checkout exact contributor head
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down Expand Up @@ -119,13 +127,17 @@ jobs:
--health-retries 5
steps:
- name: Checkout exact contributor head
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down Expand Up @@ -179,13 +191,17 @@ jobs:
timeout-minutes: 15
steps:
- name: Checkout exact contributor head
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down Expand Up @@ -261,7 +277,11 @@ jobs:
printf 'current_base=%s\n' "$current_base" >> "$GITHUB_OUTPUT"

- name: Checkout exact current contributor head
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
fetch-depth: 0
Expand Down Expand Up @@ -307,7 +327,7 @@ jobs:
fi

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down
19 changes: 15 additions & 4 deletions .github/workflows/commercial-readiness.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ concurrency:
cancel-in-progress: ${{ github.event_name == 'pull_request' }}

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
EVIDENCE_DIR: commercial-readiness-evidence

jobs:
Expand All @@ -34,12 +33,16 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false
ref: ${{ github.event.pull_request.head.sha || github.sha }}

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down Expand Up @@ -117,11 +120,15 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down Expand Up @@ -158,11 +165,15 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down
12 changes: 10 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,11 @@ jobs:
timeout-minutes: 10
steps:
- name: Checkout exact revision
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false

Expand Down Expand Up @@ -84,7 +88,11 @@ jobs:
WEB_ORIGIN: ${{ inputs.web_origin }}
steps:
- name: Checkout exact revision
uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
persist-credentials: false

Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/opencode-commercial-development.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ concurrency:
cancel-in-progress: false

env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
OPENCODE_PACKAGE_VERSION: '1.18.9'
POLICY_PATH: product/opencode-commercial-development-policy.json
NIM_BRIDGE_PORT: '8765'
Expand Down Expand Up @@ -50,13 +49,17 @@ jobs:
steps:
- name: Checkout exact main source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
env:
GIT_CONFIG_COUNT: '1'
GIT_CONFIG_KEY_0: init.defaultBranch
GIT_CONFIG_VALUE_0: main
with:
ref: main
fetch-depth: 0
persist-credentials: false

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22

Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ All notable changes to LifeOS are documented in this file.

### Changed

- Persistent GitHub workflows now use immutable Node-24-backed checkout and setup-node releases directly, removing the temporary runtime-forcing compatibility switch while preserving exact checkout and credential boundaries.
- Production contextual-orchestrator proposal requests now explicitly use adaptive `auto` mode and avoid provider-native structured-output passthrough, allowing the orchestration plane to meet the quality requirement and then minimize known cost while LifeOS retains strict fail-closed proposal validation.

### Added
Expand Down
2 changes: 1 addition & 1 deletion apps/ai-service/src/proposal-quality-live-workflow.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ describe('NVIDIA NIM live conformance workflow contract', () => {
'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1',
);
expect(workflow).toContain(
'actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020',
'actions/setup-node@820762786026740c76f36085b0efc47a31fe5020',
);
expect(workflow).toContain(
'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97',
Expand Down
Loading
Loading