Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
100 most recent check-ins
2025-08-18
| ||
15:49 | New setting "anon-cookie-lifespan" sets the life span of an anonymous login cookie. The default is 8 hours. Set to zero to disable anonymous login. ... (Leaf check-in: 7d2b47a7 user: drh tags: trunk) | |
11:45 | Additional obfuscation of the javascript that runs to implement the anti-robot defense. ... (check-in: 4c4bce35 user: drh tags: trunk) | |
2025-08-17
| ||
19:38 | Wrap the robot_restrict() JS check in an onload handler so that it won't run until the external resources (namely style.css) are loaded. ... (check-in: e5991efb user: stephan tags: trunk) | |
19:04 | Improvements to robot detection in the robot_restrict() function. ... (check-in: e5b00c61 user: drh tags: trunk) | |
19:02 | Obfuscation of the robot-test code. ... (Closed-Leaf check-in: 2fdd7ace user: drh tags: robotck-instant) | |
18:44 | Merge the robot tests from trunk with the new tests from this branch so that *all* the tests are run. ... (check-in: 95a57c63 user: drh tags: robotck-instant) | |
18:33 | Merge recent trunk enhancements into the robotck-instant branch. ... (check-in: dd11b563 user: drh tags: robotck-instant) | |
18:20 | Use the UserAgent value from the HTTP request header, rather than the client IP address, as the additional factor in the anonymous login cookie hash, since some client are on networks where their IP address can shift frequently. ... (check-in: 06937668 user: drh tags: trunk) | |
17:47 | Because this new check is too fast to see the progress indicator, make the final result label more explicit. ... (check-in: b6cf0c20 user: stephan tags: robotck-instant) | |
17:16 | Make anonymous cookies valid for 8 hours. Include the client IP address as part of the cookie hash, but do not display the client IP address within the text of the cookie. ... (check-in: 68da4784 user: drh tags: trunk) | |
15:37 | Move the z-level style into default.css, in case the adversaries read inlined STYLE tags (which now, in hindsight, seems more likely to me). Change the HTTP result code from robot_proofofwork() to a non-200 code, the hope being that the adversaries will stop on a non-200 code. ... (check-in: c7ad4363 user: stephan tags: robotck-instant) | |
15:00 | Remove some dead code from /chat. ... (check-in: 144c5dbe user: stephan tags: trunk) | |
14:52 | Correct a mis-calculation of fontSize for /chat attachments which use the Embed checkbox. ... (check-in: e3f0dcc3 user: stephan tags: trunk) | |
13:21 | Add a comment explaining why document.body's z-level is explicitly set to 0. Remove some EOL whitespace. ... (check-in: 7c57a20e user: stephan tags: robotck-instant) | |
12:52 | Add (stash rename) to the changelog. ... (check-in: c834adb6 user: stephan tags: trunk) | |
12:50 | Add (stash rename) subcommand to change the label associated with a stash entry. ... (check-in: 1aaa6fc5 user: stephan tags: trunk) | |
12:29 | Fix the previous checkin to actually compute the work value. This slows it down by a tiny fraction of a second but it's still effectively instant. This calculation can be moved up a level into the C code to turn this back into an instant operation, but leaving it on the client seems like a reasonable choice. ... (check-in: c27cfa9f user: stephan tags: robotck-instant) | |
12:10 | An experiment in reducing the proof-of-work to a single operation. (This description is intentionally vague.) ... (check-in: b765e652 user: stephan tags: robotck-instant) | |
2025-08-16
| ||
16:48 | Add a simple UI that allows any registered user (not "anonymous" or "nobody") to create access tokens. ... (check-in: 2a3d3031 user: drh tags: trunk) | |
15:54 | Change the name of the robot-test cookie to fossil-client-ok. Decode that cookie's meaning on the /cookies page. ... (check-in: dc2232c6 user: drh tags: trunk) | |
14:44 | Cache the results of calling robot_restrict() so that subsequent calls are very fast. ... (check-in: 1bdda5d0 user: drh tags: trunk) | |
14:20 | Open up access to /test-robotck to all users. Clear the "Press OK to continue" from the screen when the Ok button is pressed, so that it does not linger for zip and tarball downloads. ... (check-in: 508d3cd9 user: drh tags: trunk) | |
13:59 | Improvements and simplifications to anti-robot defenses. ... (check-in: 16b33097 user: drh tags: trunk) | |
13:57 | Improved anti-robot captcha. ... (Closed-Leaf check-in: 206089ac user: drh tags: robot-restrict-simplified) | |
10:10 | Correct the signature of an extern decl of fossil_strndup(), as reported in forum post 21ac5f59a0. ... (check-in: d5469329 user: stephan tags: trunk) | |
00:36 | Add the "timelineX" tag to robot-restrict processing. Move /honeypot over to the captcha.c file and have it use the resources found there. ... (check-in: 54afc94c user: drh tags: robot-restrict-simplified) | |
2025-08-15
| ||
23:46 | Convert the g.isHuman variable into g.isRobot. ... (check-in: 6422bca1 user: drh tags: robot-restrict-simplified) | |
23:18 | Simplifications to the logic that tries to keep robots out. ... (check-in: 02adced1 user: drh tags: robot-restrict-simplified) | |
19:58 | Add /zip and /tarball pages to the robot-squelch mechanism. ... (check-in: 661991aa user: drh tags: trunk) | |
19:07 | Add the "robot-squelch" defense against bot-nets. Still incomplete, but sufficient to hold off the latest attacks. ← This is me! ... (check-in: de66eeaa user: drh tags: trunk) | |
18:49 | Bug fix in the new cgi_is_qp() routine of the previous check-in. ... (Closed-Leaf check-in: ef57ecf2 user: drh tags: robot-squelch) | |
18:47 | Further improvements to the squelch captcha. ... (check-in: 055908da user: drh tags: robot-squelch) | |
16:21 | Slightly more sophisticated captcha. ... (check-in: a10e785d user: drh tags: robot-squelch) | |
15:11 | Merge trunk enhancements into the robot-squelch branch. ... (check-in: a46ffe0f user: drh tags: robot-squelch) | |
15:06 | Add a really simple captcha - the user just has to press a button. ... (check-in: b3337295 user: drh tags: robot-squelch) | |
13:55 | Prototyping new defenses against bot-nets ... (check-in: 3f4885a9 user: drh tags: robot-squelch) | |
12:32 | Allow /xfer to service anonymous clones if they have any of the Clone, Zip, or Read permissions. This is a temporary measure, as described in the code's comments. ... (Closed-Leaf check-in: f9547c7c user: stephan tags: relaxed-clone-permissions) | |
05:10 | Update [6c8c93a5f7] to fix redirects to the captcha screen and set the keyboard focus to the password input field if there's no user ID input field. ... (check-in: b8731485 user: florian tags: trunk) | |
04:50 | Merge the revamped Copy Buttons. ... (check-in: 63712b63 user: florian tags: trunk) | |
2025-08-14
| ||
21:01 | The "/login?anon=2" page demonstrates the captcha even if the user is currently logged in. ... (check-in: e58112a4 user: drh tags: trunk) | |
19:35 | Improved captcha screen. Less clutter. Easier for first-time visitors to digest. ... (check-in: 6c8c93a5 user: drh tags: trunk) | |
12:46 | Reduce the timeout for anonymous logins to 1 hours. Add the IP address to the anonymous login cookie. ... (check-in: 60a9fac4 user: drh tags: trunk) | |
2025-08-13
| ||
15:48 | Allow the mimetype query parameter for non-CGI content in /ext. ... (check-in: 639b96b9 user: drh tags: trunk) | |
2025-08-12
| ||
15:27 | Use equal horizontal spacing for normal and "flipped" Copy Buttons (where the latter are positioned after the text to be copied). The idea is for the buttons to be tied to "their" text without spaces in between, resulting in a somewhat narrower spacing to emphasize the connection, but to have normal HTML whitespace on the other side. ... (Closed-Leaf check-in: 2bc2f724 user: florian tags: copybtn.js-responsive) | |
15:20 | Add some higher-specificity CSS declarations to prevent dark-mode skins from overriding the relevant styles of the Copy Button layout, so users don't need to sync their skin customizations with the changes on this branch. ... (check-in: b7f2c9f3 user: florian tags: copybtn.js-responsive) | |
15:04 | Revamp the Copy Buttons for a more responsive user experience. See the wiki page linked to this branch for more details. ... (check-in: 32c3a210 user: florian tags: copybtn.js-responsive) | |
2025-08-10
| ||
10:28 | Raise an error when trying to insert an unversioned file if the file size would cause the database row to exceed SQLITE_LIMIT_LENGTH. ... (check-in: c6265bb3 user: drh tags: trunk) | |
2025-08-07
| ||
19:46 | Add an assert() in a block which cannot happen. It survives 'reconstruct', so we can probably remove the block, but leaving it around for a while seems prudent. ... (check-in: 7d4af37f user: stephan tags: trunk) | |
2025-08-06
| ||
10:30 | Show numstat-style statistics in the 'Changes' section of /info and friends. ... (check-in: 18151a86 user: danield tags: trunk) | |
06:29 | Fill in more help for fossil user whoami command. ... (Leaf check-in: aef4a2c0 user: brickviking tags: user-whoami) | |
2025-08-04
| ||
23:58 | Add a NULL check where a change from [4c3e1728e1b1a9cb] inadvertently changed the semantics from NULL=="" to NULL==NULL, triggering a null pointer deref via backlinks parsing. Triggered by rebuild when encountering a tag with no value. ... (check-in: 441264b7 user: stephan tags: trunk) | |
2025-08-03
| ||
22:47 | Attempt to augment the "attempt to write a readonly database" error from Fossil by listing all databases it is using that are read-only. ... (check-in: 0ea8703b user: drh tags: trunk) | |
11:31 | Eliminate a superfluous allocation and have freepass() zero out its storage to avoid a duplicate free() in the very off chance that it's ever called twice. These are cleanups made in passing, not fixing known problems. ... (check-in: 1c9d5cd8 user: stephan tags: trunk) | |
2025-08-02
| ||
17:56 | Add the (user whoami) subcommand, which figures out who you are via db_find_and_open_repository(). In response to forum thread a174e200b018abbd. ... (check-in: a06df610 user: stephan tags: user-whoami) | |
2025-08-01
| ||
13:03 | Fix diff -tk's handling of the file list when the Reload button is tapped and the list of files is changed. Problem reported in /chat. ... (check-in: 4bb41f92 user: stephan tags: trunk) | |
12:08 | Change all datetime() calls in tktsetup.c to use toLocal() as their second argument so that they display in the configured timezone. This should resolve forum thread 82ac9af1533f78f7. ... (check-in: 2a39681a user: stephan tags: trunk) | |
04:59 | Typo fix in help output, noted on the forum. ... (check-in: 0d94d71d user: wyoung tags: trunk) | |
04:50 | Added the --verbose|v flag to the test-looks-like-utf8 command so that one can find out why a command like "fossil ci" is considering an input known to be text as "binary", then fix it. ... (Leaf check-in: cf6c15bb user: wyoung tags: verbose-looks-like) | |
2025-07-31
| ||
12:50 | Shorten line statistics text for the benefit of devices with limited screen width. ... (Closed-Leaf check-in: 941f67a8 user: danield tags: gui-diff-numstat) | |
2025-07-30
| ||
17:48 | Fix a compiler warning in the previous check-in. ... (check-in: a8ef11b6 user: danield tags: trunk) | |
17:26 | Show numstat-style statistics in the 'Changes' section of /info and friends. ... (check-in: 25e156c9 user: danield tags: gui-diff-numstat) | |
17:14 | Add the test-generate-uuid command. ... (check-in: 062bb67c user: danield tags: trunk) | |
16:54 | Update the built-in SQLite to the latest trunk version for testing. ... (check-in: 104c079d user: drh tags: trunk) | |
2025-07-28
| ||
02:32 | Merge from trunk. ... (Leaf check-in: 53010e96 user: brickviking tags: bv-infotool) | |
2025-07-27
| ||
11:58 | When unversioned content is saved, add an entry to the admin log. ... (check-in: 7991defa user: stephan tags: trunk) | |
11:07 | Teach the sync protocol how to work with an out-of-band login card, saving an extra server-side copy of the sync content which is required only to account for an inlined login card. i.e. it saves RAM, potentially lots of it. The new login card mechanism is instead transported via an HTTP header. This also, not coincidentally, simplifies implementation of the login card in non-fossil(1) clients which are currently learning to speak the sync protocol. ... (check-in: 18628904 user: stephan tags: trunk) | |
2025-07-25
| ||
18:47 | Do not add the sync login cookie unless we know the remote supports it. It's harmless in that case but it doesn't need to be there. Rename the login cookie from the unweildy x-f-x-l (X-Fossil-Xfer-Login) to x-f-l-c (X-Fossil-Login-Card) because the former is unsightly. ... (Closed-Leaf check-in: 9789e1dc user: stephan tags: xfer-login-card) | |
15:08 | Extend the login card mode version check to include the date and time. It is currently still set to 2.27.1, but if/when merged then the version would need to be reverted to 2.27.0 and the version/date/time check will need to be set to compare against the trunk version from immediately before the merge. This needs more testing but looks like it will resolve the "post-2.26 trunk" incompatibility. ... (check-in: 86cc923d user: stephan tags: xfer-login-card) | |
2025-07-24
| ||
05:26 | Remove the now-obsolete parsing of the X-Fossil-Xfer-Login HTTP header. ... (check-in: 8dbcf2ac user: stephan tags: xfer-login-card) | |
05:10 | Use a Cookie, instead of a custom HTTP header and/or URL param, to send the sync login header, as suggested in forum post 9959d2d9d9be22d2. This is simpler. ... (check-in: 756ad2f2 user: stephan tags: xfer-login-card) | |
03:16 | Previous checkin should not have compiled - clean rebuild uncovered a stale dep. Re-map the fLoginCardMode to a bitmask so that it's possible to tell when multiple paths toggle that on, and which paths they were. ... (check-in: 780d3b2f user: stephan tags: xfer-login-card) | |
03:03 | Doc touchups. ... (check-in: aa36afc5 user: stephan tags: xfer-login-card) | |
02:41 | Update the change log and sync.wiki for the login card additions. ... (check-in: edfa01d9 user: stephan tags: xfer-login-card) | |
02:20 | Doc improvements and internal API renaming for clarity. No functional changes. ... (check-in: 286110de user: stephan tags: xfer-login-card) | |
01:12 | Remove some debug output. ... (check-in: d1b7be2f user: stephan tags: xfer-login-card) | |
2025-07-23
| ||
23:31 | Remove some xfer login process debug output. ... (check-in: 815a84cb user: stephan tags: xfer-login-card) | |
20:56 | Account for CGI-hosted fossil instances by sending the xfer login card as a URL argument. This is somewhat inelegant but works around their inability to read HTTP headers. This version is still more verbose than it needs to be, and requires more testing for compatibility with trunk fossil versions. ... (check-in: 439af934 user: stephan tags: xfer-login-card) | |
17:39 | Add the x-fossil-xfer-login header check in one additional place. With the help of the included debug output, the login problem seems to be caused by CGI (only) instances not reading the inbound HTTP headers. My attempts to make it do have, so far, only triggered HTTP 500 responses. (Edit: i'd forgotten that CGIs don't get headers. The headers are necessarily consumed by the web server to find the CGI script and populate its environment.) ... (check-in: 6c900645 user: stephan tags: xfer-login-card) | |
16:01 | Replace a call to mprintf() with fossil_strdup(). ... (Leaf check-in: 44e5125f user: danield tags: gen-uuid) | |
15:58 | Minor optimization: replace calls to mprintf("%s", X) with fossil_strdup(X). ... (check-in: 4c3e1728 user: danield tags: trunk) | |
2025-07-22
| ||
22:53 | Add some debugging 'message' cards to help trace how the remote is handling the login. ... (check-in: 21be2978 user: stephan tags: xfer-login-card) | |
18:11 | Remove some dead code. Add some internal docs. Add a couple of const qualifiers to help me reason through the xfer payload buffer's lifetime. ... (check-in: 459d0cbb user: stephan tags: xfer-login-card) | |
17:52 | Remove lots of debug output. Replace a couple of mprintf() with fossil_strdup() and a couple free() with fossil_free(). Milestone: libfossil has successfully logged in to this version of fossil. ... (check-in: 1078a123 user: stephan tags: xfer-login-card) | |
15:53 | Doc typo fixes. ... (check-in: 2250a684 user: stephan tags: xfer-login-card) | |
15:51 | Set g.syncInfo.bLoginCardHeader=1 if that inbound header is detected, rather than delaying it until the /xfer handling. Internal doc additions. ... (check-in: 4fc13c5c user: stephan tags: xfer-login-card) | |
15:41 | Enable the HTTP login header if the xfer server-version is high enough, analog to the same check for the client-version. ... (check-in: bc3ad944 user: stephan tags: xfer-login-card) | |
15:12 | Get sync working from both login card forms and add a temporary --login-card-header CLI flag to force it to emit the HTTP header form of the card in output requests. If all is well, this checkin should be able to push to the canonical repo, despite their differences. ... (check-in: 042560df user: stephan tags: xfer-login-card) | |
02:32 | The previous checkin left me unable to push because (of course) the remote trunk doesn't know how to use the login card header. This checkin disables, via a macro toggle, the use of that header on outbound sync requests. ... (check-in: cb42278d user: stephan tags: xfer-login-card) | |
02:16 | For testing purposes only, unconditionally use the X-Fossil-Xfer-Login HTTP header for sync requests, rather than add it to the payload (which seems to work okay). This is primarily so that apples-to-apples comparisons can be made in libfossil's testing, and will be reverted (or applied conditionally) once the libfossil side is working. ... (check-in: ff942066 user: stephan tags: xfer-login-card) | |
2025-07-21
| ||
23:45 | Move the X-Fossil-Xfer-Login header check to the correct end of the connection. It is receiving these from libfossil tests but is failing to validate them, but that may well be a bug in that brand new downstream code. ... (check-in: b49c9b36 user: stephan tags: xfer-login-card) | |
19:47 | Update sync.wiki for [12cc5bbf227e3]. ... (check-in: a4c5a2a9 user: stephan tags: xfer-login-card) | |
19:39 | Do not allow more than one login card in the sync protocol. ... (check-in: 12cc5bbf user: drh tags: xfer-login-card) | |
18:42 | Replace an mprintf() with fossil_strdup(). ... (check-in: 73a2bd06 user: stephan tags: xfer-login-card) | |
18:40 | And this time compile before committing. ... (check-in: a62ffc19 user: stephan tags: xfer-login-card) | |
18:38 | Enable an /xfer login card to be delivered via the X-Fossil-Xfer-Login HTTP header, which is expected to be in the same format as the sync protocol's login card. The purpose of this is to simplify generation of the login card from non-fossil(1) clients, namely libfossil. This is untested until libfossil can generate such cards (it's just missing a bit of glue for that). ... (check-in: cfddded4 user: stephan tags: xfer-login-card) | |
17:16 | Account for [638b7e094b899a] when building with --json, as reported in forum post 9acc3d0022. ... (check-in: c6f0d7ae user: stephan tags: trunk) | |
13:20 | Remove FossilUserPerms::Query, as it's unused and its designated capabilities letter 'q' collides with ModTkt. It's been there since 2011-09-14 but went unnoticed until today when that struct was emacs-macro-reformatted into libfossil and triggered a duplicate case value for the letter 'q'. ... (check-in: 638b7e09 user: stephan tags: trunk) | |
12:23 | Sync with trunk. ... (Leaf check-in: e17d35e7 user: florian tags: standard-cli-colors) | |
12:20 | Sync with trunk. ... (Leaf check-in: 931e7065 user: florian tags: diff-word-wrap) | |
12:16 | Sync with trunk. ... (Leaf check-in: 75244ee4 user: florian tags: diff-keyboard-navigation) | |