38e266aFix native test detection: install pytest, use pipefail
Two bugs prevented Python test failures from being caught:
1. pytest was never installed — pip only installed the ORM packages
2. pipe to tee swallowed exit codes — tee always succeeds, masking
the actual test runner exit code
Fixes: add `pip install pytest` before running tests, add
`set -o pipefail` to all native test steps so failures propagate.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
106f24aRun native runtime tests on generated code before publishing
Test matrix now runs both `temper test -b <lang>` AND native tests
(pytest, npm test, cargo test, etc.) against temper.out/<lang>/.
Publish is gated on native test results. Issues auto-opened only
when temper tests pass but native tests fail (codegen bug signal).
Reverts notify-app-template to simple vendor push since all testing
now happens in the top-level alloy repo.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
8e45223Add per-backend test gating with auto-issue on failure
- New test matrix job: runs `temper test -b <lang>` for all 6 backends
in parallel (js, py, rust, java, lua, csharp)
- Publish job gated per-backend: only pushes to lib repo if that
backend's tests passed, preventing broken code from cascading
- Auto-opens GitHub issue with test output on failure, comments on
existing issue if one is already open
- Reverts notify-app-template to simple vendor push (testing moved
upstream to avoid PAT requirement for cross-repo issue creation)
- Build job uploads Temper compiler + ORM source as artifacts for
test matrix consumption
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
92aa09fAdd runtime test gate to child repo CI pipeline
Rewrites notify-app-template.yml so child lib repos (alloy-py, alloy-js,
etc.) run their own native tests before pushing vendor code to app repos.
Flow: alloy temper test → publish to child libs → child runs native
tests (pytest, npm test, cargo test, etc.) → if pass, push to app repo;
if fail, open issue on alloy with stack trace.
Simplifies top-level test job to just gate publishing (no issue creation)
since child repos now handle runtime-specific failure reporting.
Requires ALLOY_ISSUES_TOKEN secret on each child repo for cross-repo
issue creation.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
b779c12Fix CI: surface test failures and auto-open issues
Three bugs fixed:
- Test job showed green despite failures (continue-on-error swallowed exit code)
- Issue creation failed silently when "bug"/"ci" labels didn't exist
- Every push created duplicate issues instead of commenting on existing ones
Added explicit "Fail job if tests failed" step so the test matrix shows
red. Labels are now created before use. Existing open issues get a
comment instead of a duplicate.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0405645Add expanded security audit: 17 vulnerabilities across 7 classes
Original audit found 2 SQL injection vulns (fixed by Alloy). Expanded
audit covers full OWASP Top 10 and finds 15 additional: 4 NoSQL injection
($where + operator injection), RCE, SSRF, SSTI, XXE, zip slip, hardcoded
keys, MD5 hashing, open redirect, mass assignment, sensitive query params.
The NoSQL vulns are structurally identical to the SQLi we fixed — same
anti-pattern, different database layer — making the case for extending
Temper's type-safe approach to NoSQL query generation.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
47862b0Point juice-shop submodule to fork with Alloy security migration
Juice Shop fork at notactuallytreyanastasio/juice-shop includes:
- Vendored Temper-compiled Alloy ORM
- Login route migrated from raw SQL to type-safe SqlBuilder
- Search route migrated from raw SQL to type-safe SqlBuilder
- All 6 injection payload types validated as blocked
ec60310Add Juice Shop SQL security migration plan and audit trail
- juice-shop-alloy-migration.md: Full technical plan with MITRE CWE
analysis (11 CWEs), all 40 SQL touchpoints mapped, escaping proofs
- PROCESS.md: Live audit trail documenting each change, validation
results from 7 injection payloads, and final assessment showing
Alloy eliminates all SQL injection vectors by construction
cc01b98Track apps/ directory and update temper.keep name selections
Remove apps/ from .gitignore to track demo applications and the
Juice Shop security migration as submodules.
914c8e9Replace vulnerable raw SQL with Alloy ORM type-safe query builder
Migrate login and search routes from string-interpolated SQL to Alloy's
type-safe SqlBuilder API. All user input now flows through appendString()
which escapes quotes at the type level, making injection unrepresentable.
- Vendor Temper-compiled Alloy ORM (orm, std, temper-core)
- Add lib/alloy.ts bridge (ESM loader + query builders)
- Add lib/orm-src.d.ts TypeScript declarations for Alloy API
- Migrate routes/login.ts: email/password no longer interpolated
- Migrate routes/search.ts: search criteria no longer interpolated
- Validated against 6 injection payloads on running server: all blocked
03621a8Center language pills, simplify OG image and meta tags
- Center the language pill row in OG image
- Update tagline to "Write Once, Secure SQL Everywhere"
- Remove test count and vulnerability count from stats
- Soften description copy in meta tags
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
8888970Add OG image and meta tags to GH Pages site
Light metallic theme with hex grid texture, language pills, and
key stats (184 tests, 6 languages, 0 vulnerabilities). Includes
og:image, og:description, and Twitter Card tags.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9e2ee0eReorganize README and rewrite GH Pages site
README: move Getting Started to top, consolidate security sections,
use collapsible details for remediation and per-phase analysis,
remove broken apps/ links (gitignored directory).
GH Pages: condense from 7 chapters to focused sections, add tabbed
code snippets showing ORM API in all 6 languages, add library repo
links (alloy-js through alloy-csharp), link language pills to repos.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
9390a0bEnhance app to demonstrate ALL Alloy ORM SQL features
Add tags, priority, due dates, search, stats, pagination, bulk ops,
and validation showcase. Every ORM query builder method and changeset
validator is now exercised in a real route.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26ebf5dRename Generic ORM to Alloy across all project files
Update all references from "Generic ORM" / "generic_orm" / "generic-orm-*"
to "Alloy" / "alloy" / "alloy-*" in README, GitHub Pages site, pitch deck,
CI workflow, and deck generator script.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
a3e645aAdd GitHub Pages project site and fix missing Phase 6 in README
New docs/index.html tells the project story in 7 chapters: the problem,
why Temper, the 5 defense layers, literate programming, the 3-bug fix
story, the AI development comparison, and the 6-app proof. Styled in
black-and-white matching the pitch decks.
README.md adds missing Phase 6 (Changeset Enrichment) security analysis
section between Phase 5 and Phase 7.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2024-07-31 · Chaifetz Arena, Saint Louis University
♥ Most Loved: 38 likes
2017-07-26 · Madison Square Garden
📊 93% Set 2 · 8/8 JCs from Set 2
Last: 2024-07-31 (591d ago) · avg every 184d
Best year: 2017 — 2/2 JC
🔥 JC Streak: 4 in a row
"Busted out after a 380 show absence, Phish goes 2 for 2 on delivering the goods ..."
TAP TO SEE AND PLAY JAMS
Mr. Completely
.533
TAP TO FLIP BACK
8 jams
★
2017-07-19
21:18
Petersen Events Center · Pittsburgh, PA
Busted out after a 380 show absence, Phish goes 2 for 2 on delivering the goods with this TAB standby. The jam quickly goes "Type II" and features bliss jamming aplenty as well as some new synth sounds from Page.
★
2017-07-26
13:52
Madison Square Garden · New York, NY
Surprising -> out of a great "Carini". A fiery minor key jam develops out of the verses, and Page takes control on the keys as Trey fires off echo-laden notes. They pivot nicely into a new key, where Mike really impresses and Fish pushes the tempo up a gear as Trey plays around with the "Mr. Completely" theme and leads the band into an anthemic finale. A high-spirited, energetic good time, with a > into an even more surprising "1999".
★
2021-08-04
18:55
Ascend Amphitheater · Nashville, TN
The opening to one of the year's strongest second frames, this "Mr. Completely" indulges in its usual jam before Fish switches up his flow and Trey moves into a new key. Page's electric piano cuts through the mire, and a warm groove emerges as a result. Fish starts throwing in the "Mr. Completely" drum fill almost as a challenge to himself, and Trey moves to stabbing echo-laden chords as the jam picks up speed "Bathtub Gin" style. Something funkier and stranger emerges, and Mike flips on his envelope filter as the jam builds to a ferocious climax, then dies away with some more "Mr. Completely" drum fills by Fish for fun. > into "BOAF".
★
2021-08-29
18:47
Gorge Amphitheatre · George, WA
Quickly maneuvers into major-key bliss, distinguished by some frenetic playing from Fishman, then moves into a brisker and snappier zone thanks to Trey switching to chords. The band briefly dips into contemplative minor key playing, before moving to something more upbeat, with Page's electric piano at the forefront. Trey's effects-smothered guitar playing and Page's synths combine wonderfully, with Mike going to the envelope filter and Fish as steady as ever. Very good -> into "Meat" to close. A fine companion piece to the 8/4/21 version.
★
2022-08-13
14:26
Alpine Valley Music Theatre · East Troy, WI
First locks into a super-cool and menacing, textural jam with a perfectly integrated "Crazy Train" tease from Trey, then slides into major for a heavenly spell before more familiar bliss brings it all home.
★
2023-04-23
18:03
Hollywood Bowl · Hollywood, CA
Another huge version of the once rare song in the catalog. Plucky playing from Trey around 9:30 changes the jam's trajectory. The searching, grimy jam sounds like the background to a noir detective show at times. The tempo gets kicked up towards the end, before eventually > "A Song I Heard the Ocean Sing".
★
2023-04-23
0:56
Hollywood Bowl · Hollywood, CA
-> from "A Song I Heard the Ocean Sing" to close out the "Mr C" > "ASIHTOS" -> "Mr C" sandwich.
★
2024-07-31
22:29
Chaifetz Arena, Saint Louis University · St. Louis, MO
After transitioning away from the song, Pageâs grand piano gives the improvisation shape and direction as Trey responds leading the band through uplifting and thematic play that modulates across both delicate and thornier spaces. Listen for Mike's "Meowdulator" pedal and Trey's "Hanon exercises" to make appearances before returning to the song proper to close.
Disappointed that War does not lead to actual combined-arms conflict.
jeff
04:01 AM
that would be hard to conjure
jeff
04:02 AM
I am so excited that this works and is a successful combination of windows and old apple lol
Uechi Nerd
04:02 AM
Probably for the best, actually. That shit is very very messy.
Uechi Nerd
04:02 AM
I am intrigued and happy it works!
Uechi Nerd
04:03 AM
I respect the wizardry.
Visitor7804
04:05 AM
this is delightful.
jeff
04:06 AM
hell yeah visitor 7804, this is livin' brother
guy4get
04:07 AM
i've never felt so alive
EarlofVincent
04:09 AM
Commencing experiment in 3....2....
jeff
04:14 AM
1
leah
04:16 AM
hi!
leah
04:16 AM
this is lovely
jeff
04:21 AM
hi! lol I was just like what if I combined Mac and windows and added a flower tree of life and called it my homepage and then smoked some weed and made it happen in an empty mall in Connecticut
B. Droptables
10:51 AM
Always cool to play with your toys.
Visitor1128
08:47 AM
yo!
Visitor1128
08:48 AM
i can barely work my phone. what am i doing here?
jeff
09:04 AM
the phone is not optimized yet but it "kind of works" I am sorry lol
jeff
09:04 AM
you have to pick a username, then it goes to the chat, then if you hit the bottom tabs it'll let you go to the app sections.
Bobdawg
04:43 AM
Hi everybody this is my blog I hope you enjoy it I did some more changes and anyone can write a post here now for me.
dinkleberg
01:45 AM
ALL HAIL TREE OF LIFE
jeff
08:55 PM
hi Hacker News
jeff
04:28 PM
hey there I am not really Jeff
Mal Function
05:34 PM
Hey! Please reveal... how exactly do I actually use losselot on my Mac? I've run the git clone commend in Terminal.app and seem successfully to have installed into a new <losselot> sub-folder in my home folder but now???