Skip to content

Dev - #31

Open
Shaan-Shoukath wants to merge 769 commits into
mainfrom
dev
Open

Dev#31
Shaan-Shoukath wants to merge 769 commits into
mainfrom
dev

Conversation

@Shaan-Shoukath

Copy link
Copy Markdown
Collaborator

Summary

Related issue

Type of change

  • Bug fix
  • New feature
  • Documentation
  • Refactor or maintenance
  • Breaking change

How tested

Checklist

  • Tests pass locally for the affected areas.
  • Documentation and OpenAPI artifacts are updated if endpoints changed.
  • The change follows the project's contribution terms and licensing requirements.
  • I understand that contributions are licensed under AGPL-3.0-or-later.

Contributions to Space Works are made under the GNU Affero General Public License,
version 3 or any later version (AGPL-3.0-or-later).

Shaan-Shoukath and others added 30 commits October 21, 2026 07:06
… ledgers and stage forms

- Row planning defers only the nullable edges of a strongly connected
  component; a cycle that still closes through required edges refuses.
- A stage form's revision rows load after the stage form they name.
- User-closure edges accept canonical UUID text for UUID-keyed rows.
- bytea values are copied as bytes instead of failing on memoryview.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-client registry

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…legated permissions; invite redemption retries scope growth

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ep re-reads the actor; post-render quota refusal is storage-unavailable

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ct once; sealed roster remaps from source ids

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… no longer overwrites the pinned release VERSION, the producer-capability installer imports without Django settings, runtime checks run with the app on the path, the live check uses an allowed host and loopback storage is probed through the backend endpoint with its signed Host; a missing saved .env yields no host-path selector

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…compose manifests — no setting reads them, so they had no effect; full-server mail behaviour is unchanged

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, purge and deletion blocker

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ep, Connect fee return and notices

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…funds report, OpenAPI regenerated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nel, member refund requests

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… and source map

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gregates

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…backup-key steps recreate the backend, so the site no longer answers 502 from a stale backend address

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… source gate

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d so far (decision 61a)

Both cancel routes accept an optional `consumed_quantity` (0 to the hold, in the hold's
unit). The hold is settled with that consumed quantity, so it stays taken from stock and is
what record_service_cost prices; the member is never charged. Empty or 0 keeps the
zero-consumption release, and a waiting job refuses a non-zero amount. Both staff consoles
show the field for a running job, pre-filled with elapsed / estimated x planned (capped
at the hold); the member form keeps hiding it. OpenAPI and the client are regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cache table that operations 0007 creates, so the release no longer refuses every fresh managed database and the brokerless runtime can use its DatabaseCache

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ir key rows exist

The mandatory finance envelope guard now waives only the tenant key-row lookup,
and only while that tenant's write fence is closed for the session's own
tenant_import operation; the envelope format, host and fence checks still
apply in every case. The reverse restores the original guard exactly.
Owner decision #61b.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n-out participant

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o free-profile management commands (verify_storage and every one-off job) pass Django's system checks instead of refusing with accounts.E001

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age-2026-10-19

GitHub Releases are cut only when VERSION changes (or on a manual run); images still
build and promote on every main push. Clean merge; the two-image publish matrix
(backend + frontend, no all-in-one, decision #52) is unchanged and the workflow parses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ase session until the writer fence has exited — Django closed it when the command returned, so verify_storage, setup_instance and every finite writer job failed after succeeding

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… term-cancel hooks and sweep (decision 68)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Conflicts: NOTICE keeps both credits; saved_details/intents.py keeps the
form-slot API with g2's in_domain_transaction guard; dependency_order.py
keeps the lane side (g2's nullable-cycle release plus the stage selector
order and cyclic-member preference).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cloud migrations re-chained onto the staging leaves: integrations 0040_email_providers ->
0047 (after 0046_fresh_install_sending), makerspaces 0097_email_providers -> 0104 (after
0103_page_reference_restore); backup/evidence/operations already followed the real leaves.
EmailLog.provider_message_id is declared once (both sides added it; the cloud migration no
longer re-adds the column). Notification/push conflicts keep the mobile canonical pipeline
and its cutover gate, adding the cloud bounded-budget checks; the scheduler catalog gains
every task staging already ran (pages cleanup, messaging recovery/retention/wipe, stock
snapshot, member push recovery, account purge, hosting retention) so full-server
scheduling is unchanged. Edge configs keep both sides' routes. Generated OpenAPI/client
and the catalog digest follow once Docker is available.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The refund-case rebuild task joins the cloud scheduler catalog (the command now reads
its schedule from there). Payments 0023/0024 already follow the real leaves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shaan-Shoukath and others added 30 commits October 30, 2026 14:08
…analytics and closures (R2 L2)

Nine per-space switches (events.broadcast_templates, approval_digest, anonymous_feedback,
submission_integrity, mentor_chat_alerts, organization_sender; notifications.escalation,
web_push, inbox_snooze). events/0060 chains after L1's 0059 and keeps today's anonymous
feedback on for existing spaces. New coordination rows are classified as omitted from
exports and dropped from tenant dumps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nd designs, 5-second undo, delivery tallies, draft autosave (G6, X41)

Send now schedules at confirmation + 5 s and cancel inside the hold is the undo; after it
the accepted-mail rule holds. Tallies count recipients by best outcome, never names.
Drafts PATCH with expected_version so a second tab cannot overwrite silently. Templates
and the accent-band, photo-header and letter designs ride events.broadcast_templates.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…charts, waitlist conversion, series turnout, short-link visits; org insights with k>=10 suppression (G8)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o window, ticket re-send on a verified new email, 12 h fresh-signup reminder skip, join link in confirmations (G7, L1 seam)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… mentors are on shift; outbound text only (G9)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rage cleanup receipts and daily reconciliation that adopts imported assets once (G10, G11)

The flag is information for judges and organisers only: it never disqualifies, hides or
scores; GitHub failures fail safe (no flag, retried, then unavailable).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…o-certificate mode (G36)

Anonymous rows keep no registration, account or IP; a form marked anonymous while the
switch is off accepts nothing rather than collecting identified answers.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, #115a); staff-grant invitations also offered on the invitee's own chat channels (X37)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ations (VAPID, cryptography only), escalation re-ping, dead chat rooms switched off with a staff notice (X38)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…istory; unanswered requests wiped after 90 days (X31)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…loud catalogue, gate policy) and the VAPID / resubmit settings

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efore deleting, and name the row a restore cannot insert

Ownership predicates join through parents, so reading a child's live set after its
parent was deleted found nothing and left it in place.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…red or platform account, nor what depends on it

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… staff added after the restore point

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r Desk chat-room picker (G8, G9)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d mode on the public form (G36)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t flow and review history (X31)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tification opt-in with a narrow-scope worker; organisation event-email sender settings (X38, X2)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…S, SOURCE-MAP and the events guides; setup-area and storage-tail lines made truthful (G12)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tes; name the browser-alert and snooze schemas

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… in place (trigger), literal audit actions, fan-out and claim/source-gate classification for the new tasks and resubmit route, inbox archive column named archived_on

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… confirmed composer content stays immutable

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tolerates envelopes without created_at; hosting status returns editable details only while changes are requested

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…f removal

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…backup as a restore point (#144)

manage.py extract_space_restore_point reads the space's raw slice from a scratch,
migrated copy of the archived database, copies only its objects, encrypts to the
platform and server keys and registers an ordinary restore point, audited in the
space. The platform key never reaches the server; links, special files, a left-over
age identity, an uncovered space, a partial or newer-release archive are refused.
UI copy and self-hosting/recovery docs say whole-platform points restore via the
host command.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e with one seamless flow; superadmin_access_enabled dropped (#110a, #114, #144)

At merge: makerspaces/0110_remove_superadmin_access_enabled re-chained as 0113 after L17/L1's 0110-0112
(backup/0036 follows it); twin docs take B2's fuller PII entry next to L17's rows; the audit presentation
catalog composes settings-authority, L1 and space-backup entries; re-pin CATALOG_SCHEMA_SHA256; regenerate
OpenAPI and api.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…digest-only, sent by email and to a verified account's own chat channels (#145); document join_url in the event template variables

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…n templates (render-only), with a sample value for previews

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s, inbox snooze and browser alerts, organisation email sender and invite digests, hosting changes requested (L2, #145)

At merge: events/0060_l2_communications re-chained as 0062 after L1's 0061; the audit presentation
catalog composes space-backup and L2 entries; re-pin CATALOG_SCHEMA_SHA256; regenerate OpenAPI and api.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…st-decrypted whole-platform backup as a restore point (#144b)

At merge: regenerate OpenAPI and api.ts; CATALOG_SCHEMA_SHA256 unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant